[Hands On] 퍼블릭 연결을 위한 VPC 구성

EC2 인스턴스, RDS 서비스를 public으로 접근하여 테스트하기 위한 VPC를 구성해 봅니다.

01. VPC 생성

VPC(Virtual Private Cloud)란 사용자의 AWS 계정 전용 가상 네트워크입니다. Amazon EC2 인스턴스 같은 AWS 리소스를 VPC에서 실행할 수 있습니다.

1. VPC 콘솔로 진입하여 VPC 생성 버튼을 클릭합니다.

2. 생성할 리소스에서 “VPC만”을 선택합니다.  VPC, 서브넷 등을 선택하여 한번에 구성하셔도 됩니다. 저는 필요한 네트워크 설정에 대해 하나씩 구성해 보려고 합니다.

3. 이름태그에 지정하고자 하는 값으로 입력합니다.

4. IPv4 CIDR 블록을 “IPv4 CIDR 수동 입력”에 체크합니다.

5. IPv4 CIDR에 10.0.0.0/16 을 기입합니다.

  • AWS에서는 CIDR 방식을 사용하여 Private IP 주소의 범위를 선택합니다. /16의 마스킹 값은 앞의 16비트는 Network ID로 고정이고, 나머지 16비트는 Host ID로 변경가능함을 의미합니다 즉 2^16개의 IP 주소 사용이 가능합니다.
  • RFC1918에 명시되어 있는 범위를 VPC의 Private IP 주소로 사용합니다. 데이터 센터 및 다른 VPC와 연결을 하여 private  연결을 해야하는데 이때 IP 주소가 중복되는것을 방지하기 위함입니다.
  • 여기서는 서비스 확장을 고려하여 충분히 큰  CIDR 인 16의 마스킹 값을 가지는 VPC를 만듭니다. 

6. IPv6 CIDR 블록은 “없음”으로 체크합니다.

7. 태넌시는 기본값으로 유지합니다.

8. 태그들을 적절히 구성 후 VPC를 생성합니다. 

9. 생성한 VPC를 선택하여 우측 상단의 작업 드롭다운 메뉴에서 DNS 확인 편집 메뉴를 선택합니다.

9.  DNS 확인을 활성화합니다.

 RDS DB 인스턴스에 대한 퍼블릭 액세스가 가능하게 하려면 해당 옵션이 활성화되어야 합니다.

02. 서브넷 생성

서브넷은 VPC의 IP 주소 범위입니다. 지정된 서브넷으로 AWS 리소스를 시작할 수 있습니다. 인터넷에 연결되어야 하는 리소스에는 퍼블릭 서브넷을 사용하고, 인터넷에 연결되지 않는 리소스에는 프라이빗 서브넷을 사용합니다.

1.서브넷 콘솔로 진입하여 서브넷 생성 버튼을 클릭합니다.

2. VPC ID 선택부분에 위에서 생성한 VPC를 선택합니다. 선택한 VPC 내에 서브넷들의 구성을 시작합니다.

3. 첫번째 서브넷 이름을 입력합니다.

4. 가용영역을 ap-northeast-2a로 선택합니다.

5. IPv4 CIDR 블록을 10.0.0.0/24로 입력합니다.

6. 태그들을 구성합니다.

 

7.  새 서브넷 추가 버튼을 클릭합니다.

8. 두번째 서브넷 이름을 입력합니다. 하나의 VPC내에 하나의 서브넷으로 구성할 수도 있지만 고가용성을 위해 서브넷 여러개를 생성하여 관리합니다.

9.  가용영역 ap-northeast2c로 선택합니다.

10. CIDR 블록을 10.0.1.0/24로 입력합니다.

11. 태그들을 구성합니다.

12. 서브넷 생성 버튼을 클릭하면 서브넷이 구성됩니다.

13. 생성된 서브넷을 선택하여 작업 드롭다운 메뉴에서 서브넷 설정 편집 버튼을 클릭합니다.

14. 자동 할당 IP 설정에서 퍼블릭  IPv4 주소 자동 할당 활성화 버튼을 체크하여 저장합니다.

03. 인터넷 게이트웨이 생성

VPC와 인터넷 간에 통신할 수 있게 해줍니다. 리소스에 퍼블릭 IPv4 주소 또는 IPv6 주소가 있는 경우 인터넷 게이트웨이를 사용하면 퍼블릭 서브넷의 리소스(예: EC2 인스턴스)가 인터넷에 연결할 수 있습니다.

1.인터넷 게이트웨이 콘솔에서 인터넷 게이트웨이 생성 버튼을 클릭합니다.

2. 인터넷 게이트웨이 이름태그를 입력합니다.

3. 태그들을 구성합니다.

4. 인터넷 게이트웨이 생성버튼을 클릭합니다.

5. 생성된 인터넷 게이트웨이 우측 상단의 작업 드롭다운 버튼을 클릭하여 VPC에 연결 버튼을 클릭합니다.

6. VPC에 연결 화면에서 사용 가능한 VPC 목록에 위에 생성한 VPC를 선택하고 인터넷 게이트웨이 연결 버튼을 클릭합니다.

04. 라우팅 테이블 생성

 IP 주소에 트래픽 라우팅 경로를 정의하여 서브넷 안팎으로 나가는 트래픽에 대한 라우팅 경로를 설정합니다.

1.라우팅 테이블 콘솔로 진입하여 라우팅 테이블 생성 버튼을 클릭합니다.

2.  라우팅 테이블 이름을 입력합니다.

3. VPC에서 위에 생성해준 VPC를 선택합니다.

4. 태그를 구성합니다.

5. 라우팅 테이블 생성 버튼을 클릭합니다.

6. 생성된 라우팅화면에서 라우팅 편집 버튼을 클릭합니다.

 

7. 라우팅 추가 버튼을 클릭합니다.

8. 대상에서 0.0.0.0/0 , 인터넷게이트웨이(위에 생성한 이름)을 선택합니다. 

9. 변경사항을 저장합니다.

10. 생성한 라우팅 테이블을 선택하여 하단의 서브넷 연결 탭을 클릭하면 명시적 연결이 없는 서브넷 목록에 vpc내에 서브넷 목록들이 나열되어집니다.

11. 서브넷 연결 편집 버튼을 클릭합니다.

12. 이용 가능한 서브넷 목록에서 라우팅 테이블에 연결할 서브넷들을 선택하고 연결저장버튼을 클릭합니다.

05. 보안그룹 생성

AWS 인스턴스에 대한 접근(Inbound)과 인스턴스로부터의 접근(Outbound)에 대한 패킷을 포트 번호로 제어하기 위한 설정을 합니다.

1.보안 그룹 콘솔에서 보안 그룹 생성버튼을 클릭합니다.

2. 보안그룹 이름, 설명을 입력합니다.

3. 위에서 생성한 VPC를 선택합니다. 선택한 VPC에 대한 인바운드, 아웃바운드 정책의 설정을 시작합니다.

4. 인바운드 규칙 부분에 EC2인스턴스에 SSH 접속을 허용할 22번 포트 TCP 허용 규칙, MySQL에 클라이언트 접속을 허용할 3306 포트 TCP 허용 규칙을 설정합니다.

5. 태그를 구성하고 보안그룹을 생성합니다.

6. 생성한 보안그룹의 아웃바운드 규칙을 편집합니다.

7. IPv4의 모든 트래픽을 허용하는 아웃바운드 규칙을 추가합니다.

이로서, EC2인스턴스의 SSH, SFTP 외부 접속, Mysql RDS의 클라이언트 툴을 통한 연결이 가능하고, EC2인스턴스에서 인터넷으로의 API 연동요청이 가능한  VPC 구성이 완료되었습니다.