메뉴
Amazon Virtual Private Cloud
사용 설명서

시나리오 2: 퍼블릭 서브넷과 프라이빗 서브넷이 있는 VPC(NAT)

이 시나리오의 구성에는 퍼블릭 서브넷과 프라이빗 서브넷이 있는 Virtual Private Cloud(VPC)가 포함됩니다. 이 시나리오는 백엔드 서버에 대한 공개적인 액세스를 차단하면서 퍼블릭 웹 애플리케이션을 실행하려는 경우에 권장됩니다. 일반적인 예로 웹 서버는 퍼블릭 서브넷에 두고 데이터베이스 서버는 프라이빗 서브넷에 두는 다중 계층 웹 사이트가 있습니다. 웹 서버가 데이터베이스 서버와 통신할 수 있도록 보안 및 라우팅을 설정할 수 있습니다.

퍼블릭 서브넷의 인스턴스는 아웃바운드 트래픽을 인터넷으로 직접 전송할 수 있는 반면, 프라이빗 서브넷의 인스턴스는 그렇게 할 수 없습니다. 그 대신, 프라이빗 서브넷의 인스턴스는 퍼블릭 서브넷에 상주하는 네트워크 주소 변환(NAT) 게이트웨이를 사용하여 인터넷에 액세스할 수 있습니다. 소프트웨어 업데이트 시 NAT 게이트웨이를 사용하여 데이터베이스 서버를 인터넷에 연결할 수 있지만, 인터넷에서 데이터베이스 서버 연결을 설정할 수 없습니다.

참고

VPC 마법사를 사용하여 NAT 인스턴스로 VPC를 구성할 수도 있지만, NAT 게이트웨이를 사용하는 것이 좋습니다. 자세한 내용은 NAT 게이트웨이 단원을 참조하십시오.

이 단원에서는 Amazon VPC 콘솔의 VPC 마법사를 사용하여 VPC와 NAT 게이트웨이를 생성한다고 가정합니다.

이 시나리오를 IPv6—에 맞게 구성할 수도 있습니다. 즉 VPC 마법사를 이용해 연결된 IPv6 CIDR 블록이 있는 VPC 및 서브넷을 만들 수 있습니다. 서브넷에서 시작한 인스턴스는 IPv6 주소를 받아 IPv6를 사용해 통신할 수 있습니다. 프라이빗 서브넷의 인스턴스는 외부 전용 인터넷 게이트웨이를 사용하여 IPv6를 통해 인터넷에 연결하지만, 인터넷은 IPv6를 통해 프라이빗 인스턴스에 대한 연결을 설정할 수 없습니다. IPv4 및 IPv6 주소 지정에 대한 자세한 내용은 VPC의 IP 주소 지정 단원을 참조하십시오.

개요

다음 다이어그램은 이 시나리오를 위한 구성의 주요 구성 요소를 보여줍니다.

 시나리오 2의 다이어그램: 퍼블릭 서브넷과 프라이빗 서브넷이 있는 VPC

이 시나리오를 위한 구성에는 다음 정보가 포함됩니다.

  • IPv4 CIDR 블록의 크기가 /16(예: 10.0.0.0/16)인 VPC. 이것은 65,536개의 프라이빗 IPv4 주소를 제공합니다.

  • IPv4 CIDR 블록의 크기가 /24(예: 10.0.0.0/24)인 퍼블릭 서브넷. 이것은 256개의 프라이빗 IPv4 주소를 제공합니다. 퍼블릭 서브넷은 인터넷 게이트웨이로 이어지는 경로가 있는 라우팅 테이블과 연결된 서브넷입니다.

  • IPv4 CIDR 블록의 크기가 /24(예: 10.0.1.0/24)인 프라이빗 서브넷. 이것은 256개의 프라이빗 IPv4 주소를 제공합니다.

  • 인터넷 게이트웨이. VPC를 인터넷 및 다른 AWS 서비스에 연결합니다.

  • 서브넷 범위에서 프라이빗 IPv4 주소가 있는 인스턴스(예: 10.0.0.5, 10.0.1.5). 이 경우 인스턴스가 서로 통신할 수 있으며 VPC의 다른 인스턴스와 통신할 수 있습니다.

  • 탄력적 IPv4 주소(예: 198.51.100.1)가 있는 퍼블릭 서브넷의 인스턴스. 이 경우 탄력적 IPv4 주소는 인터넷을 통해 접근할 수 있게 해주는 퍼블릭 IPv4 주소입니다. 인스턴스는 탄력적 IP 주소 대신 퍼블릭 IP 주소가 실행 시 지정될 수 있습니다. 프라이빗 서브넷의 인스턴스는 인터넷에서 수신되는 트래픽을 수락할 필요가 없는 백 엔드 서버이므로 퍼블릭 IP 주소가 없지만, NAT 게이트웨이를 사용하여 인터넷으로 요청을 전송할 수 있습니다(다음 글머리표 항목 참조).

  • 자체 탄력적 IPv4 주소를 가진 NAT 게이트웨이. 프라이빗 서브넷의 인스턴스는 IPv4를 통한 NAT 게이트웨이를 통해 인터넷에 요청을 보낼 수 있습니다(예: 소프트웨어 업데이트의 경우).

  • 퍼블릭 서브넷과 연결된 사용자 지정 라우팅 테이블. 이 라우팅 테이블에는 서브넷의 인스턴스가 IPv4를 통해 VPC의 다른 인스턴스와 통신할 수 있게 하는 항목과, 서브넷의 인스턴스가 IPv4를 통해 인터넷과 직접 통신할 수 있게 하는 항목이 들어 있습니다.

  • 프라이빗 서브넷과 연결된 기본 라우팅 테이블. 라우팅 테이블에는 서브넷의 인스턴스가 IPv4를 통해 VPC의 다른 인스턴스와 통신할 수 있게 해주는 항목과, 서브넷의 인스턴스가 IPv4로 NAT 게이트웨이를 통해 인터넷과 통신할 수 있게 해주는 항목이 들어 있습니다.

서브넷에 대한 자세한 정보는 VPC 및 서브넷 단원을 참조하십시오. 인터넷 게이트웨이에 대한 자세한 내용은 인터넷 게이트웨이를 참조하십시오. NAT 게이트웨이에 대한 자세한 내용은 NAT 게이트웨이를 참조하십시오.

IPv6 개요

이 시나리오에 IPv6를 사용할 수도 있습니다. 위에 나열된 구성 요소뿐 아니라 다음 요소도 구성에 포함됩니다.

  • VPC와 연결된 /56 크기의 IPv6 CIDR 블록(예: 2001:db8:1234:1a00::/56). Amazon은 CIDR을 자동 할당하므로 범위를 직접 선택할 수는 없습니다.

  • 퍼블릭 서브넷과 연결된 /64 크기의 IPv6 CIDR 블록(예: 2001:db8:1234:1a00::/64). VPC에 할당된 범위 내에서 서브넷의 범위를 선택할 수 있습니다. VPC IPv6 CIDR 블록의 크기는 선택할 수 없습니다.

  • 프라이빗 서브넷과 연결된 /64 크기의 IPv6 CIDR 블록(예: 2001:db8:1234:1a01::/64). VPC에 할당된 범위 내에서 서브넷의 범위를 선택할 수 있습니다. 서브넷 IPv6 CIDR 블록의 크기는 선택할 수 없습니다.

  • 서브넷 범위에서 인스턴스에 할당된 IPv6 주소(예: 2001:db8:1234:1a00::1a).

  • 외부 전용 인터넷 게이트웨이. 이를 통해 프라이빗 서브넷의 인스턴스는 IPv6를 통해 인터넷에 요청을 전송할 수 있습니다(예: 소프트웨어 업데이트 요청). 프라이빗 서브넷의 인스턴스가 IPv6를 통해 인터넷과의 통신할 수 있게 하려면 외부 전용 인터넷 게이트웨이가 필요합니다. 자세한 내용은 외부 전용 인터넷 게이트웨이 단원을 참조하십시오.

  • 퍼블릭 서브넷의 인스턴스가 IPv6를 사용하여 서로 통신할 수 있게 해주며, 또한 인터넷을 통해 직접 통신할 수 있게 해주는 사용자 정의 라우팅 테이블의 라우팅 테이블 항목.

  • 프라이빗 서브넷의 인스턴스가 IPv6를 사용하여 서로 통신할 수 있도록 해주며, 또한 외부 전용 인터넷 게이트웨이를 통해 인터넷과 통신할 수 있게 해주는 기본 라우팅 테이블의 라우팅 테이블 항목.

 퍼블릭 및 프라이빗 서브넷이 있는 IPv6 사용 VPC

라우팅

이 시나리오에서 VPC 마법사는 프라이빗 서브넷에 사용되는 기본 라우팅 테이블을 업데이트하고 사용자 정의 라우팅 테이블을 만들어 이를 퍼블릭 서브넷에 연결합니다.

이 시나리오에서는, 각 서브넷에서 AWS(예: Amazon EC2 또는 Amazon S3 엔드포인트)로 향하는 모든 트래픽이 인터넷 게이트웨이를 거칩니다. 프라이빗 서브넷의 데이터베이스 서버는 탄력적 IP 주소가 없기 때문에 인터넷에서 직접 트래픽을 수신할 수 없습니다. 하지만 데이터베이스 서버는 퍼블릭 서브넷의 NAT 디바이스를 통해 인터넷 트래픽을 전송하고 수신할 수 있습니다.

추가로 만든 모든 서브넷은 기본적으로 기본 라우팅 테이블을 사용하며, 따라서 기본적으로 프라이빗 서브넷입니다. 퍼블릭 서브넷으로 만들고 싶다면 연결된 라우팅 테이블을 변경하면 됩니다.

다음 표에서는 이 시나리오의 라우팅 테이블에 대해 설명합니다.

기본 라우팅 테이블

첫 번째 항목은 VPC의 로컬 라우팅에 대한 기본 항목으로서, VPC의 인스턴스가 서로 통신할 수 있게 해줍니다. 두 번째 항목에서는 기타 서브넷 트래픽을 모두 NAT 게이트웨이(예: nat-12345678901234567)로 전송합니다.

목적지 Target

10.0.0.0/16

local

0.0.0.0/0

nat-gateway-id

사용자 정의 라우팅 테이블

첫 번째 항목은 VPC의 로컬 라우팅에 대한 기본 항목으로서, 이 VPC의 인스턴스가 서로 통신할 수 있게 해줍니다. 두 번째 항목에서는 인터넷 게이트웨이(예: igw-1a2b3d4d)를 통해 기타 서브넷 트래픽을 모두 인터넷으로 라우팅합니다.

목적지 Target

10.0.0.0/16

local

0.0.0.0/0

igw-id

IPv6에 대한 라우팅

IPv6 CIDR 블록을 VPC 및 서브넷에 연결하는 경우, 라우팅 테이블에는 IPv6 트래픽에 대한 별도의 경로가 포함되어야 합니다. 다음 표는 VPC에서 IPv6 통신을 사용하기로 한 경우, 이 시나리오에 대한 라우팅 테이블을 정리한 것입니다.

기본 라우팅 테이블

두 번째 항목은 IPv6를 통한 VPC의 로컬 라우팅에 자동으로 추가된 기본 경로입니다. 네 번째 항목은 기타 IPv6 서브넷 트래픽을 모두 외부 전용 인터넷 게이트웨이로 라우팅합니다.

목적지 Target

10.0.0.0/16

local

2001:db8:1234:1a00::/56

local

0.0.0.0/0

nat-gateway-id

::/0

egress-only-igw-id

사용자 정의 라우팅 테이블

두 번째 항목은 IPv6를 통한 VPC의 로컬 라우팅에 자동으로 추가된 기본 경로입니다. 네 번째 항목에서는 기타 IPv6 서브넷 트래픽을 모두 인터넷 게이트웨이로 라우팅합니다.

목적지 Target

10.0.0.0/16

local

2001:db8:1234:1a00::/56

local

0.0.0.0/0

igw-id

::/0

igw-id

보안

AWS는 VPC의 보안을 강화하기 위해 사용할 수 있는 두 가지 기능, 보안 그룹네트워크 ACL을 제공합니다. 보안 그룹은 인스턴스용 인바운드 및 아웃바운드 트래픽을 제어하고, 네트워크 ACL은 서브넷용 인바운드 및 아웃바운드 트래픽을 제어합니다. 대부분의 경우 보안 그룹은 사용자의 요구 사항을 맞출 수 있지만, 원하는 경우 네트워크 ACL을 사용하여 VPC에 보안 계층을 더 추가할 수 있습니다. 자세한 내용은 보안 단원을 참조하십시오.

시나리오 2에서는 네트워크 ACL이 아닌 보안 그룹을 사용합니다. 네트워크 ACL을 사용하려는 경우 시나리오 2를 위한 권장 규칙을 참조하십시오.

VPC는 기본 보안 그룹과 함께 제공됩니다. 인스턴스를 시작하는 동안 다른 보안 그룹을 지정하지 않는 경우, VPC에서 시작되는 인스턴스는 적절한 기본 보안 그룹과 자동 연결됩니다. 이 시나리오의 경우, 기본 보안 그룹을 수정하는 대신 다음과 같은 보안 그룹을 생성하는 것이 좋습니다.

  • WebServerSG: 퍼블릭 서브넷의 웹 서버를 시작할 때 이 보안 그룹을 지정합니다.

  • DBServerSG: 프라이빗 서브넷의 데이터베이스 서버를 시작할 때 이 보안 그룹을 지정합니다.

보안 그룹에 지정된 인스턴스는 서로 다른 서브넷에 있을 수 있습니다. 하지만 이 시나리오에서 각 보안 그룹은 인스턴스가 수행하는 역할 유형과 일치하며, 각 역할은 인스턴스가 특정 서브넷에 있을 것을 요구합니다. 따라서 이 시나리오에서 한 보안 그룹에 지정된 모든 인스턴스는 동일한 서브넷에 있습니다.

아래 표에서는 WebServerSG 보안 그룹에 권장되는 규칙을 설명합니다. 이 규칙은 웹 서버가 인터넷 트래픽을 수신하고, 네트워크에서 발생하는 SSH 및 RDP 트래픽을 수신할 수 있도록 허용합니다. 웹 서버는 또한 프라이빗 서브넷의 데이터베이스 서버에 대해 읽기 및 쓰기 요청을 시작하고, 인터넷으로 트래픽을 전송합니다(예: 소프트웨어 업데이트 받기). 웹 서버는 다른 아웃바운드 통신을 시작하지 않기 때문에 기본 아웃바운드 규칙은 제거됩니다.

참고

이러한 권장 사항에는 SSH와 RDP 액세스 그리고 Microsoft SQL Server와 MySQL 액세스가 포함됩니다. 상황에 따라 Linux(SSH 및 MySQL) 또는 Windows(RDP 및 Microsoft SQL Server)용 규칙만 필요할 수 있습니다.

WebServerSG: 권장 규칙

인바운드
소스 프로토콜 포트 범위 설명

0.0.0.0/0

TCP

80

어떤 IPv4 주소에서든 웹 서버로의 인바운드 HTTP 액세스 허용

0.0.0.0/0

TCP

443

어떤 IPv4 주소에서든 웹 서버로의 인바운드 HTTPS 액세스 허용

홈 네트워크의 퍼블릭 IPv4 주소 범위

TCP

22

홈 네트워크에서 Linux 인스턴스로의 인바운드 SSH 액세스 허용(인터넷 게이트웨이를 통해). http://checkip.amazonaws.com과 같은 서비스를 사용하여 로컬 컴퓨터의 퍼블릭 IPv4 주소를 얻을 수 있습니다. 고정 IP 주소 없이 ISP 또는 방화벽을 경유하여 연결하는 경우에는 클라이언트 컴퓨터가 사용하는 IP 주소의 범위를 알아내야 합니다.

홈 네트워크의 퍼블릭 IPv4 주소 범위

TCP

3389

홈 네트워크에서 Windows 인스턴스로 인바운드 RDP 액세스 허용(인터넷 게이트웨이를 통해).

아웃바운드

목적지 프로토콜 포트 범위 설명

DBServerSG 보안 그룹의 ID

TCP

1433

DBServerSG 보안 그룹에 지정된 데이터베이스 서버에 대해 아웃바운드 Microsoft SQL Server 액세스 허용

DBServerSG 보안 그룹의 ID

TCP

3306

DBServerSG 보안 그룹에 지정된 데이터베이스 서버에 대해 아웃바운드 MySQL 액세스 허용

0.0.0.0/0

TCP

80

모든 IPv4 주소에 대한 아웃바운드 HTTP 액세스를 허용

0.0.0.0/0

TCP

443

모든 IPv4 주소에 대한 아웃바운드 HTTPS 액세스를 허용

아래 표에서는 DBServerSG 보안 그룹에 권장되는 규칙에 대해 설명합니다. 이 규칙은 웹 서버에서 전송되는 데이터베이스 읽기 또는 쓰기 요청을 허용합니다. 데이터베이스 서버는 인터넷으로 향하는 트래픽을 시작할 수도 있습니다. 라우팅 테이블에 따라 이 트래픽은 NAT 게이트웨이로 전송된 후 인터넷 게이트웨이를 통해 인터넷에 전달됩니다.

DBServerSG: 권장 규칙

인바운드
소스 프로토콜 포트 범위 설명

WebServerSG 보안 그룹의 ID

TCP

1433

WebServerSG 보안 그룹과 연결된 웹 서버에서 인바운드 Microsoft SQL Server 액세스가 가능하도록 허용

WebServerSG 보안 그룹의 ID

TCP

3306

WebServerSG 보안 그룹과 연결된 웹 서버에서 인바운드 MySQL Server 액세스가 가능하도록 허용

아웃바운드

목적지 프로토콜 포트 범위 설명

0.0.0.0/0

TCP

80

IPv4를 통한 인터넷으로의 아웃바운드 HTTP 액세스를 허용합니다(예: 소프트웨어 업데이트).

0.0.0.0/0

TCP

443

IPv4를 통한 인터넷으로의 아웃바운드 HTTPS 액세스를 허용합니다(예: 소프트웨어 업데이트).

(선택 사항) VPC의 기본 보안 그룹에는 지정된 인스턴스가 서로 통신할 수 있도록 자동 허용하는 규칙이 있습니다. 사용자 지정 보안 그룹에 이러한 유형의 통신을 허용하려면 다음과 같은 규칙을 추가해야 합니다.

인바운드
소스 프로토콜 포트 범위 설명

보안 그룹의 ID

모두

모두

이 보안 그룹에 지정된 다른 인스턴스로부터의 인바운드 트래픽 허용.

아웃바운드
목적지 프로토콜 포트 범위 설명
보안 그룹의 ID 모두 모두 이 보안 그룹에 지정된 다른 인스턴스에 대해 아웃바운드 트래픽 허용

IPv6의 보안

IPv6 CIDR 블록을 VPC 및 서브넷에 연결하는 경우, WebServerSG 및 DBServerSG 보안 그룹에 별도의 규칙을 추가하여 인스턴스에 대한 인바운드 및 아웃바운드 IPv6 트래픽을 제어해야 합니다. 이 시나리오에서 웹 서버는 IPv6를 통해 인터넷 트래픽을 모두 수신할 수 있고, IPv6를 통해 로컬 네트워크로부터 SSH 또는 RDP 트래픽을 수신할 수 있습니다. 또한 인터넷으로의 아웃바운드 IPv6 트래픽을 시작할 수 있습니다. 데이터베이스 서버는 인터넷으로의 아웃바운드 IPv6 트래픽을 시작할 수 있습니다.

다음은 WebServerSG 보안 그룹에 대한 IPv6 전용 규칙입니다(위에 나열한 규칙에 추가되는 것).

인바운드
소스 프로토콜 포트 범위 설명

::/0

TCP

80

어떤 IPv6 주소에서든 웹 서버로의 인바운드 HTTP 액세스 허용

::/0

TCP

443

어떤 IPv6 주소에서든 웹 서버로의 인바운드 HTTPS 액세스 허용

네트워크의 IPv6 주소 범위

TCP

22

(Linux 인스턴스) IPv6를 통한 네트워크로부터의 인바운드 SSH 액세스 허용

네트워크의 IPv6 주소 범위

TCP

3389

(Windows 인스턴스) IPv6를 통한 네트워크로부터의 인바운드 RDP 액세스 허용

아웃바운드
목적지 프로토콜 포트 범위 설명
::/0 TCP HTTP 임의의 IPv6 주소에 대한 아웃바운드 HTTP 액세스 허용
::/0 TCP HTTPS 임의의 IPv6 주소에 대한 아웃바운드 HTTPS 액세스 허용

다음은 DBServerSG 보안 그룹에 대한 IPv6 전용 규칙입니다(위에 나열한 규칙에 추가되는 것).

아웃바운드

목적지 프로토콜 포트 범위 설명

::/0

TCP

80

임의의 IPv6 주소에 대한 아웃바운드 HTTP 액세스 허용

::/0

TCP

443

임의의 IPv6 주소에 대한 아웃바운드 HTTPS 액세스 허용

시나리오 2 구현

VPC 마법사를 사용하여 VPC, 서브넷 및 NAT 게이트웨이를 만들 수 있습니다. 외부 전용 인터넷 게이트웨이를 만들 수도 있습니다. NAT 게이트웨이에 탄력적 IP 주소를 지정해야 합니다. 주소가 없는 경우, 먼저 계정에 주소를 할당해야 합니다. 기존 탄력적 IP 주소를 사용하려면 해당 주소가 다른 인스턴스 또는 네트워크 인터페이스와 현재 연결되어 있지 않은지 확인합니다. NAT 게이트웨이는 VPC의 퍼블릭 서브넷에서 자동으로 생성됩니다.

이 절차에는 VPC용 IPv6 통신을 활성화 및 구성하기 위한 옵션 절차가 포함됩니다. VPC에서 IPv6를 사용하고 싶지 않다면 이 절차를 수행할 필요가 없습니다.

(선택 사항) NAT 게이트웨이(IPv4)에 사용할 탄력적 IP 주소를 할당하려면

  1. https://console.aws.amazon.com/vpc/에서 Amazon VPC 콘솔을 엽니다.

  2. 탐색 창에서 [Elastic IPs]를 선택합니다.

  3. [Allocate New Address]를 선택합니다.

  4. [Yes, Allocate]를 선택합니다.

    참고

    계정이 EC2-Classic을 지원할 경우 우선 [Network platform] 목록에서 [EC2-VPC]를 선택합니다.

VPC를 만들려면

  1. https://console.aws.amazon.com/vpc/에서 Amazon VPC 콘솔을 엽니다.

  2. VPC 대시보드에서 [Start VPC Wizard]를 선택합니다.

  3. 두 번째 옵션인 [VPC with Public and Private Subnets]을 선택하고 [Select]를 선택합니다.

  4. VPC name, Public subnet namePrivate subnet name에 대해 VPC와 서브넷 이름을 붙이면 나중에 콘솔에서 이들을 식별하는 데 도움이 됩니다. VPC 및 서브넷에 대해 고유한 IPv4 CIDR 블록 범위를 지정하거나 기본값을 그대로 둘 수 있습니다.

  5. (선택 사항, IPv6 전용) IPv6 CIDR block에 대해 Amazon-provided IPv6 CIDR block을 선택합니다. Public subnet's IPv6 CIDR에 대해 Specify a custom IPv6 CIDR을 선택하고 서브넷에 16진수 페어 값을 지정하거나 기본값을 그대로 둡니다. Private subnet's IPv6 CIDR에 대해 Specify a custom IPv6 CIDR을 선택합니다. IPv6 서브넷에 16진수 페어 값을 지정하거나 기본값을 그대로 둡니다.

  6. Specify the details of your NAT gateway 섹션에서 계정의 탄력적 IP 주소에 할당 ID를 지정합니다.

  7. 페이지에서 나머지 기본값은 그대로 두고 Create VPC를 선택합니다.

WebServerSG 및 DBServerSG 보안 그룹은 서로를 참조하기 때문에 이러한 보안 그룹에 규칙을 추가하기 전에 이 시나리오에 필요한 모든 보안 그룹을 만듭니다.

WebServerSG 및 DBServerSG 보안 그룹을 만들려면

  1. https://console.aws.amazon.com/vpc/에서 Amazon VPC 콘솔을 엽니다.

  2. 탐색 창에서 Security GroupsCreate Security Group을 차례로 선택합니다.

  3. 보안 그룹의 이름과 설명을 입력합니다. 이 주제에서는 WebServerSG라는 이름이 예제로 사용됩니다. [VPC]에 대해 생성한 VPC의 ID를 선택하고 [Yes, Create]를 선택합니다.

  4. [Create Security Group]을 다시 선택합니다.

  5. 보안 그룹의 이름과 설명을 입력합니다. 이 주제에서는 DBServerSG라는 이름이 예제로 사용됩니다. [VPC]에 대해 VPC의 ID를 선택한 다음 [Yes, Create]를 선택합니다.

WebServerSG 보안 그룹에 규칙을 추가하려면 다음을 수행합니다.

  1. 앞에서 만든 WebServerSG 보안 그룹을 선택합니다. 세부 정보 창에는 인바운드 및 아웃바운드 규칙 작업을 위한 탭과 함께 보안 그룹에 대한 세부 정보가 표시됩니다.

  2. [Inbound Rules] 탭에서 [Edit]를 선택한 후, 다음과 같이 인바운드 트래픽에 대한 규칙들을 추가합니다.

    1. [Type], [HTTP]를 선택합니다. [Source]에 0.0.0.0/0을 입력합니다.

    2. [Add another rule], [Type], [HTTPS]를 차례로 선택하고 [Source]에 0.0.0.0/0을 입력합니다.

    3. [Add another rule], [Type], [SSH]를 선택합니다. Source에 네트워크의 퍼블릭 IPv4 주소 범위를 입력합니다.

    4. [Add another rule], [Type], [RDP]를 선택합니다. Source에 네트워크의 퍼블릭 IPv4 주소 범위를 입력합니다.

    5. (선택 사항, IPv6 전용) Add another rule, Type, HTTP를 차례로 선택합니다. [Source]에 ::/0을 입력합니다.

    6. (선택 사항, IPv6 전용) Add another rule, Type, HTTPS를 차례로 선택합니다. [Source]에 ::/0을 입력합니다.

    7. (선택 사항, IPv6 전용) Add another rule, Type, SSH (Linux용) 또는 RDP(Windows용)를 선택합니다. Source에 네트워크의 IPv6 주소 범위를 입력합니다.

    8. Save를 선택합니다.

  3. [Outbound Rules] 탭에서 [Edit]를 선택한 후 다음과 같이 아웃바운드 트래픽에 대한 규칙을 추가합니다.

    1. 모든 아웃바운드 트래픽을 허용하는 기본 규칙을 찾아 [Remove]를 선택합니다.

    2. [Type], [MS SQL]을 선택합니다. [Destination]에 DBServerSG 보안 그룹의 ID를 지정합니다.

    3. [Add another rule], [Type], [MySQL]을 선택합니다. [Destination]에 DBServerSG 보안 그룹의 ID를 지정합니다.

    4. [Add another rule], [Type], [HTTPS]를 선택합니다. [Destination]에 [0.0.0.0/0]을 입력합니다.

    5. [Add another rule], [Type], [HTTP]를 선택합니다. [Destination]에 [0.0.0.0/0]을 입력합니다.

    6. (선택 사항, IPv6 전용) Add another rule, Type, HTTPS를 차례로 선택합니다. [Destination]에 [::/0]을 입력합니다.

    7. (선택 사항, IPv6 전용) Add another rule, Type, HTTP를 차례로 선택합니다. [Destination]에 [::/0]을 입력합니다.

    8. [Save]를 선택합니다.

DBServerSG 보안 그룹에 권장 규칙을 추가하려면

  1. 앞에서 만든 DBServerSG 보안 그룹을 선택합니다. 세부 정보 창에는 인바운드 및 아웃바운드 규칙 작업을 위한 탭과 함께 보안 그룹에 대한 세부 정보가 표시됩니다.

  2. [Inbound Rules] 탭에서 [Edit]를 선택한 후, 다음과 같이 인바운드 트래픽에 대한 규칙들을 추가합니다.

    1. [Type], [MS SQL]을 선택합니다. [Source]에 WebServerSG 보안 그룹의 ID를 지정합니다.

    2. [Add another rule], [Type], [MYSQL]을 선택합니다. [Source]에 WebServerSG 보안 그룹의 ID를 지정합니다.

    3. Save를 선택합니다.

  3. [Outbound Rules] 탭에서 [Edit]를 선택한 후 다음과 같이 아웃바운드 트래픽에 대한 규칙을 추가합니다.

    1. 모든 아웃바운드 트래픽을 허용하는 기본 규칙을 찾아 [Remove]를 선택합니다.

    2. [Type], [HTTP]를 선택합니다. [Destination]에 [0.0.0.0/0]을 입력합니다.

    3. [Add another rule], [Type], [HTTPS]를 선택합니다. [Destination]에 [0.0.0.0/0]을 입력합니다.

    4. (선택 사항, IPv6 전용) Add another rule, Type, HTTP를 차례로 선택합니다. [Destination]에 [::/0]을 입력합니다.

    5. (선택 사항, IPv6 전용) Add another rule, Type, HTTPS를 차례로 선택합니다. [Destination]에 [::/0]을 입력합니다.

    6. [Save]를 선택합니다.

이제 VPC에서 인스턴스를 시작할 수 있습니다.

인스턴스를 시작하려면(웹 서버 또는 데이터베이스 서버)

  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 대시보드에서 [Launch Instance]를 선택합니다.

  3. AMI와 인스턴스 유형을 선택하고 [Next: Configure Instance Details]를 선택합니다.

    참고

    IPv6 통신 용도로 인스턴스를 사용하고자 하는 경우, 지원되는 인스턴스 유형(예: T2)을 선택해야 합니다. 자세한 내용은 Amazon EC2 인스턴스 유형 단원을 참조하십시오.

  4. [Configure Instance Details] 페이지의 [Network]에서, 앞에서 만들었던 VPC를 선택한 후 서브넷을 선택합니다. 예를 들어 웹 서버는 퍼블릭 서버에서 시작하고, 데이터베이스 서버는 프라이빗 서브넷에서 시작합니다.

  5. (선택 사항) 기본이 아닌 VPC에서 시작되는 인스턴스에는 퍼블릭 IPv4 주소가 할당되지 않도록 기본 설정되어 있습니다. 퍼블릭 서브넷의 인스턴스에 연결하려면 지금 퍼블릭 IPv4 주소를 지정하거나, 탄력적 IP 주소를 할당하고 인스턴스를 시작한 후 이를 인스턴스에 지정할 수 있습니다. 지금 퍼블릭 IPv4 주소를 지정하려면 Auto-assign Public IP 목록에서 Enable을 선택해야 합니다. 프라이빗 서브넷의 인스턴스에는 퍼블릭 IP 주소를 지정할 필요가 없습니다.

    참고

    디바이스 인덱스가 eth0인 새로운 단일 네트워크 인터페이스에는 자동 할당 퍼블릭 IPv4 기능만 사용할 수 있습니다. 자세한 내용은 인스턴스 시작 시 퍼블릭 IPv4 주소 배정 단원을 참조하십시오.

  6. (선택 사항, IPv6 전용) 서브넷 범위 내에서 인스턴스에 IPv6 주소를 자동 할당할 수 있습니다. Auto-assign IPv6 IP에 대해 Enable을 선택합니다.

  7. 마법사의 다음 두 페이지에서 인스턴스의 스토리지를 구성하고 태그를 추가할 수 있습니다. [Configure Security Group] 페이지에서 [Select an existing security group] 옵션을 선택한 후 앞에서 만든 보안 그룹 중 하나(웹 서버의 경우 [WebServerSG] 또는 데이터베이스 서버의 경우 [DBServerSG])를 선택합니다. [Review and Launch]를 선택합니다.

  8. 선택한 설정을 검토합니다. 필요한 사항을 변경한 후 [Launch]를 선택하여 키 페어를 선택하고 인스턴스를 시작합니다.

5단계에서 퍼블릭 서브넷의 인스턴스에 퍼블릭 IPv4 주소를 지정하지 않은 경우, 인스턴스에 연결할 수 없습니다. 퍼블릭 서브넷의 인스턴스에 액세스하려면 먼저 해당 인스턴스에 탄력적 IP 주소를 지정해야 합니다.

인스턴스에 탄력적 IP 주소를 할당하고 지정하려면(IPv4)

  1. https://console.aws.amazon.com/vpc/에서 Amazon VPC 콘솔을 엽니다.

  2. 탐색 창에서 [Elastic IPs]를 선택합니다.

  3. Allocate new address를 선택합니다.

  4. [Allocate]를 선택합니다.

    참고

    계정이 EC2-Classic을 지원할 경우 우선 [VPC]를 선택합니다.

  5. 목록에서 탄력적 IP 주소를 선택한 다음, [Actions], [Associate Address]를 선택합니다.

  6. 네트워크 인터페이스 또는 인스턴스를 선택합니다. [Private IP]에서 탄력적 IP 주소와 연결할 주소를 선택하고 [Associate]를 선택합니다.

이제 VPC의 인스턴스에 연결할 수 있습니다. Linux 인스턴스 연결 방법에 대한 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서Linux 인스턴스에 연결을 참조하십시오. Windows 인스턴스 연결 방법에 대한 자세한 내용은 Windows 인스턴스용 Amazon EC2 사용 설명서Windows 인스턴스에 연결을 참조하십시오.

NAT 인스턴스를 사용하여 시나리오 2 구현

NAT 게이트웨이 대신 NAT 인스턴스를 사용하여 시나리오 2를 구현할 수 있습니다. NAT 인스턴스에 대한 자세한 내용은 NAT 인스턴스를 참조하십시오.

위와 동일한 절차를 따를 수 있지만, VPC 마법사의 NAT 섹션에서 [Use a NAT instance instead]를 선택하고 NAT 인스턴스에 대한 세부 정보를 지정합니다. 또한 NAT 인스턴스가 프라이빗 서브넷의 인스턴스에서 인터넷 바운드 트래픽을 수신하고 네트워크에서 SSH 트래픽을 수신할 수 있도록 NAT 인스턴스(NATSG)에 대한 보안 그룹이 필요합니다. 또한 NAT 인스턴스는 인터넷으로 트래픽을 전송할 수 있으며 따라서 프라이빗 서브넷의 인스턴스는 소프트웨어 업데이트를 받을 수 있습니다.

NAT 인스턴스를 사용하여 VPC를 만든 후 NAT 인스턴스와 연결된 보안 그룹을 새 NATSG 보안 그룹으로 변경해야 합니다. 기본적으로 NAT 인스턴스는 기본 보안 그룹을 사용하여 시작됩니다.

NATSG: 권장 규칙

인바운드
소스 프로토콜 포트 범위 설명

10.0.1.0/24

TCP

80

프라이빗 서브넷의 데이터베이스 서버로부터의 인바운드 HTTP 트래픽 허용

10.0.1.0/24

TCP

443

프라이빗 서브넷의 데이터베이스 서버로부터의 인바운드 HTTPS 트래픽 허용

네트워크의 퍼블릭 IP 주소 범위

TCP

22

네트워크로부터 NAT 인스턴스에 대한 인바운드 SSH 액세스 허용(인터넷 게이트웨이를 통해)

아웃바운드

목적지 프로토콜 포트 범위 설명

0.0.0.0/0

TCP

80

인터넷으로의 아웃바운드 HTTP 액세스 허용(인터넷 게이트웨이를 통해)

0.0.0.0/0

TCP

443

인터넷으로의 아웃바운드 HTTPS 액세스 허용(인터넷 게이트웨이를 통해)

NATSG 보안 그룹을 생성하려면

  1. https://console.aws.amazon.com/vpc/에서 Amazon VPC 콘솔을 엽니다.

  2. 탐색 창에서 [Security Groups]와 [Create Security Group]을 차례로 선택합니다.

  3. 보안 그룹의 이름과 설명을 지정합니다. 이 주제에서는 NATSG라는 이름이 예제로 사용됩니다. [VPC]에 대해 VPC의 ID를 선택한 다음 [Yes, Create]를 선택합니다.

  4. 앞에서 만든 NATSG 보안 그룹을 선택합니다. 세부 정보 창에는 인바운드 및 아웃바운드 규칙 작업을 위한 탭과 함께 보안 그룹에 대한 세부 정보가 표시됩니다.

  5. [Inbound Rules] 탭에서 [Edit]를 선택한 후, 다음과 같이 인바운드 트래픽에 대한 규칙들을 추가합니다.

    1. [Type], [HTTP]를 선택합니다. [Source]에 프라이빗 서브넷의 IP 주소 범위를 입력합니다.

    2. [Add another rule], [Type], [HTTPS]를 선택합니다. [Source]에 프라이빗 서브넷의 IP 주소 범위를 입력합니다.

    3. [Add another rule], [Type], [SSH]를 선택합니다. [Source]에 네트워크의 퍼블릭 IP 주소 범위를 입력합니다.

    4. Save를 선택합니다.

  6. [Outbound Rules] 탭에서 [Edit]를 선택한 후 다음과 같이 아웃바운드 트래픽에 대한 규칙을 추가합니다.

    1. 모든 아웃바운드 트래픽을 허용하는 기본 규칙을 찾아 [Remove]를 선택합니다.

    2. [Type], [HTTP]를 선택합니다. [Destination]에 [0.0.0.0/0]을 입력합니다.

    3. [Add another rule], [Type], [HTTPS]를 선택합니다. [Destination]에 [0.0.0.0/0]을 입력합니다.

    4. [Save]를 선택합니다.

VPC 마법사에서 NAT 인스턴스를 시작했을 때 VPC에 기본 보안 그룹이 사용되었습니다. NAT 인스턴스에 기본 보안 그룹 대신 NATSG 보안 그룹을 연결해야 합니다.

NAT 인스턴스의 보안 그룹을 변경하려면

  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 Network Interfaces를 선택합니다.

  3. 목록에서 NAT 인스턴스에 대한 네트워크 인터페이스를 선택한 후 [Actions], [Change Security Groups]를 선택합니다.

  4. [Change Security Groups] 대화 상자의 [Security groups]에 대해 만든 NATSG 보안 그룹(보안 참조)을 선택한 후 [Save]를 선택합니다.