2023/08/28 AWS
https://us-east-1.student.classrooms.aws.training/class/h5A7XfJSz2WxCNFQBaWa41
AWS 교육용 사이트에 접속해서 강사님이 승인 해주시면 접속 가능해짐

승인을 해주시면 이런 화면에서 접속이 가능해지고 교육 교재는 여기서 확인 가능하다.
bookshelf라는 사이트이다.

이 페이지가 교육용 교제를 확인할 수 있는 사이트.
클라우드 컴퓨팅
컴퓨팅 환경을 리소스를 온디맨드로 바로바로 쓸 수 있게 해준다.
장점이 속도기 때문에 원할 때 만들 수 있다.
만들어진 리소스도 언제든 변경 가능하다. 그렇기 때문에 비용면에서 많이 절감이 가능하다.
사용한 만큼만 요금을 지불하기 때문에 싸다고 생각보단 관리를 잘못하면 온프레미스보다 비용을 지불 할 것
클라우드 컴퓨팅의 이점


클라우드 컴퓨팅의 이점은 이런점이 있다.
AWS에는 많은 하위 서비스가 있는데 이것들을 모아놓은 상위 서비스가 AWS라고 생각하면 된다. 그런 서비스가 있는 AWS대표주소인 aws.amazon.com에서 설명서를 확인하면 각 서비스의 자세한 설명을 확인할 수 있음
AWS Global Infrastructure
AWS 리전
그냥 지역이라고 생각하면 될듯
그렇게 선택을 하면 그 지역의 데이터를 사용하는 것이다. 우리는 서울이라는 리전을 사용함

리전을 선택할 땐 가장먼저 정보정책을 고려해서 한다.
개인정보와 관련해 있는 국가의 정보정책을 먼저 확인한다. 그것에 맞지않은 정책이라면 벌금을 물거나 사업을 못할 수 있음
그리고 지연시간을 확인한다. 만약 거리에 관련해서 필요한 서비스가 아니라면 지연시간에 리전은 어떤걸 사용해도 상관은 없을 것
그래서 다음으로 고민을하고 기준을 잡는 것이 요금이다. 지연시간은 어딜선택하든 상관없어서 여러 선택지가 있다면 다음으론 요금으로 본다. 리전마다 요금이 다르게 운영이된다.
예를 들면 일본이 한국보다 유의미하게 비싸다.
한국기업에도 데이터분석같은 상황이 온다면 굳이 한국의 리전을 사용하지 않아도 상관없다.
서비스 가용성은 우선 리전에 따라서 서비스가 다르다.
내가 원하는 서비스가 사용하는 리전에 없을 수 있다.
서울에는 거의 모든 서비스가 제공이 되고있다.
그렇게 리전을 선택하면 다음으론 가용영역을 생각해봐야한다.

가용영역은 실제 데이터 센터라고 생각하면 된다. 서울은 가용영역이 4개 있다.
이러한 가용영역의 위치는 안알려준다. 가용 영역끼리는 거리도 어느정도 떨어져있다.
자연재해로 인해 동시에 피해를 받지 않을 정도로 떨어져있다.
AWS에서 아무리 관리를 열심히 한다고 해도 장애가 생기기 마련이다.
그렇기 때문에 여러개의 가용영역이 만들어지는 것 최소한의 2개 이상
가용영역을 두개 세개를 운영한다고 해도 비용문제에서는 별 차이 없다.
ex) 100이라는 성능을 가진 것을 그냥 쪼개놓는 느낌이라고 생각하면 될듯 100을 하나를 만들거나 50으로 두개를 만들거나 하는 느낌
그렇기 때문에 나눠져 있는 가용 영역에서 장애가 생긴다면 다른 한쪽도 곧 죽기 때문에 그럴 땐 오토 스케일링으로 자동으로 늘려준다.
엣지 로케이션

엣지를 만들어준다. 리전과 독립된 시설이다.
우리가 제공하는 서비스에 접속하는 접속 포인터를 전세계적으로 넓혀주는 느낌
만약 우리가 서울리전을 선택해서 한다면 고객들이 서울을 해야할 것이다. 그렇지만 엣지 로케이션을 이용해서 다른 지역에 있는 고객도 가능하게 끔 테두리를 넓혀준다.
글로벌 서비스 제공일 때 서비스 제공이 굉장히 빨라진다.
엣지로케이션은 그런 형태로만 가능하고 다른 서비스 같은 경우는 할 수 없다.
이런 제한된 서비스에는 클라우드 프론트 DNS서비스가 있다.
서비스 관리

서비스 관리..

가입을 하고 계정에 대해서 보안설정을 해줘야한다.
AWS에서 그 서비스를 IAM이 해당이 된다.
IAM에는 MFA를 가장 먼저 설정해줘야한다.

루트 사용자는 권한제어기능이 없다.
루트 사용자는 실제 계정이기 때문에 노출되면 굉장히 위험하다. 그것으로 암호화폐 채굴을 하면 몇백, 몇천의 청구서를 받을 것
예방방법은 비밀번호 패스워드를 입력을 안하면 된다. 그렇기 때문에 IAM에서 일반사용자를 해주고 결국 루트 사용자가 필요한 순간이 생기는데 그것을 위해서 MFA설정을 먼저 하게된다.
그리고 사용자에게 권한설정까지 해준다.
빌더랩스에 실습을 하기위해서 AWS매니지먼트를 영어로 변경해준다.
MFA설정을 하는 것은
http://class.kukuboor.com/ 여기에 설명이 잘 되어있다.
우리가 사용하는 MFA는 스마트폰을 활용한 Google Authenticator이다.
https://willnfate.tistory.com/entry/AWS-2%EB%8B%A8%EA%B3%84-%EC%9D%B8%EC%A6%9D-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0-feat-Google-Authenticator#google_vignette 설명이 잘되어있다는 곳에서 MFA를 설정하는 법
설정이 다 되었다면 접속할 때 스마트폰에 뜨는 6자리 숫자를 이용해서 접속하면 일반 사용자로 접속 하게 된다.
이것의 주의점은 스마트폰의 앱을 함부로 삭제하면 안된다. 그러면 로그인을 못한다.
따로 문의를 해줘야함 만약 핸드폰이나 앱을 삭제하고싶다면 저 MFA를 꼭 Remove를 해줘야함

다시 로그인을 해주고 계정을 눌러서 Account를 눌러서 이 화면을 확인해준다.
꼭 이 화면을 하루에 한번씩은 확인해주고 꺼져있는지 확인한다. 여기는 root로만 확인 가능한 돈이 나가는 것을 IAM으로 돈이 나가는지 확인할 수 있는 것 root계정을 최대한 안들어오기 위해서다.

사용자를 만들기 위해서 iam을 검색해서 들어가준다.
이곳에서 사용자를 만들기 위해서 Users로 들어가준다. Policies는 정책을 확인할 수 있다.

여기서 Create user을 눌러서 사용자를 생성할 수 있음

사용자를 만드는데 이 체크를 안하고 넘어가게 된다면 매니지먼트에 로그인을 할 수 없는 계정이 만들어진다. 물론 나중에 설정에서 바꿔줄 수 있다.
Custom password에서 내가 원하는 비밀번호를 설정한다.
다른사람에게 주는게 아니면 아래쪽에 체크도 해제한다.

그리고 권한을 설정하는 것
아래쪽에 administratorAccess를 체크해주고 해준다. 이것을 해주면 대부분의 리소스를 허락한다는 것 거의 root 계정과 비슷하지만 root계정보단 안전하다. 하지만.. 이것도 편의상이기 때문에 역시 권장하진않음
그래서 사용자에 대해서 MFA도 해놓아야함

아래쪽에 Tags는 우리가 알고있는 그 Tags이다. AWS는 모든 리소스에도 Tags를 붙일 수 있는게 있다. 보통 서버만들 때 Tags를 반드시 붙여줘야한다.
그 다음 그냥 컨티뉴 이런식으로 넘어가주면 우리가 지정한 이름으로 만들어져 있는걸 확인한다.
이 사용자는 root계정과는 다른 창을 쓴다.
https://987286449881.signin.aws.amazon.com/console
사용자로 로그인 할 때 이 주소를 사용하면 된다.
Account ID는 여기 위에있는 숫자이다. 계정 아이디는 안바뀌지만 연결되어있는 이메일은 바꿔줄 수 있다.
987286449881 이 숫자로

저 주소를 복사해서 사용자로 로그인 하게 되면 이런 창이 뜰 것
아까 설정했던 아이디와 패스워드를 입력해서 사용자로 접속을 해준다.
이 것도 root와 비슷한 설정을 주었기 때문에 MFA설정을 꼭 해준다.
사용자 계정의 MFA도 설정해주었다.

동일한 웹브라우저에서 여러 사용자를 사용할 수 없다. 이렇게 로그인 하면 다른 로그인창이 꺼지게된다.

여기에 Billing Dashboard에 들어와서 Bills에 들어오면 청구되는 비용을 확인할 수 있음
AWS에 가입하면 Free tier에 무료용량을 학인할 수 있다. 용량을 얼만큼 썼는지 그리고 이렇게 쓰면 얼마나 사용할지도 확인할 수 있다.
아까 그 자료를 받을 때 사이트에서 빌더랩스 실습을 하게된다.

AWS실습용 사용자가 만들어진다.
여기 나오는데로 실습을 진행해보면 된다. 큰 어려움 없이 따라가면 가능할 것
AWS 네트워킹

서비스를 하는데 있어서 먼저 해야할 것은
1. 서버를 인터넷에 노출을 시킬것인가, 아닌가
2. 인터넷과의 통신을 어떤식으로 할 것인가.
이것에 따라 퍼블릭 서브넷이냐 프라이빗 서브넷이냐가 갈린다.
프라이빗 서브넷은 인터넷과 연결 단절이지만 인터넷 연결이 필요할 때가 있다 그래서 한쪽으로 열어주게된다. 그러면 그것이 NAT이다. -> 인터넷에서는 안보이지만 인터넷에서는 통신가능하게 된다.
무언가 빠진 내용,,,,,
서브넷 생성시 고려할 사항은
서브넷 이름, 어떤 VPC에 만들건지
네트워크 주소
가용영역은뭐로 할것인지

서브넷은 이름(퍼블릭,프라이빗)으로 판단할 수 없다. 다른 사람이 관리하고있던 서브넷이었다면 가장먼저 라우팅 테이블을 확인해본다. 그 기준이 디폴트경로에 게이트웨이가 지정되어있냐이다.

ACL 기본 설정
기본은 인바운드와 아웃바운드가 전부 다 열려있다.
그렇기 때문에 딱히 건들지 않으면 다 될것이다.
시큐리티 그룹(방화벽)이라는게 있기 때문에 차단하는 것으로 사용된다.

방화벽 기본 설정
네트워크 만들 땐 인터넷과 연결을 어케하는지 고려해 디자인하고
퍼블릭이냐 프라이빗이냐 NAT가 되는 프라이빗하냐(얼마든지 수정가능)
차단하고싶은게 있다면 ACL을 이용해서 차단, 특정 서비스만 보호하고싶다면 방화벽을 통해서 차단한다.
실습하기 위해서 사용자 계정으로 들어온다 .

이름이 없는 VPC는 그냥 디폴트 VPC이다. 서브넷이 가용영역 갯수만큼 만들어져있고 VPC내에 있는 모든 서브넷은 전부다 퍼블릭이다.
테스트할때만 사용한다.

이것의 서브넷으로 들어와서 확인해본다.
이 서브넷의 라우팅 테이블에 디폴트 게이트웨이인지 확인하면 이것이 퍼블릭인지 프라이빗인지 확인할 수 있다.

우리만의 VPC를 만들기 위해서 VPC dashboard나 Your VPCs에서 Vreate VPC를 누르면 새로 만들 수 있다.

VPC settings에 VPC only를 해서 따로 만들어줄 것
VPC and more이 편하긴 하지만 문제가 생겼을 때 어떤 문젠지 찾을 수 없다.

이름을 testVPC라고 생성해주고 CIDR에는 10.0.0.0/16을 입력해주고 리전은 이미 입력해놨다.
이렇게만 되면 우리가 지정한 이름으로 VPC가 만들어진다.
여기서 인터넷 통신이 필요한지 안필요한지 생각해봤을것이고 우리는 게이트 웨이를 붙여넣을 것이다.

왼쪽에 Internet gateways를 들어가본다. 여기에는 이미 하나 들어가 있는데 이 게이트 웨이는 디폴트 게이트 웨이이다
Create gateway를 눌러서 새로 생성해준다.
이름은 잘 생각해서 저장해줘야 사용하기 편리하다.


지금은 떨어져있는데 위에 Actions에 들어가서 Attach to VPC에 들어가서 창을 누르면 게이트웨이가 없는 VPC가 뜬다. 이렇게 해서 연결해주면 붙어있다고 다시 뜨게 된다.

보통해주게 되는 설정인데 VPC에서 Action으로 들어가서 Enable DNS hostnames을 체크해주게 되면 네트워크 연결시 DNS가 뜨게된다.

AZ에는 순서대로 a로 하면 된다. 그리고 아래쪽에 add new subnet가 있는데 새로운 서브넷을 만들기 위해서 눌러주게 되면 또 다른 서브넷을 만들 수 있다.

역시 AZ는 a로 끝나는 가용영역을 설정해주고 CIDR block은 10.0.1.0/24로 설정해준다.
그리고 아래쪽에 Create subnet을 누르면 내가 만든데로 만들어졌다.

만들어진 두개는 퍼블릭인지, 프라이빗인지 확인하게 되면 두개 다 프라이빗인걸 확인할 수 있다.
무언가 빠진내용 ,,,,

라우팅 테이블이 만들어져 있다. Main이라는 항목에 Yes라고 되어있으면 VPC가 만들어질 때 같이 만들어진 것 그래서 디폴트 라우팅 테이블이다. 내가 만든게 아니다.

Create route table을 눌러주고 이런식으로 새로 만들어준다.
가장 먼저 해줘야할 것은 라우팅 테이블 설정을 해줘야함. 이대로 설정해주게 되면 프라이빗 설정으로 가기 때문에 게이트웨이를 설정해줘야한다.

아래쪽에 오른쪽에 Edit을 들어가서 기존에 있던건 건들게 되면 서브넷끼리 통신이 안된다.
아래쪽에 Addroute를 눌러서 새로 만들어준다. 이렇게 세이브를 하게 되면 아래에 서브넷이 생김

이 라우팅 테이블을 어디에 지정할 것인지 해줘야한다.
이쪽으로 들어가서 Public Subnet만 지정해서 저장해주면 된다.

Subnets에서 확인하기 위해서 들어와서 만약 Subnets이 너무 많다면 왼쪽에 Filter을 통해서 걸러서 확인할 수 있다.

Public Subnet을 확인해보면 인터넷과 양방향으로 통신이 되는 퍼블릿인걸 확인할 수 있다.
Private Subnet은 프라이빗한 상태로 그대로 남아있구나 라는걸 알 수 있다.

꼭해줘야하는 설정인데 Public Subnet에서 오른쪽에 Actions에서 Edit subnet settings에 들어와서 이것을 꼭 체크해줘야한다. 퍼블릭 IPv4 IP를 자동으로 해준다. 라는 것
이것을 체크 안해주면 만들고 나서 공인 IP주소가 할당이 안된다.

Security groups에 들어와서 새로 만들기 해준다.
VPC에는 X를 눌러서 없애주고 아까 만든 testVPC로 선택해준다.

인바운드에서 Add rule눌러주고
이런식으로 이 두개를 허용해준다. 그럼 이 두개 말고는 다 차단하게 되는 것이다.
AWS의 컴퓨팅 서비스

EC2를 시작할 때는 먼저 Amazon Machine Image(AMI)를 지정해준다.

Amazon EC2 인스턴스의 유형

EC2 Dashboard로 가서 Launch instance로 들어간다.
Name에 Web server 1이라고 해준다.
아래에 Quick Start에는 Ubuntu를 설정해준다.
Instance type으로 가서 t2.micro를 선택해준다. 다른것을 선택하면 비용이 나온다.
Key pair는 원격접속을 할 때 인증수단으로 사용하는 것
Key pair에서 Create new key pair을 해주고 이름을 넣어주고 해주면 Key pair를 다운받기 시작한다. 그 Key pair는 잘 둬야한다. 내 Key이름은 MJH로 했다. 이거 기억만 해주면 된다.

Key pair아래에는 Network settings가 있는데 여기서도 VPC를 내가 만든 VPC를 설정하고 Subnet같은 경우도 Public 으로 설정해준다. Firewall(security groups)에도 아까 설정한 것으로 설정해주게 된다.

아래쪽에 Advanced details가 있는데 이곳을 확장하고 맨 아래쪽에 보면 User data가 있는데 이곳엔 쉘 스크립트를 넣게 되면 리소스가 실행될 때 이 스크립트도 같이 실행이 된다.
아까 MFA설정하느라 봤던 페이지에서 http://class.kukuboor.com/ 이곳으로와서 Web Instance User Data.txt로 와서 이 쉘 스크립트를 복사해준다.
이 쉘스크립트 안에 메타데이터를 허락하도록 위쪽에 metadata도 Enable을 해준다.

그리고 하게되면 서버가 올라간것이다 이것이 pending에서 Running으로 바뀌게 되면

선택된 서버의 실제 문제가 없나 확인하는 과정이다. 새로고침을 하게되면 Status check에 Initializing이 생기면 얘가 확인하는 중이다.
이 상태가 되면 실제서버나 가상서버 둘다 접속이 가능하게 되는 것이다.

다 되면 아래쪽에 Public IPv4 address에서 주소를 클릭하고 새로운 페이지를 열어서 접근하게 되면 웹서비스가 되는것을 확인할 수 있다.
이런식으로 인스턴스 생성까지 마무리 할 수 있다.
., 어려ㅂ다