[AWS] VPC 환경 구성 (Public, Private Subnet)
IT/Cloud

[AWS] VPC 환경 구성 (Public, Private Subnet)

728x90
반응형

일반적으로 네트워크 작업은 어렵다.

케이블 배선부터 시작하여 각종 네트워크 장비를 제어해야 하고 전문 기술이 필요하다.

간단하다고 생각하는 환경에서도 생각보다 네트워크 구성은 복잡하다.

 

AWS를 사용한다면 Amazon VPC를 활용하여 복잡한 요소를 거치지 않고 Private network를 간단하게 구성하고 보안을 챙길 수 있다.

이번 포스팅에서는 자체 VPC를 구성하고, Public subnet과 Private subnet을 생성하는 아주 심플한 시나리오를 진행한다.

 

1. VPC 생성

우선 VPC를 하나 생성한다.

 

인스턴스의 public 또는 private IPv4 주소에 해당하는 DNS hostname을 제공하도록 설정할 수 있다.

위 그림처럼 Enable에 체크하면 앞으로 VPC에서 실행된 Amazon EC2 인스턴스에서 DNS hostname을 자동으로 수신한다.

Public DNS hostname은 ec2-public-ipv4-address.region.compute.amazonaws.com 형식으로 지정된다.

Amazone Route53을 사용하여 나중에 더 유의미한 DNS hostname을 추가할 수 있다.

 

참고로 Amazon DNS 서버는 Public DNS hostname을 인스턴스 네트워크 외부에서는 인스턴스의 Public IPv4 주소로 변환하고, 인스턴스 네트워크 내부에서는 인스턴스의 Private IPv4 주소로 변환한다. (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#concepts-public-addresses)

 

2. Public Subnet 생성

이제 Subnet 탭으로 가서 Public 용도의 Subnet을 생성하자.

(10.0.0.0/24 → 10.0.0.x 대역의 모든 IP 주소를 포함한다.)

 

Public Subnet 안에서 시작되는 모든 인스턴스에 Public IP주소가 자동으로 할당되도록 설정해주자.

 

Public 용으로 생성한 Subnet이지만 아직 Public상태는 아니다.

퍼블릭 서브넷에는 인터넷 게이트웨이가 있어야 하며, 이후에 IGW를 생성하고 연결할 것이다.

 

3. Private Subnet 생성

Public Subnet을 완성하기 전에 Private 용도의 Subnet도 하나 만들어주자.

방법은 똑같지만 Subnetting을 위한 CIDR notation을 /23으로 지정하였다.

(10.0.2.0/23 → 10.0.2.x 및 10.0.3.x 대역의 모든 IP 주소 포함한다.)

 

일반적으로 대부분의 리소스는 Private 환경에 구성해야 하므로, Public Subnet의 2배 크기를 가지도록 설정한다.

 

4. Internet Gateway 생성

Internet Gateway는 수평적 확장을 통해 이중화를 지원하고 가용성이 높은 VPC 구성 요소로서, VPC와 인터넷 간 통신할 수 있도록 해준다.

 

인터넷 게이트웨이를 사용하는 목적은 2가지가 있다.

  • 인터넷 라우팅 가능 트래픽에 대하여 VPC 라우팅 테이블에 연결 대상 제공
  • Public IPv4 주소가 할당된 인스턴스에 대해 NAT(Network Address Translation) 수행

 

아까 Step2에서 생성한 Public Subnet에 인터넷 트래픽이 액세스 할 수 있도록 Internet Gateway를 생성하자.

 

생성 후 VPC에 attach 해줘야한다.

 

5. Route table 구성

Route table은 Subnet 또는 Gateway의 네트워크 트래픽이 전송되는 위치를 결정하는 데 사용되는 route 규칙의 집합으로 이루어져 있다.

VPC에 있는 각 Subnet은 Route table에 연결되어 있어야 하며, 라우팅 테이블이 Subnet에 대한 라우팅을 제어한다.

 

Route table에 인터넷에 바인딩된 트래픽을 Internet Gateway로 향하도록 지시하는 Route 경로를 포함하고 이를 Subnet에 연결하면 Public Subnet이 된다.

 

우선 기본적으로 위에서 만든 VPC와 연결된 라우팅 테이블이 존재한다.

이 라우팅 테이블은 트래픽을 로컬로 라우팅 하기 때문에 Private Routing 테이블이라고 이름을 변경해 주었다.

이 테이블에서의 Route 경로는 하나다.

VPC 범위의 IP로 향하는 모든 트래픽이 local로 라우팅 된다는 것을 볼 수 있다.

이는 VPC 내 모든 서브넷이 서로 통신할 수 있다는 것을 의미한다.

 

이제 Public 트래픽을 Internet Gateway로 전송할 Public Route table 생성하자.

인터넷 바운드 트래픽(0.0.0.0/0)을 Internet Gateway로 보내는 Route 경로를 추가하자.

 

해당 Route table을 Public 서브넷에 연결하면, 이제서야 진정한 Public Subnet이 된다.

 

6. Public Subnet에서 EC2 생성

EC2 생성 시 위에서 만든 VPC와 Public Subnet을 선택할 수 있다.

 

아까 Public Subnet에서 인스턴스에 자동으로 Public IP가 assign 되도록 설정해주었기 때문에, default setting이 활성화되어있는 것을 확인할 수 있다.

 

 

 

728x90
반응형