Untitled

Untitled

이제 워크로드에 대해 격리된 네트워크 환경을 설계하고 생성하는 방법을 알았으므로 이를 인터넷에 연결하려고 할 것입니다. 인터넷 게이트웨이는 VPC의 리소스와 인터넷 간의 통신을 허용하는 VPC 구성 요소입니다. 수평으로 확장되고 중복되며 고가용성입니다. 인터넷 게이트웨이는 IPv4 및 IPv6 트래픽을 지원합니다.

인터넷 게이트웨이는 두 가지 용도로 사용됩니다.

첫째, 인터넷 라우팅이 가능한 트래픽에 대한 VPC 라우팅 테이블의 대상을 제공합니다.

둘째, 인터넷 게이트웨이는 퍼블릭 IPv4 주소가 할당된 인스턴스에 대해 NAT(네트워크 주소 변환)를 수행합니다. 서브넷을 퍼블릭으로 만들려면 먼저 인터넷 게이트웨이를 생성하여 VPC에 연결해야 합니다.

Untitled

그런 다음 인터넷에 연결하려는 서브넷과 연결된 라우팅 테이블을 업데이트해야 합니다.

경로 테이블에는 경로라고 하는 일련의 규칙이 포함되어 있습니다. 경로는 네트워크 트래픽이 전달되는 위치를 결정하는 데 사용됩니다. VPC를 생성하면 자동으로 기본 라우팅 테이블이 생깁니다.

처음에 기본 라우팅 테이블(및 VPC의 모든 라우팅 테이블)에는 VPC의 모든 리소스에 대한 통신을 활성화하는 단일 로컬 경로만 포함됩니다. 라우팅 테이블에서 로컬 경로를 수정할 수 없습니다. VPC에서 인스턴스를 시작하면 로컬 경로가 자동으로 해당 인스턴스를 처리합니다. 라우팅 테이블에 새 인스턴스를 추가할 필요가 없습니다.

VPC에 대한 추가 사용자 지정 라우팅 테이블을 생성할 수 있습니다. VPC의 각 서브넷은 서브넷에 대한 라우팅을 제어하는 라우팅 테이블과 연결되어야 합니다. 서브넷을 특정 라우팅 테이블과 명시적으로 연결하지 않으면 서브넷이 기본 라우팅 테이블과 암시적으로 연결되고 사용됩니다. 서브넷은 한 번에 하나의 라우팅 테이블에만 연결할 수 있지만 여러 서브넷을 동일한 라우팅 테이블에 연결할 수 있습니다. 각 서브넷에 대해 사용자 지정 라우팅 테이블을 생성하여 대상에 대한 세분화된 라우팅을 활성화할 수 있습니다. 인터넷에 대한 인터넷 게이트웨이의 경우 서브넷과 연결된 경로 테이블에서 대상이 0.0.0.0/0이고 대상이 <igw-id>인 경로를 생성합니다.

Untitled

다음으로, 인스턴스에 공용 IP 또는 탄력적 IP 주소가 있는지 확인해야 합니다.

탄력적 IP 주소는 동적 클라우드 컴퓨팅을 위해 설계된 정적 및 공용 IPv4 주소입니다. 탄력적 IP 주소를 계정의 모든 VPC에 대한 인스턴스 또는 탄력적 네트워크 인터페이스와 연결할 수 있습니다. 탄력적 IP 주소를 사용하면 해당 주소를 VPC의 다른 인스턴스에 빠르게 다시 매핑하여 인스턴스 오류를 마스킹할 수 있습니다.

탄력적 IP 주소를 네트워크 인터페이스와 연결하면 인스턴스와 직접 연결하는 것보다 이점이 있습니다. 네트워크 인터페이스의 모든 속성을 한 번에 한 인스턴스에서 다른 인스턴스로 이동할 수 있습니다.

Untitled

프라이빗 서브넷의 인스턴스를 인터넷 또는 다른 AWS 서비스에 연결하려면 NAT(네트워크 주소 변환) 게이트웨이가 필요합니다.

NAT 게이트웨이를 사용하면 프라이빗 서브넷의 인스턴스가 인터넷이나 다른 AWS 서비스에 연결할 수 있지만 인터넷이 해당 인스턴스와의 연결을 시작할 수 없습니다. NAT 게이트웨이를 생성하려면 NAT 게이트웨이가 상주해야 하는 퍼블릭 서브넷을 지정해야 합니다. NAT 게이트웨이와 연결할 탄력적 IP 주소도 지정해야 합니다. NAT 게이트웨이를 생성한 후에는 인터넷 바인딩 트래픽이 NAT 게이트웨이를 가리키도록 하나 이상의 프라이빗 서브넷과 연결된 라우팅 테이블을 업데이트해야 합니다. 따라서 프라이빗 서브넷의 인스턴스는 인터넷과 통신할 수 있습니다.

Untitled

데이터 저장소 인스턴스, 일괄 처리 인스턴스 및 백엔드 인스턴스는 프라이빗 서브넷에 배치해야 합니다. 웹 계층 인스턴스를 퍼블릭 서브넷에 넣을 수 있습니다. 그러나 AWS에서는 퍼블릭 서브넷에 배치된 로드 밸런서 뒤에 private subnets 내부에 웹 계층 인스턴스를 배치할 것을 권장합니다. 일부 환경에서는 웹 애플리케이션 인스턴스를 탄력적 IP 주소에 직접 연결해야 합니다(탄력적 IP 주소를 로드 밸런서에 연결할 수도 있음). 이러한 경우 웹 애플리케이션 인스턴스는 퍼블릭 서브넷에 있어야 합니다.