소프트웨어 마에스트로에서 좋은 기회가 있어서 AWS 오피스 교육을 다녀왔다. AWS에 대해 맨땅에 헤딩을 하고 있었는데, 오피셜로 배울 수 있었던 부분이 아니였던 것이라 상당히 좋은 기회라 생각하고 교육에 참가했다. 해당 포스트는 본 교육에서 배웠던 내용을 작성하였고, 알고 있던 내용은 생략하였다.
루트 계정을 사용하는 것은 굉장히 위험해서 AWS에서 권장하지 않는다.
단일 계정에서는 IAM을 사용하지만, 통합 결제를 할 때에는 다중 계정을 사용한다.
쓰는 만큼 돈을 지불하는 방식
예약 인스턴스로, 어느 정도 사용할지를 계산해서 해당 금액만큼의 EC2인스턴스 용량을 부여 받는 것
아무도 안 쓰는 미사용 인스턴스를 90%가격으로 할인받아서 사용할 수 있다. 하지만, 종료 2분전에 Notice가 오기 때문에(?) Notice가 왔을 때 어떻게 할지에 대한 자동화된 Script를 준비해놓는게 중요하다.
팀이 새로운 웹 기반 애플리케이션의 아키텍처 프로토타입 생성 업무를 맡았다. 아키텍처를 정의하려면 퍼블릭 및 프라이빗 서브넷, 라우팅, Amazon EC2 인스턴스 옵션에 대한 이해를 높여야 한다
AWS 콘솔에서 VPC를 검색한 뒤 생성 버튼을 눌러 아래와 같이 세팅해주면 된다
CIDR은 위에서 언급했듯이 맨 뒤에 16을 넣으면 2^(32-16) 갯수 만큼의 IP 갯수를 사용할 수 있다.
위와 같이 VPC 편집 페이지에서 DNS 호스트 이름 활성화를 체크하면 EC2 인스턴스에 친숙한 도메인 이름(DNS)을 할당한다
VPC 창의 왼쪽 탐색 창에서 서브넷을 누른 뒤 아래와 같이 세팅해주면 된다
서브넷에는 VPC보다 더 작은 10.0.0.0/24의 CIDR 범위를 설정해주며, 포함되게 만들어 놓았다.
이 설정까지 마무리하면 서브넷 안에서 시작되는 모든 인스턴스에서 퍼블리 IP 주소가 자동으로 할당되도록 서브넷을 구성할 수 있다.
이렇게 했다고 해서 Public Subnet이 되는 것은 아니다. Public Subnet에는 IGW(Internet GateWay)와 인터넷 게이트웨이까지의 경로가 있어야 한다.
인터넷과 격리된 상태를 유지해야 하는 리소스에 사용되는 프라이빗 서브넷을 생성해보자
CIDR 블록 10.0.2.0/23에는 10.0.2.x 및 10.0.3.x 로 시작하는 모든 IP 주소가 포함되어 있다. 인터넷에서 액세스할 수 있어야 하는 특별한 경우를 제외하고 프라이빗 서브넷은 대부분의 리소스를 프라이빗으로 유지해야 하기 때문에 크기가 퍼블릭 서브넷의 두 배 이다.
이제 생성한 퍼블릭 서브넷이 인터넷 트래픽에 액세스할 수 있도록 인터넷 게이트웨이를 생성해야 한다. 그리고 VPC의 서브넷에 있는 인스턴스에서 인터넷에 액세스하는 권한이나 인터넷에서 해당 인스턴스에 액세스하는 권한을 부여하기 위해 인터넷 게이트웨이를 생성하여 VPC에 연결한다. 그런 다음 인터넷 바운드 트래픽을 인터넷 게이트웨이로 보내는 경로를 서브넷의 라우팅 테이블에 추가한다
따로 설정없이 생성해줄 수 있다.
그 다음에 만들어 주었던 VPC에 연결하면 Internet Gateway가 연결이 된다. 하지만 연결이 되었지 라우팅이 된것은 아니다. 이말인 즉슨 도로는 깔았지만, 방향 지시표가 없어 어디로 가야하는지 모른다는 말이다. 그렇기 때문에 라우팅 테이블을 생성해주어야 한다.
라우팅 테이블을 생성하고 인터넷 바운드 트래픽을 인터넷 게이트웨이로 보내는 경로를 라우팅 테이블에 추가한 다음 퍼블릭 서브넷을 라우팅 테이블과 연결한다. VPC에 있는 각 서브넷은 라우팅 테이블에 연결되어 있어야 한다. 이 테이블이 서브넷에 대한 라우팅을 제안한다.(방향 지시표) 서브넷은 한 번에 하나의 라우팅 테이블에만 연결할 수 있지만, 여러 서브넷을 같은 라우팅 테이블에 연결할 수 있다.
인터넷 게이트웨이를 사용하려면 Internet Bound Traffic을 인터넷 게이트웨이로 보내는 경로가 서브넷의 라우팅 테이블에 포함되어야 한다. 라우팅 테이블에 명시적으로 알려지지 않은 모든 대상으로 경로의 범위를 지정하거나 이보다 좁은 범위의 IP 주소로 경로의 범위를 지정할 수 있다.
위 세팅처럼 라우팅 테이블을 생성해주면 된다
그 후 Edit routes를 통해 위 사진과 같이 세팅을 하면 인터넷 게이트웨이를 통과하여 인터넷과 통신할 수 있게 된다.
이제 EC2인스턴스에서 액세스할 수 있도록 보안 그룹을 생성해주어야 한다. VPC의 보안 그룹은 EC2 인스턴스에 허용되는 트래픽을 지정한다. VPC의 보안 그룹을 통해 각 EC2 인스턴스에 허용되는 인바운드 및 아웃바운드 네트워크 트래픽을 지정할 수 있다. 인스턴스에 명시적으로 허용되지 않은 트래픽은 자동으로 거부된다.
위 세팅처럼 VPC를 세팅해주고 보안 그룹을 생성해주면 된다.
항상 좋은 글 감사합니다.