

# Amazon VPC 및 Amazon RDS
<a name="USER_VPC"></a>

Amazon Virtual Private Cloud(Amazon VPC)를 사용하면 Amazon RDS DB 인스턴스와 같은 AWS 리소스를 Virtual Private Cloud(VPC)로 시작할 수 있습니다.

VPC를 사용하면 가상 네트워킹 환경을 완벽하게 제어할 수 있습니다. 자기만의 IP 주소 범위를 선택하고, 서브넷을 생성하고, 라우팅 및 액세스 제어 목록을 구성할 수 있습니다. DB 인스턴스를 VPC에서 실행하는 데는 추가 비용이 들지 않습니다.

계정에는 기본 VPC가 있습니다. 달리 지정하지 않는 한 새 DB 인스턴스는 모두 기본 VPC에서 생성됩니다.

**Topics**
+ [VPC에서 DB 인스턴스를 사용한 작업](USER_VPC.WorkingWithRDSInstanceinaVPC.md)
+ [DB 인스턴스에 대한 VPC 업데이트](USER_VPC.VPC2VPC.md)
+ [VPC에서 DB 인스턴스에 액세스하는 시나리오](USER_VPC.Scenarios.md)
+ [자습서: DB 인스턴스에 사용할 Amazon VPC 생성(IPv4 전용)](CHAP_Tutorials.WebServerDB.CreateVPC.md)
+ [자습서: DB 인스턴스(듀얼 스택 모드)에 사용할 VPC 생성](CHAP_Tutorials.CreateVPCDualStack.md)
+ [VPC에 있지 않은 DB 인스턴스를 VPC로 이동](USER_VPC.Non-VPC2VPC.md)

다음에서는 Amazon RDS DB 인스턴스와 관련된 VPC 기능에 대한 토론을 찾을 수 있습니다. Amazon VPC 대한 자세한 내용은 [Amazon VPC 시작 안내서](https://docs.aws.amazon.com/AmazonVPC/latest/GettingStartedGuide/) 및 [Amazon VPC 사용 설명서](https://docs.aws.amazon.com/vpc/latest/userguide/)를 참조하세요.

# VPC에서 DB 인스턴스를 사용한 작업
<a name="USER_VPC.WorkingWithRDSInstanceinaVPC"></a>

DB 인스턴스는 Virtual Private Cloud(VPC) 내에 있어야 합니다. VPC 는 AWS 클라우드의 다른 가상 네트워크에서 논리적으로 격리된 가상 네트워크입니다. Amazon VPC를 사용하면 Amazon RDS DB 인스턴스 또는 Amazon EC2 인스턴스와 같은 AWS 리소스를 VPC로 시작할 수 있습니다. VPC는 계정과 함께 제공되는 기본 VPC일 수도 있고, 사용자가 만들 수도 있습니다. 모든 VPC는 AWS 계정과 연결됩니다.

기본 VPC에는 VPC 내의 리소스를 격리하는 데 사용할 수 있는 3개의 서브넷이 있습니다. 또한 VPC 외부에서 VPC 내부의 리소스에 액세스할 수 있도록 하는 데 사용할 수 있는 인터넷 게이트웨이도 있습니다.

VPC 내부와 외부의 Amazon RDS DB 인스턴스를 포함하는 시나리오 목록은 [VPC에서 DB 인스턴스에 액세스하는 시나리오](USER_VPC.Scenarios.md) 섹션을 참조하세요.

**Topics**
+ [VPC에서 DB 인스턴스를 사용한 작업](#Overview.RDSVPC.Create)
+ [VPC 암호화 제어](#USER_VPC.EncryptionControl)
+ [DB 서브넷 그룹을 사용한 작업](#USER_VPC.Subnets)
+ [공유 서브넷](#USER_VPC.Shared_subnets)
+ [Amazon RDS IP 주소 지정](#USER_VPC.IP_addressing)
+ [VPC에 있는 DB 인스턴스를 인터넷에서 숨기기](#USER_VPC.Hiding)
+ [VPC에 DB 인스턴스 만들기](#USER_VPC.InstanceInVPC)

다음 자습서에서는 일반적인 Amazon RDS 시나리오에 사용할 수 있는 VPC를 생성하는 방법을 배울 수 있습니다.
+ [자습서: DB 인스턴스에 사용할 Amazon VPC 생성(IPv4 전용)](CHAP_Tutorials.WebServerDB.CreateVPC.md)
+ [자습서: DB 인스턴스(듀얼 스택 모드)에 사용할 VPC 생성](CHAP_Tutorials.CreateVPCDualStack.md)

## VPC에서 DB 인스턴스를 사용한 작업
<a name="Overview.RDSVPC.Create"></a>

다음은 VPC에서 DB 인스턴스를 사용하여 작업할 때 유용한 몇 가지 팁입니다.
+ VPC는 최소 2개 이상의 서브넷을 보유해야 합니다. 이러한 서브넷은 DB 인스턴스를 배포하고자 하는 AWS 리전에 있는 2개의 다른 가용 영역에 있어야 합니다. *서브넷*은 사용자가 지정할 수 있고 보안 및 운영상의 필요를 바탕으로 인스턴스를 그룹화할 수 있게 해주는 VPC IP 주소 범위의 한 부분입니다.

  다중 AZ 배포의 경우, AWS 리전에 있는 두 개 이상의 가용 영역에 대한 서브넷을 정의하면 Amazon RDS가 필요에 따라 다른 가용 영역에 새로운 예비 복제본을 만들 수 있습니다. 단일 AZ 배포의 경우도 어느 시점에 단일 AZ 배포를 다중 AZ 배포로 변환하려면 이 작업을 수행해야 합니다.
**참고**  
로컬 영역의 DB 서브넷 그룹에는 서브넷이 하나만 있을 수 있습니다.
+ VPC에서 DB 인스턴스에 공개적으로 액세스할 수 있도록 하려면 VPC 속성인 *DNS 호스트 이름*과 *DNS 확인*을 활성화해야 합니다.
+ VPC에는 사용자가 만드는 DB 서브넷 그룹이 있어야 합니다. 생성한 서브넷을 지정하여 DB 서브넷 그룹을 생성합니다. Amazon RDS는 DB 인스턴스와 연결할 서브넷 그룹 내의 서브넷과 IP 주소를 선택합니다. DB 인스턴스는 서브넷이 포함된 가용 영역을 사용합니다.
+ VPC에는 DB 인스턴스에 대한 액세스를 허용하는 VPC 보안 그룹이 있어야 합니다.

  자세한 내용은 [VPC에서 DB 인스턴스에 액세스하는 시나리오](USER_VPC.Scenarios.md) 섹션을 참조하세요.
+ 각 서브넷의 CIDR 블록은 장애 조치와 컴퓨팅 조정을 포함한 유지 관리 활동 중에 Amazon RDS가 사용할 예비 IP 주소를 수용할 만큼 충분히 커야 합니다. 예를 들어, 일반적으로 10.0.0.0/24 및 10.0.1.0/24와 같은 범위는 충분히 큽니다.
+ VPC의 *인스턴스 테넌시* 속성 값은 *기본* 또는 *전용* 중 하나일 수 있습니다. 모든 기본 VPC에서는 인스턴스 테넌시 속성이 기본값으로 설정되어 있으며, 기본 VPC는 어떤 DB 인스턴스 클래스라도 지원할 수 있습니다.

  인스턴스 테넌시 속성이 전용으로 설정된 전용 VPC에 DB 인스턴스를 사용하도록 선택한 경우 DB 인스턴스의 DB 인스턴스 클래스는 승인된 Amazon EC2 전용 인스턴스 유형 중 하나여야 합니다. 예를 들어 r5.large EC2 전용 인스턴스는 db.r5.large DB 인스턴스 클래스에 해당합니다. VPC의 인스턴스 테넌시에 대한 자세한 내용은 *Amazon Elastic Compute Cloud 사용 설명서*의 [전용 인스턴스](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html)를 참조하세요.

  전용 인스턴스에 존재할 수 있는 인스턴스 유형에 대한 자세한 내용은 Amazon EC2 요금 페이지에서 [Amazon EC2 전용 인스턴스](https://aws.amazon.com/ec2/purchasing-options/dedicated-instances/)를 참조하세요.
**참고**  
인스턴스 테넌시 속성을 DB 인스턴스에 대해 전용으로 설정하면 DB 인스턴스가 전용 호스트에서 실행된다는 보장이 없습니다.
+ 옵션 그룹이 DB 인스턴스에 할당되면 DB 인스턴스의 VPC와 연결됩니다. 이 연결은 DB 인스턴스를 다른 VPC로 복원하려는 경우 DB 인스턴스에 할당된 옵션 그룹을 사용할 수 없음을 의미합니다.
+ DB 인스턴스를 다른 VPC로 복원하는 경우 기본 옵션 그룹을 DB 인스턴스에 할당하거나, 해당 VPC에 연결된 옵션 그룹을 할당하거나, 새 옵션 그룹을 생성하여 DB 인스턴스에 할당해야 합니다. Oracle TDE와 같은 지속적 또는 영구적 옵션의 경우 DB 인스턴스를 다른 VPC로 복구할 때 지속적 또는 영구적 옵션을 포함하는 새 옵션 그룹을 생성해야 합니다.

## VPC 암호화 제어
<a name="USER_VPC.EncryptionControl"></a>

VPC 암호화 제어를 사용하면 VPC 내의 모든 네트워크 트래픽에 전송 중 데이터 암호화를 적용할 수 있습니다. 암호화 제어를 사용하여 지정된 VPC에 암호화 기능을 지원하는 Nitro 기반 하드웨어만 프로비저닝되도록 함으로써 규정 준수 요구 사항을 충족합니다. 또한 암호화 제어는 프로비저닝 중이 아닌 API 요청 시 호환성 문제를 포착합니다. 기존 워크로드는 계속 작동하며 호환되지 않는 새 요청만 차단됩니다.

VPC 제어 모드를 다음으로 설정하여 VPC 암호화 제어를 설정합니다.
+ *비활성화*(기본값)
+ * 모니터링*
+ *적용됨*

VPC의 현재 제어 모드를 확인하려면 AWS Management Console 또는 [DescribeVpcs](https://docs.aws.amazon.com//AWSEC2/latest/APIReference/API_DescribeVpcs.html) CLI 또는 API 명령을 사용합니다.

VPC가 암호화를 적용하는 경우 해당 VPC에서 전송 중 암호화를 지원하는 Nitro 기반 DB 인스턴스만 프로비저닝할 수 있습니다. 자세한 내용은 [DB 인스턴스 클래스 유형](Concepts.DBInstanceClass.Types.md) 섹션을 참조하세요. Nitro 인스턴스에 대한 자세한 내용은 *Amazon EC2 사용 설명서*의 [AWS Nitro System 기반 인스턴스](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html)를 참조하세요.

**참고**  
암호화가 적용된 VPC에서 호환되지 않는 DB 인스턴스를 프로비저닝하려고 하면 Amazon RDS가 `VpcEncryptionControlViolationException` 예외를 반환합니다.

## DB 서브넷 그룹을 사용한 작업
<a name="USER_VPC.Subnets"></a>

*서브넷*은 사용자가 보안 및 운영상의 필요를 바탕으로 리소스를 그룹화하기 위해 지정하는 VPC IP 주소 범위의 특정 부분입니다. *DB 서브넷 그룹*은 사용자가 VPC에서 만든 다음 DB 인스턴스에 대해 지정하는 서브넷(일반적으로 프라이빗)의 모음입니다. DB 서브넷 그룹을 사용하면 AWS CLI 또는 API를 사용하여 DB 인스턴스를 생성할 때 특정 VPC를 지정할 수 있습니다. 콘솔을 사용하는 경우 사용할 VPC와 서브넷 그룹을 선택할 수 있습니다.

각 DB 서브넷 그룹은 지정된 AWS 리전에서 두 개 이상의 가용 영역에 서브넷이 있어야 합니다. VPC에서 DB 인스턴스를 생성할 때 이에 대한 DB 서브넷 그룹을 선택합니다. DB 서브넷 그룹에서 Amazon RDS는 의 DB 인스턴스와 연결할 서브넷과 해당 서브넷 내의 IP 주소를 선택합니다. DB는 서브넷이 포함된 가용 영역을 사용합니다. Amazon RDS는 항상 사용 가능한 IP 주소 공간이 있는 서브넷에서 IP 주소를 할당합니다.

다중 AZ 배포의 기본 DB 인스턴스에 오류가 있을 경우 Amazon RDS는 해당 스탠바이를 승격한 후 나중에 다른 가용 영역 중 하나에서 서브넷의 IP 주소를 사용하여 새 스탠바이를 만들 수 있습니다.

DB 서브넷 그룹의 서브넷은 퍼블릭 또는 프라이빗입니다. 서브넷은 네트워크 액세스 제어 목록(ACL) 및 라우팅 테이블에 대해 설정한 구성에 따라 퍼블릭 또는 프라이빗입니다. DB 인스턴스에 공개적으로 액세스할 수 있도록 하려면 DB 서브넷 그룹의 모든 서브넷이 퍼블릭이어야 합니다. 공개적으로 액세스할 수 있는 DB 인스턴스와 연결된 서브넷이 퍼블릭에서 프라이빗으로 변경되면 DB 인스턴스 가용성에 영향을 줄 수 있습니다.

듀얼 스택 모드를 지원하는 DB 서브넷 그룹을 만들려면 DB 서브넷 그룹에 추가하는 각 서브넷에 인터넷 프로토콜 버전 6(IPv6) CIDR 블록이 연결되어 있는지 확인합니다. 자세한 내용은 *Amazon VPC 사용 설명서*의 [Amazon RDS IP 주소 지정](#USER_VPC.IP_addressing) 및 [IPv6로 마이그레이션](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6.html)을 참조하세요.

**참고**  
로컬 영역의 DB 서브넷 그룹에는 서브넷이 하나만 있을 수 있습니다.

Amazon RDS가 VPC에 DB 인스턴스를 생성할 때는 DB 서브넷 그룹의 IP 주소를 사용하여 DB 인스턴스에 네트워크 인터페이스를 할당합니다. 하지만 기본 IP 주소가 장애 조치 중에 바뀌기 때문에 DB 인스턴스에 연결할 때 반드시 도메인 이름 시스템(DNS) 이름을 사용하는 것이 좋습니다. 장애 조치 중에 기본 IP 주소가 변경되므로 이 방법을 사용하는 것이 좋습니다.

**참고**  
VPC에서 실행하는 각각의 DB 인스턴스에 대해 Amazon RDS가 복구 작업에 사용할 수 있도록 DB 서브넷 그룹의 각 서브넷에 한 개 이상의 주소를 예약해야 합니다.

## 공유 서브넷
<a name="USER_VPC.Shared_subnets"></a>

공유 VPC에서 DB 인스턴스를 생성할 수 있습니다.

공유 VPC를 사용할 때 염두에 두어야 할 몇 가지 고려 사항은 다음과 같습니다.
+ DB 인스턴스를 공유 VPC 서브넷에서 비공유 VPC 서브넷으로 또는 그 반대로 이동할 수 있습니다.
+ 공유 VPC의 참여자는 VPC에 보안 그룹을 만들어야 DB 인스턴스를 생성할 수 있습니다.
+ 공유 VPC의 소유자와 참여자는 SQL 쿼리를 사용하여 데이터베이스에 액세스할 수 있습니다. 그러나 리소스 생성자만 리소스에 대한 API 호출을 수행할 수 있습니다.



## Amazon RDS IP 주소 지정
<a name="USER_VPC.IP_addressing"></a>

IP 주소가 있으면 VPC 내의 리소스가 서로 통신하고, 인터넷을 통해 다른 리소스와 통신할 수 있습니다. Amazon RDS는 IPv4와 IPv6 주소 지정 프로토콜을 모두 지원합니다. 기본적으로 Amazon RDS와 Amazon VPC는 IPv4 주소 지정 프로토콜을 사용합니다. 이 동작은 끌 수 없습니다. VPC를 생성할 때 VPC에 IPv4 CIDR 블록(프라이빗 IPv4 주소)를 지정해야 합니다. IPv6 CIDR 블록을 VPC와 서브넷에 할당하고 그 블록에 속한 IPv6 주소를 서브넷의 DB 인스턴스에 할당할 수도 있습니다.

IPv6 프로토콜을 지원하면 지원되는 IP 주소 수가 늘어납니다. IPv6 프로토콜을 사용하면 향후에 인터넷이 성장할 때를 대비해 사용 가능한 주소를 충분히 확보할 수 있습니다. 신규 및 기존 RDS 리소스는 VPC 내에서 IPv4 및 IPv6 주소를 사용할 수 있습니다. 애플리케이션의 다른 부분에서 사용되는 두 프로토콜 간의 네트워크 트래픽을 구성, 보안 및 변환하면 운영 오버헤드가 발생할 수 있습니다. Amazon RDS 리소스의 IPv6 프로토콜을 표준화하여 네트워크 구성을 간소화할 수 있습니다.

**Topics**
+ [IPv4 주소](#USER_VPC.IP_addressing.IPv4)
+ [IPv6 주소](#USER_VPC.IP_addressing.IPv6)
+ [듀얼 스택 모드](#USER_VPC.IP_addressing.dual-stack-mode)

### IPv4 주소
<a name="USER_VPC.IP_addressing.IPv4"></a>

VPC를 생성할 때 VPC의 IPv4 주소 범위를 `10.0.0.0/16`와 같은 CIDR 블록 형태로 지정해야 합니다. *DB 서브넷 그룹*은 이 CIDR 블록에서 DB 인스턴스가 사용할 수 있는 IP 주소의 범위를 정의합니다. 이 IP 주소는 프라이빗 또는 퍼블릭일 수 있습니다.

프라이빗 IPv4 주소는 인터넷을 통해 연결할 수 없는 IP 주소입니다. 프라이빗 IPv4 주소는 DB인스턴스 및 같은 VPC 내의 Amazon EC2 인스턴스와 같은 기타 리소스 간의 통신을 위해 사용될 수 있습니다. 각 DB 인스턴스에는 VPC 내 통신을 위한 프라이빗 IP 주소가 있습니다.

퍼블릭 IP 주소는 인터넷을 통해 연결할 수 있는 IPv4 주소입니다. 퍼블릭 주소는 DB 인스턴스 및 SQL 클라이언트와 같이 인터넷상 리소스 간의 통신을 위해 사용될 수 있습니다. DB 인스턴스 가 퍼블릭 IP 주소를 수신할지 여부를 제어할 수 있습니다.

Amazon RDS는 공개적으로 액세스 가능한 데이터베이스 인스턴스에 EC2의 공용 IPv4 주소 풀에서 제공되는 공용 탄력적 IPv4 주소를 사용합니다. 이러한 IP 주소는 `describe-addresses` CLI, API를 사용하거나 AWS Management Console의 탄력적 IP(EIP) 섹션을 볼 때 AWS 계정에 표시됩니다. 각 RDS 관리형 IP 주소는 `"rds"`로 설정된 `service_managed` 속성으로 표시됩니다.

이러한 IP는 계정에 표시되지만 Amazon RDS에서 완전히 관리되며 수정하거나 릴리스할 수 없습니다. Amazon RDS는 더 이상 사용하지 않을 때 퍼블릭 IPv4 주소 풀로 IP를 다시 릴리스합니다.

CloudTrail은 `AllocateAddress`와 같은 RDS의 EIP와 관련된 API 직접 호출을 로깅합니다. 이러한 API 직접 호출은 서비스 보안 주체 `rds.amazonaws.com`에 의해 간접적으로 호출됩니다.

**참고**  
Amazon RDS에서 할당한 IP 계정의 EIP 한도에 포함되지 않습니다.

일반 Amazon RDS 시나리오에서 사용할 수 있는 IPv4 주소만을 사용하여 VPC를 생성하는 방법을 보여 주는 자습서는 [자습서: DB 인스턴스에 사용할 Amazon VPC 생성(IPv4 전용)](CHAP_Tutorials.WebServerDB.CreateVPC.md) 섹션을 참조하세요.

### IPv6 주소
<a name="USER_VPC.IP_addressing.IPv6"></a>

IPv6 CIDR 블록을 VPC와 서브넷에 연결하고 그 블록에 속한 IPv6 주소를 VPC의 리소스에 할당할 수도 있습니다. 각 IPv6 주소는 전역적으로 고유합니다.

VPC에 대한 IPv6 CIDR 블록은 Amazon의 IPv6 주소 풀에서 자동으로 할당되므로 범위를 직접 선택할 수는 없습니다.

IPv6 주소에 연결할 때 다음 조건이 충족되는지 확인하세요.
+ IPv6를 통한 클라이언트에서 데이터베이스로의 트래픽이 허용되도록 클라이언트가 구성됩니다.
+ DB 인스턴스에서 사용하는 RDS 보안 그룹은 IPv6를 통한 클라이언트에서 데이터베이스로의 트래픽이 허용되도록 올바르게 구성됩니다.
+ 클라이언트 운영 체제 스택은 IPv6 주소의 트래픽을 허용하며 운영 체제 드라이버 및 라이브러리는 올바른 기본 DB 인스턴스 엔드포인트(IPv4 또는 IPv6)를 선택하도록 구성됩니다.

IPv6에 대한 자세한 내용은 *Amazon VPC 사용 설명서*의 [IP 주소 지정](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html) 섹션을 참조하세요.

### 듀얼 스택 모드
<a name="USER_VPC.IP_addressing.dual-stack-mode"></a>

DB 인스턴스는 IPv4 및 IPv6 주소 지정 프로토콜 모두를 통해 통신할 수 있을 때 듀얼 스택 모드로 실행됩니다. 그런 다음 리소스는 IPv4, IPv6 또는 두 프로토콜을 모두 사용하여 DB 인스턴스와 통신할 수 있습니다. 프라이빗 듀얼 스택 모드 DB 인스턴스에는 RDS가 VPC 액세스로만 제한하는 IPv6 엔드포인트가 있으므로 IPv6 엔드포인트가 프라이빗으로 유지됩니다. 퍼블릭 듀얼 스택 모드 DB 인스턴스는 인터넷에서 액세스할 수 있는 IPv4 및 IPv6 엔드포인트를 모두 제공합니다.

**Topics**
+ [듀얼 스택 모드 및 DB 서브넷 그룹](#USER_VPC.IP_addressing.dual-stack-db-subnet-groups)
+ [듀얼 스택 모드 DB 인스턴스 작업](#USER_VPC.IP_addressing.dual-stack-working-with)
+ [듀얼 스택 모드를 사용하도록 IPv4 전용 DB 인스턴스 수정](#USER_VPC.IP_addressing.dual-stack-modifying-ipv4)
+ [리전 및 버전 사용 가능 여부](#USER_VPC.IP_addressing.RegionVersionAvailability)
+ [듀얼 스택 네트워크 DB 인스턴스에 대한 제한 사항](#USER_VPC.IP_addressing.dual-stack-limitations)

일반 Amazon RDS 시나리오에서 사용할 수 있는 IPv4와 IPv6 주소 모두를 사용하여 VPC를 생성하는 방법을 보여 주는 자습서는 [자습서: DB 인스턴스(듀얼 스택 모드)에 사용할 VPC 생성](CHAP_Tutorials.CreateVPCDualStack.md) 섹션을 참조하세요.

#### 듀얼 스택 모드 및 DB 서브넷 그룹
<a name="USER_VPC.IP_addressing.dual-stack-db-subnet-groups"></a>

듀얼 스택 모드를 사용하려면 DB 인스턴스와 연결하는 DB 서브넷 그룹의 각 서브넷에 IPv6 CIDR 블록이 연결되어 있어야 합니다. 새 DB 서브넷 그룹을 생성하거나 기존 DB 서브넷 그룹을 수정하여 이 요구 사항을 충족하도록 수정할 수 있습니다. DB 인스턴스 가 듀얼 스택 모드가 된 후에는 클라이언트가 정상적으로 연결할 수 있습니다. 클라이언트 보안 방화벽과 RDS DB 인스턴스 보안 그룹이 IPv6을 통한 트래픽을 허용하도록 정확하게 구성되어 있는지 확인합니다. 연결하기 위해 클라이언트는 DB 인스턴스의 엔드포인트를 사용합니다. 클라이언트 애플리케이션은 데이터베이스에 연결할 때 기본 프로토콜을 지정할 수 있습니다. 듀얼 스택 모드에서 DB 인스턴스는 클라이언트의 기본 네트워크 프로토콜(IPv4 또는 IPv6)을 감지하고 연결에 해당 프로토콜을 사용합니다.

서브넷 삭제 또는 CIDR 연결 해제로 인해 DB 서브넷 그룹이 듀얼 스택 모드 지원을 중지하는 경우 DB 서브넷 그룹과 연결된 DB 인스턴스에 대해 네트워크 상태가 호환되지 않을 위험이 있습니다. 또한 새 듀얼 스택 모드 DB 인스턴스를 생성할 때 DB 서브넷 그룹을 사용할 수 없습니다.

AWS Management Console을 사용하여 DB 서브넷 그룹이 듀얼 스택 모드를 지원하는지 알아보려면 DB 서브넷 그룹의 세부 정보 페이지에서 **네트워크 유형(Network type)**을 확인합니다. AWS CLI를 사용하여 DB 서브넷 그룹이 듀얼 스택 모드를 지원하는지 알아보려면 [describe-db-subnet-groups](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-subnet-groups.html) 명령을 실행하고 출력에서 `SupportedNetworkTypes`를 확인합니다.

읽기 전용 복제본은 독립적인 DB 인스턴스로 취급되며 기본 DB 인스턴스와 다른 네트워크 유형을 가질 수 있습니다. 읽기 전용 복제본의 기본 DB 인스턴스의 네트워크 유형을 변경하는 경우 읽기 전용 복제본은 영향을 받지 않습니다. DB 인스턴스를 복원할 때 지원되는 모든 네트워크 유형으로 복원할 수 있습니다.

#### 듀얼 스택 모드 DB 인스턴스 작업
<a name="USER_VPC.IP_addressing.dual-stack-working-with"></a>

DB 인스턴스를 생성하거나 수정할 때 리소스가 DB 인스턴스와 IPv4, IPv6 또는 둘 다를 통해 통신할 수 있도록 허용하기 위해 듀얼 스택 모드를 지정할 수 있습니다.

AWS Management Console을 사용하여 DB 인스턴스를 생성하거나 수정할 때 **네트워크 유형** 섹션에서 듀얼 스택 모드를 지정할 수 있습니다. 다음 이미지는 콘솔의 **네트워크 유형** 섹션을 보여 줍니다.

![\[듀얼 스택 모드가 선택된 콘솔의 네트워크 유형 섹션입니다.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/dual-stack-mode.png)


AWS CLI를 사용하여 DB 인스턴스를 생성하거나 수정할 때 듀얼 스택 모드를 사용하려면 `--network-type` 옵션을 `DUAL`로 설정합니다. 를 사용하여 DB 인스턴스를 생성하거나 수정할 때 듀얼 스택 모드를 사용하려면 `NetworkType` 옵션을 `DUAL`로 설정합니다. DB 인스턴스의 네트워크 유형을 수정하는 경우 가동 중지가 발생할 수 있습니다. 지정된 DB 엔진 버전 또는 DB 서브넷 그룹에서 듀얼 스택 모드가 지원되지 않는 경우 `NetworkTypeNotSupported` 오류가 반환됩니다.

DB 인스턴스를 생성하는 방법에 대한 자세한 내용은 [Amazon RDS DB 인스턴스 생성](USER_CreateDBInstance.md) 섹션을 참조하세요. DB 인스턴스 수정에 대한 자세한 내용은 [Amazon RDS DB 인스턴스 수정](Overview.DBInstance.Modifying.md) 섹션을 참조하세요.

콘솔을 사용하여 DB 인스턴스가 이중 스택 모드인지 확인하려면 DB 인스턴스의 **연결 및 보안** 탭에서 **네트워크 유형**을 확인하세요.

#### 듀얼 스택 모드를 사용하도록 IPv4 전용 DB 인스턴스 수정
<a name="USER_VPC.IP_addressing.dual-stack-modifying-ipv4"></a>

듀얼 스택 모드를 사용하도록 IPv4 전용 DB 인스턴스를 수정할 수 있습니다. 그러려면 DB 인스턴스의 네트워크 유형을 변경합니다. 수정으로 인해 가동 중지가 발생할 수 있습니다.

유지 관리 기간 동안 Amazon RDS DB 인스턴스 의 네트워크 유형을 변경하는 것이 좋습니다. 새 인스턴스의 네트워크 유형을 듀얼 스택 모드로 설정하는 것은 현재 지원되지 않습니다. `modify-db-instance` 명령을 사용하여 네트워크 유형을 수동으로 설정할 수 있습니다.

듀얼 스택 모드를 사용하도록 DB 인스턴스를 수정하기 전에 DB 서브넷 그룹이 듀얼 스택 모드를 지원하는지 확인하세요. DB 인스턴스와 연결된 DB 서브넷 그룹이 듀얼 스택 모드를 지원하지 않는 경우 DB 인스턴스를 수정할 때 이를 지원하는 다른 DB 서브넷 그룹을 지정하세요. DB 인스턴스 의 DB 서브넷 그룹을 수정하면 가동 중지가 발생할 수 있습니다.

듀얼 스택 모드를 사용하도록 DB 인스턴스 를 변경하기 전에 DB 인스턴스 의 DB 서브넷 그룹을 수정할 경우, DB 서브넷 그룹이 변경 전후에 DB 인스턴스에 대해 유효한지 확인하세요.

RDS for PostgreSQL, RDS for MySQL, RDS for Oracle, RDS for MariaDB 단일 AZ 인스턴스의 경우 `DUAL`로 설정된 `--network-type` 파라미터만 사용해 [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 명령을 실행하여 네트워크를 듀얼 스택 모드로 변경하는 것이 좋습니다. 동일한 API 호출에서 다른 파라미터를 `--network-type` 파라미터와 함께 추가하면 가동 중지가 발생할 수 있습니다. 여러 파라미터를 수정하려면 다른 파라미터를 사용하여 다른 `modify-db-instance` 요청을 보내기 전에 네트워크 유형 수정을 성공적으로 완료했는지 확인합니다.

RDS for PostgreSQL, RDS for MySQL, RDS for Oracle 및 RDS for MariaDB 다중 AZ DB 인스턴스용의 네트워크 유형을 수정하면 `--network-type` 파라미터만 사용하거나, modify-db-instance 명령 내에 파라미터를 결합할 경우 잠시 가동 중지가 발생하고 장애 조치가 트리거됩니다.

RDS for SQL Server 단일 AZ 또는 다중 AZ DB 인스턴스에서 네트워크 유형을 수정하면 `--network-type` 파라미터만 사용하거나, `modify-db-instance` 명령 내에 파라미터를 결합할 경우 가동 중지가 발생합니다. 네트워크 유형을 수정하면 SQL Server 다중 AZ 인스턴스에서 장애 조치가 발생합니다.

변경 후 DB 인스턴스에 연결할 수 없는 경우 선택한 네트워크(IPv4 또는 IPv6)의 데이터베이스로의 트래픽을 허용하도록 클라이언트 및 데이터베이스 보안 방화벽과 라우팅 테이블이 정확하게 구성되어 있는지 확인하세요. IPv6 주소를 사용하여 연결하려면 운영 체제 파라미터, 라이브러리 또는 드라이버를 수정해야 할 수도 있습니다.

듀얼 스택 모드를 사용하도록 DB 인스턴스를 수정하는 경우, 단일 AZ 배포에서 다중 AZ 배포로 또는 다중 AZ 배포에서 단일 AZ 배포로의 보류 중인 변경이 있어서는 안 됩니다.

**듀얼 스택 모드를 사용하도록 IPv4 전용 DB 인스턴스 수정**

1. 듀얼 스택 모드를 지원하도록 DB 서브넷 그룹을 수정하거나 듀얼 스택 모드를 지원하는 DB 서브넷 그룹을 생성합니다.

   1. IPv6 CIDR 블록을 VPC와 연결

      자세한 내용은 *Amazon VPC 사용 설명서*의 [VPC에 IPv6 CIDR 블록 추가](https://docs.aws.amazon.com/vpc/latest/userguide/modify-vpcs.html#vpc-associate-ipv6-cidr)를 참조하세요.

   1. IPv6 CIDR 블록을 DB 서브넷 그룹의 모든 서브넷에 연결합니다.

      자세한 내용은 *Amazon VPC 사용 설명서*의 [서브넷에 IPv6 CIDR 블록 추가](https://docs.aws.amazon.com/vpc/latest/userguide/modify-subnets.html#subnet-associate-ipv6-cidr)를 참조하세요.

   1. DB 서브넷 그룹이 듀얼 스택 모드를 지원하는지 확인합니다.

      AWS Management Console을 사용 중인 경우 DB 서브넷 그룹을 선택하고 **지원되는 네트워크 유형(Supported network types)** 값을 **듀얼, IPv4(Dual, IPv4)**로 설정하세요.

      AWS CLI를 사용 중인 경우 [describe-db-subnet-groups](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-subnet-groups.html) 명령을 실행하고 DB 인스턴스의 `SupportedNetworkType` 값을 `Dual, IPv4`로 설정하세요.

1. 데이터베이스에 대한 IPv6 연결을 허용하도록 DB 인스턴스와 연결된 보안 그룹을 수정하거나 IPv6 연결을 허용하는 새 보안 그룹을 생성합니다.

   자세한 내용은 *Amazon VPC 사용 설명서*의 [보안 그룹 규칙](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html)을 참조하세요.

1. 듀얼 스택 모드를 지원하도록 DB 인스턴스를 수정합니다. 이렇게 하려면 **네트워크 유형**을 **듀얼 스택 모드**로 설정하세요.

   콘솔을 사용 중인 경우 다음 설정이 올바른지 확인합니다.
   + **네트워크 유형** – **듀얼 스택 모드**  
![\[듀얼 스택 모드가 선택된 콘솔의 네트워크 유형 섹션입니다.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/dual-stack-mode.png)
   + **DB 서브넷 그룹** - 이전 단계에서 구성한 DB 서브넷 그룹
   + **보안 그룹** - 이전 단계에서 구성한 보안

   AWS CLI를 사용 중인 경우 다음 설정이 올바른지 확인합니다.
   + `--network-type` – `dual`
   + `--db-subnet-group-name` - 이전 단계에서 구성한 DB 서브넷 그룹
   + `--vpc-security-group-ids` - 이전 단계에서 구성한 VPC 보안 그룹

   예제: 

   ```
   aws rds modify-db-instance --db-instance-identifier my-instance --network-type "DUAL"
   ```

1. DB 인스턴스가 듀얼 스택 모드를 지원하는지 확인합니다.

   콘솔을 사용하는 경우 DB 인스턴스에 대한 **연결 및 보안** 탭을 선택합니다. 해당 탭에서 **네트워크 유형** 값이 **듀얼 스택 모드**인지 확인합니다.

   AWS CLI를 사용 중인 경우 [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) 명령을 실행하고 DB 인스턴스의 `NetworkType` 값이 `dual`인지 확인합니다.

   DB 인스턴스 엔드포인트에서 `dig` 명령을 실행하여 연결된 IPv6 주소를 식별합니다.

   ```
   dig db-instance-endpoint AAAA
   ```

   IPv6 주소가 아닌 DB 인스턴스 엔드포인트를 사용하여 DB 인스턴스에 연결합니다.

#### 리전 및 버전 사용 가능 여부
<a name="USER_VPC.IP_addressing.RegionVersionAvailability"></a>

기능 가용성 및 해당 지원은 각 데이터베이스 엔진의 특정 버전 및 AWS 리전 리전에 따라 다릅니다. 듀얼 스택 모드의 버전 및 리전 가용성에 대한 자세한 내용은 [Amazon RDS의 이중 스택 모드를 지원하는 리전 및 DB 엔진](Concepts.RDS_Fea_Regions_DB-eng.Feature.DualStackMode.md) 섹션을 참조하세요.

#### 듀얼 스택 네트워크 DB 인스턴스에 대한 제한 사항
<a name="USER_VPC.IP_addressing.dual-stack-limitations"></a>

듀얼 스택 네트워크 DB 인스턴스에는 다음과 같은 제한이 적용됩니다.
+ DB 인스턴스는 IPv6 프로토콜을 단독으로 사용할 수 없습니다. IPv4를 단독으로 사용하거나 IPv4 및 IPv6 프로토콜(듀얼 스택 모드)을 사용할 수 있습니다.
+ Amazon RDS에서는 네이티브 IPv6 서브넷을 지원하지 않습니다.
+ RDS for SQL Server의 경우 Always On AG 가용성 그룹 리스너 엔드포인트를 사용하는 듀얼 스택 모드 DB 인스턴스는 IPv4 주소만 제공합니다.
+ 듀얼 스택 모드 DB 인스턴스에는 RDS 프록시를 사용할 수 없습니다.
+ AWS Outposts DB 인스턴스에서 RDS와 함께 듀얼 스택 모드를 사용할 수 없습니다.
+ 로컬 영역의 DB 인스턴스에서 RDS와 함께 듀얼 스택 모드를 사용할 수 없습니다.

## VPC에 있는 DB 인스턴스를 인터넷에서 숨기기
<a name="USER_VPC.Hiding"></a>

한 가지 일반적인 Amazon RDS 시나리오는 일반에 공개되어 있는 웹 애플리케이션을 포함한 Amazon EC2 인스턴스와 공개적으로 액세스할 수 없는 데이터베이스를 포함한 DB 인스턴스가 있는 VPC를 사용하는 경우입니다. 예를 들어, 퍼블릭 서브넷과 프라이빗 서브넷이 있는 VPC를 생성할 수 있습니다. 웹 서버로 작동하는 EC2 인스턴스는 퍼블릭 서브넷에 배포할 수 있습니다. DB 인스턴스는 프라이빗 서브넷에 배포됩니다. 이런 배포 환경에서는 웹 서버만 DB 인스턴스에 액세스할 수 있습니다. 이 시나리오에 대한 그림은 [동일한 VPC에 있는 Amazon EC2 인스턴스가 VPC 내에 있는 DB 인스턴스에 액세스](USER_VPC.Scenarios.md#USER_VPC.Scenario1) 섹션을 참조하세요.

VPC 내에서 DB 인스턴스를 시작하면 DB 인스턴스는 VPC 내부 트래픽에 대한 프라이빗 IP 주소를 가집니다. 이 프라이빗 IP 주소는 공개적으로 액세스할 수 없습니다. **퍼블릭 액세스** 옵션을 사용하여 DB 인스턴스에 프라이빗 IP 주소 외에 퍼블릭 IP 주소가 있는지 여부를 지정할 수 있습니다. DB 인스턴스가 공개적으로 액세스 가능한 것으로 지정된 경우 해당 DNS 엔드포인트는 VPC 내에서 프라이빗 IP 주소로 확인됩니다. VPC 외부에서 퍼블릭 IP 주소로 확인됩니다. DB 인스턴스에 대한 액세스는 궁극적으로 사용하는 보안 그룹에 의해 제어됩니다. DB 인스턴스에 할당된 보안 그룹에 이를 허용하는 인바운드 규칙이 포함되어 있지 않으면 해당 퍼블릭 액세스가 허용되지 않습니다. 또한 DB 인스턴스에 공개적으로 액세스할 수 있으려면 해당 DB 서브넷 그룹의 서브넷에 인터넷 게이트웨이가 있어야 합니다. 자세한 내용은 [Amazon RDS DB 인스턴스에 연결할 수 없음](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting) 섹션을 참조하세요.

퍼블릭 액세스 옵션을 수정하여 **퍼블릭 액세스**를 켜거나 끄도록 DB 인스턴스를 수정할 수 있습니다. 다음 그림은 **추가 연결 구성** 섹션의 **퍼블릭 액세스** 옵션을 보여 줍니다. 옵션을 설정하려면 **연결(Connectivity)** 섹션에서 **추가 연결 구성(Additional connectivity configuration)** 섹션을 엽니다.

![\[추가 연결 구성 섹션에서 데이터베이스 퍼블릭 액세스 옵션을 아니요로 설정합니다.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/VPC-example4.png)


**퍼블릭 액세스(Public access)** 옵션을 설정하기 위해 DB 인스턴스를 수정하는 방법에 대한 자세한 내용은 [Amazon RDS DB 인스턴스 수정](Overview.DBInstance.Modifying.md) 섹션을 참조하세요.

## VPC에 DB 인스턴스 만들기
<a name="USER_VPC.InstanceInVPC"></a>

다음 절차에 따라 VPC에서 DB 인스턴스를 생성할 수 있습니다. 기본 VPC를 사용하려면 2단계부터 시작하고 이미 생성된 VPC 및 DB 서브넷 그룹을 사용할 수 있습니다. 추가 VPC를 만들려면 새 VPC를 만들 수 있습니다.

**참고**  
VPC의 DB 인스턴스에 공개적으로 액세스할 수 있도록 하려면 VPC 속성 *DNS 호스트 이름* 및 *DNS 확인*을 활성화하여 VPC에 대한 DNS 정보를 업데이트해야 합니다. VPC 인스턴스의 DNS 정보 업데이트에 대한 자세한 내용은 [VPC에 대한 DNS 지원 업데이트](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html)를 참조하세요.

다음 단계에 따라 VPC에서 DB 인스턴스를 만들 수 있습니다:
+ [1단계: VPC 생성](#USER_VPC.CreatingVPC) 
+  [2단계: DB 서브넷 그룹 만들기](#USER_VPC.CreateDBSubnetGroup)
+  [3단계: VPC 보안 그룹 만들기](#USER_VPC.CreateVPCSecurityGroup)
+  [4단계: VPC에서 DB 인스턴스 만들기](#USER_VPC.CreateDBInstanceInVPC) 

### 1단계: VPC 생성
<a name="USER_VPC.CreatingVPC"></a>

최소 2개의 가용 영역에 서브넷이 있는 VPC를 생성합니다. DB 서브넷 그룹을 만들 때 이들 서브넷이 사용됩니다. 기본 VPC가 있는 경우에는 해당 AWS 리전의 각 가용 영역에 서브넷이 자동으로 생성됩니다.

자세한 내용은 [프라이빗 서브넷과 퍼블릭 서브넷을 포함하는 VPC 생성](CHAP_Tutorials.WebServerDB.CreateVPC.md#CHAP_Tutorials.WebServerDB.CreateVPC.VPCAndSubnets) 섹션을 참조하거나 *Amazon VPC 사용 설명서*의 [VPC 생성](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#Create-VPC)을 참조하세요.

### 2단계: DB 서브넷 그룹 만들기
<a name="USER_VPC.CreateDBSubnetGroup"></a>

DB 서브넷 그룹은 사용자가 VPC에 대해 만든 다음 DB 인스턴스에 대해 지정하는 서브넷(일반적으로 프라이빗)의 모음입니다. DB 서브넷 그룹을 사용하면 AWS CLI 또는 RDS API를 사용하여 DB 인스턴스를 생성할 때 특정 VPC를 지정할 수 있습니다. 콘솔을 사용하는 경우 사용할 VPC와 서브넷만 선택할 수 있습니다. 각 DB 서브넷 그룹은 해당 AWS 리전에서 두 개 이상의 가용 영역에 한 개 이상의 서브넷이 있어야 합니다. 모범 사례로서, 각 DB 서브넷 그룹에는 AWS 리전의 가용 영역마다 하나 이상의 서브넷이 있어야 합니다.

다중 AZ 배포의 경우, AWS 리전에 있는 모든 가용 영역에 대한 서브넷을 정의하면 Amazon RDS가 필요한 경우 다른 가용 영역에 새로운 예비 복제본을 만들 수 있습니다. 나중에 다중 AZ 배포로 변환할 수 있으므로, 단일 AZ 배포의 경우에도 이 모범 사례를 따를 수 있습니다.

DB 인스턴스에 공개적으로 액세스할 수 있도록 하려면 DB 서브넷 그룹의 서브넷에 인터넷 게이트웨이가 있어야 합니다. 서브넷용 인터넷 게이트웨이에 대한 자세한 내용은 *Amazon VPC 사용 설명서*의 [인터넷 게이트웨이를 사용하여 인터넷에 연결](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html)을 참조하세요.

**참고**  
로컬 영역의 DB 서브넷 그룹에는 서브넷이 하나만 있을 수 있습니다.

VPC에서 DB 인스턴스를 생성할 때 이에 대한 DB 서브넷 그룹을 선택합니다. Amazon RDSA는 DB 인스턴스와 연결할 서브넷 내의 서브넷과 IP 주소를 선택합니다. DB 서브넷 그룹이 없는 경우 Amazon RDS는 DB 인스턴스를 생성할 때 기본 서브넷 그룹을 생성합니다. Amazon RDS에서 탄력적 네트워크 인터페이스를 생성하고 해당 IP 주소로 DB 인스턴스에 연결합니다. DB 인스턴스는 서브넷이 포함된 가용 영역을 사용합니다.

다중 AZ 배포의 경우, AWS 리전에 있는 두 개 이상의 가용 영역에 대한 서브넷을 정의하면 Amazon RDS가 필요한 경우 다른 가용 영역에 새로운 예비 복제본을 만들 수 있습니다. 단일 AZ 배포의 경우도 어느 시점에 단일 AZ 배포를 다중 AZ 배포로 변환하려면 이 작업을 수행해야 합니다.

이 단계에서는 DB 서브넷 그룹을 만들고 VPC용으로 만든 서브넷을 추가합니다.

**DB 서브넷 그룹을 만드는 방법**

1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 [**Subnet groups**]를 선택합니다.

1. [**Create DB Subnet Group**]을 선택합니다.

1. [**Name**]에 DB 서브넷 그룹의 이름을 입력합니다.

1. **설명**에 DB 서브넷 그룹에 대한 설명을 입력합니다.

1. **VPC**에서 기본 VPC 또는 생성한 VPC를 선택합니다.

1. **서브넷 추가** 섹션의 **가용 영역**에서 해당 서브넷을 포함하는 가용 영역을 선택한 다음 **서브넷**에서 서브넷을 선택합니다.  
![\[DB 서브넷 그룹을 생성합니다.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/RDSVPC101.png)
**참고**  
로컬 영역을 활성화한 경우 **Create DB subnet group(DB 서브넷 그룹 생성)** 페이지에서 가용 영역 그룹을 선택할 수 있습니다. 이 경우 **가용 영역 그룹**, **가용 영역** 및 **서브넷**을 선택합니다.

1. **Create**를 선택합니다.

   새 DB 서브넷 그룹은 RDS 콘솔의 DB 서브넷 그룹 목록에 나타납니다. DB 서브넷 그룹을 선택하면 창 하단에 있는 세부 정보 창에서 그룹과 연결된 모든 서브넷을 포함한 세부 정보를 확인할 수 있습니다.

### 3단계: VPC 보안 그룹 만들기
<a name="USER_VPC.CreateVPCSecurityGroup"></a>

DB 인스턴스를 만들기 전에 DB 인스턴스와 연결할 VPC 보안 그룹을 만들어야 합니다. VPC 보안 그룹을 생성하지 않는 경우 DB 인스턴스를 생성할 때 기본 보안 그룹을 사용할 수 있습니다. DB 인스턴스에 대한 보안 그룹을 생성하는 방법에 대한 지침은 [프라이빗 DB 인스턴스에 대한 VPC 보안 그룹 생성](CHAP_Tutorials.WebServerDB.CreateVPC.md#CHAP_Tutorials.WebServerDB.CreateVPC.SecurityGroupDB) 섹션을 참조하거나 *Amazon VPC 사용 설명서*의 [보안 그룹을 사용하여 리소스에 대한 트래픽 제어](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)를 참조하세요.

### 4단계: VPC에서 DB 인스턴스 만들기
<a name="USER_VPC.CreateDBInstanceInVPC"></a>

이 단계에서는 DB 인스턴스를 만들고 이전 단계에서 만든 VPC 이름, DB 서브넷 그룹 및 VPC 보안 그룹을 사용합니다.

**참고**  
VPC의 DB 인스턴스에 공개적으로 액세스할 수 있도록 하려면 VPC 속성 *DNS 호스트 이름* 및 *DNS 확인*을 활성화해야 합니다. 자세한 내용을 알아보려면 *Amazon VPC 사용 설명서*의 [VPC에 대한 DNS 속성](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html)을 참조하세요.

DB 인스턴스 생성 방법에 대한 자세한 내용은 [Amazon RDS DB 인스턴스 생성](USER_CreateDBInstance.md) 섹션을 참조하세요.

**연결** 섹션에 메시지가 표시되면 VPC 이름, DB 서브넷 그룹 및 VPC 보안 그룹을 입력합니다.

# DB 인스턴스에 대한 VPC 업데이트
<a name="USER_VPC.VPC2VPC"></a>

AWS Management Console을 사용하여 DB 인스턴스를 다른 VPC로 이동할 수 있습니다.

DB 인스턴스 수정에 대한 자세한 내용은 [Amazon RDS DB 인스턴스 수정](Overview.DBInstance.Modifying.md) 단원을 참조하세요. 수정 페이지의 **연결** 섹션에서 다음과 같이 **DB 서브넷 그룹**에 새 DB 서브넷 그룹을 입력합니다. 새 서브넷 그룹은 새 VPC에 있는 서브넷 그룹이어야 합니다.

![\[DB 인스턴스 서브넷 그룹을 수정합니다.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/EC2-VPC.png)


다음 조건이 적용되는 경우 DB 인스턴스의 VPC를 변경할 수 없습니다.
+ DB 인스턴스는 여러 가용 영역에 있습니다. DB 인스턴스를 단일 가용 영역으로 변환하고, 새 VPC로 이동한 다음, 다중 AZ DB 인스턴스로 다시 변환할 수 있습니다. 자세한 내용은 [Amazon RDS에 대한 다중 AZ 배포 구성 및 관리](Concepts.MultiAZ.md) 단원을 참조하세요.
+ DB 인스턴스에는 하나 이상의 읽기 전용 복제본이 있습니다. 읽기 전용 복제본을 제거하고, DB 인스턴스를 새 VPC로 이동한 다음, 읽기 전용 복제본을 다시 추가할 수 있습니다. 자세한 내용은 [DB 인스턴스 읽기 전용 복제본 작업](USER_ReadRepl.md) 단원을 참조하세요.
+ DB 인스턴스는 읽기 전용 복제본입니다. 읽기 전용 복제본을 승격한 다음 독립 실행형 DB 인스턴스를 새 VPC로 이동할 수 있습니다. 자세한 내용은 [읽기 전용 복제본을 독립 DB 인스턴스로 승격](USER_ReadRepl.Promote.md) 단원을 참조하세요.
+ 대상 VPC의 서브넷 그룹은 DB 인스턴스의 가용 영역에 서브넷이 없습니다. DB 인스턴스의 가용 영역에 있는 서브넷을 DB 서브넷 그룹에 추가한 다음 DB 인스턴스를 새 VPC로 이동할 수 있습니다. 자세한 내용은 [DB 서브넷 그룹을 사용한 작업](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.Subnets) 단원을 참조하세요.

# VPC에서 DB 인스턴스에 액세스하는 시나리오
<a name="USER_VPC.Scenarios"></a>

Amazon RDS에서는 VPC의 DB 인스턴스에 액세스하는 다음 시나리오를 지원합니다.
+ [동일한 VPC에 있는 Amazon EC2 인스턴스](#USER_VPC.Scenario1)
+ [다른 VPC에 있는 EC2 인스턴스](#USER_VPC.Scenario3)
+ [클라이언트 애플리케이션이 인터넷을 통해](#USER_VPC.Scenario4)
+ [프라이빗 네트워크](#USER_VPC.NotPublic)

## 동일한 VPC에 있는 Amazon EC2 인스턴스가 VPC 내에 있는 DB 인스턴스에 액세스
<a name="USER_VPC.Scenario1"></a>

VPC에서 DB 인스턴스를 사용하는 일반적인 사례는 동일한 VPC의 Amazon EC2 인스턴스에서 실행 중인 애플리케이션 서버와 데이터를 공유하는 것입니다.

다음 다이어그램은 이 시나리오를 보여 줍니다.

![\[퍼블릭 웹 서버와 프라이빗 데이터베이스를 사용하는 VPC 시나리오\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/con-VPC-sec-grp.png)


동일한 VPC에서 EC2 인스턴스와 DB 인스턴스 간 액세스를 관리하는 가장 간단한 방법은 다음과 같습니다.
+ DB 인스턴스가 포함될 VPC 보안 그룹을 생성합니다. 이 보안 그룹을 사용해 DB 인스턴스에 대한 액세스를 제한할 수 있습니다. 예를 들어 이 보안 그룹에 대한 사용자 지정 규칙을 생성할 수 있습니다. 이렇게 하면 DB 인스턴스를 생성할 때 할당한 포트와 개발 또는 기타 목적으로 DB 인스턴스에 액세스하는 데 사용하는 IP 주소를 사용하여 TCP 액세스를 허용할 수 있습니다.
+ EC2 인스턴스(웹 서버 및 클라이언트)가 포함될 VPC 보안 그룹을 생성합니다. 이 보안 그룹은 필요할 경우 VPC의 라우팅 테이블을 사용해 인터넷에서 EC2 인스턴스 액세스를 허용할 수 있습니다. 예를 들어, 이 보안 그룹에서 TCP가 포트 22를 통해 EC2 인스턴스에 액세스하도록 허용하는 규칙을 설정할 수 있습니다.
+ DB 인스턴스에 대한 보안 그룹에서 EC2 인스턴스에 대해 생성한 보안 그룹으로부터의 연결을 허용하는 사용자 지정 규칙을 만듭니다. 이러한 규칙을 통해 보안 그룹의 모든 구성원은 DB 인스턴스에 액세스할 수 있게 됩니다.

별도의 가용 영역에서 구성된 추가 퍼블릭 및 프라이빗 서브넷이 있습니다. RDS DB 서브넷 그룹은 최소 2개의 가용 영역에 한 개 이상의 서브넷이 필요합니다. 추가 서브넷을 사용하면 향후 다중 AZ DB 인스턴스 배포로 쉽게 전환할 수 있습니다.

이 시나리오에 대해 퍼블릭 서브넷과 프라이빗 서브넷 모두에서 VPC를 생성하는 방법을 보여주는 자습서는 [자습서: DB 인스턴스에 사용할 Amazon VPC 생성(IPv4 전용)](CHAP_Tutorials.WebServerDB.CreateVPC.md) 단원을 참조하세요.

**작은 정보**  
DB 인스턴스를 생성할 때 Amazon EC2 인스턴스와 DB 인스턴스 간의 네트워크 연결을 자동으로 설정할 수 있습니다. 자세한 내용은 [EC2 인스턴스와의 자동 네트워크 연결 구성](USER_CreateDBInstance.md#USER_CreateDBInstance.Prerequisites.VPC.Automatic) 단원을 참조하십시오.

**VPC 보안 그룹에서 다른 보안 그룹으로부터의 연결을 허용하는 규칙을 만들려면 다음을 수행합니다.**

1.  AWS Management Console에 로그인하고 [https://console.aws.amazon.com/vpc](https://console.aws.amazon.com/vpc)에서 Amazon VPC 콘솔을 엽니다.

1.  탐색 창에서 **Security groups**를 선택합니다.

1. 다른 보안 그룹의 구성원에 대한 액세스를 허용할 보안 그룹을 선택하거나 생성합니다. 위 시나리오에서 이 보안 그룹을 DB 인스턴스에 사용합니다. **인바운드 규칙** 탭을 선택한 후 **인바운드 규칙 편집**을 선택합니다.

1. **인바운드 규칙 편집** 페이지에서 **규칙 추가**]를 선택합니다.

1. **유형**에서 **MYSQL/Aurora**와 같이 DB 인스턴스를 생성할 때 사용한 포트에 해당하는 항목을 선택합니다.

1. **소스** 상자에 일치하는 보안 그룹을 나열하는 보안 그룹의 ID를 입력합니다. 이 보안 그룹에서 보호 중인 리소스에 대한 액세스를 허용할 구성원이 포함된 보안 그룹을 선택합니다. 위 시나리오에서 이 보안 그룹을 EC2 인스턴스에 사용합니다.

1. 필요한 경우 **유형**으로 **모든 TCP**를 지정하고 **소스** 상자에 보안 그룹을 입력한 규칙을 생성하여 TCP 프로토콜에 대해 단계를 반복합니다. UDP 프로토콜을 사용하려는 경우 **유형**이 **모든 UD**P이고 **소스**에 보안 그룹이 있는 규칙을 생성합니다.

1. **규칙 저장**을 선택합니다.

다음 화면은 소스에 대한 보안 그룹이 포함된 인바운드 규칙을 보여 줍니다.

![\[보안 그룹을 다른 보안 그룹의 규칙에 추가\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/con-vpc-add-sg-rule.png)


EC2 인스턴스에서 DB 인스턴스에 연결하는 방법에 대한 자세한 내용은 [Amazon RDS DB 인스턴스에 연결](CHAP_CommonTasks.Connect.md) 단원을 참조하세요.

## VPC에 있는 DB 인스턴스에 다른 VPC에 있는 EC2 인스턴스가 액세스
<a name="USER_VPC.Scenario3"></a>

DB 인스턴스가 액세스 시 사용할 EC2 인스턴스와 다른 VPC에 있는 경우 DB 인스턴스에 액세스하기 위해 VPC 피어링을 사용할 수 있습니다.

다음 다이어그램은 이 시나리오를 보여 줍니다.

![\[VPC에 있는 DB 인스턴스에 다른 VPC에 있는 Amazon EC2 인스턴스가 액세스\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/RDSVPC2EC2VPC.png)


VPC 피어링 연결은 프라이빗 IP 주소를 사용하여 두 VPC 간에 트래픽을 라우팅할 수 있도록 하기 위한 두 VPC 사이의 네트워킹 연결입니다. 동일한 네트워크에 속하는 경우와 같이 VPC의 리소스가 서로 통신할 수 있습니다. 자체 VPC 간, 다른 AWS 계정에서 VPC를 사용하여 또는 다른 AWS 리전에서 VPC를 사용하여 VPC 피어링 연결을 만들 수 있습니다. VPC 피어링에 대한 자세한 내용은 *Amazon Virtual Private Cloud 사용 설명서*의 [VPC 피어링](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-peering.html)을 참조하세요.

## 클라이언트 애플리케이션이 인터넷을 통해 VPC에 있는 DB 인스턴스에 액세스
<a name="USER_VPC.Scenario4"></a>

인터넷을 통해 클라이언트 애플리케이션에서 VPC에 있는 DB 인스턴스에 액세스하려면, 단일 퍼블릭 서브넷이 있는 VPC와 인터넷을 통한 통신을 지원하는 인터넷 게이트웨이를 구성합니다.

다음 다이어그램은 이 시나리오를 보여 줍니다.

![\[클라이언트 애플리케이션이 인터넷을 통해 VPC에 있는 DB 인스턴스에 액세스\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/GS-VPC-network.png)


다음 구성을 권장합니다.

 
+ 크기가 /16인 VPC(예: CIDR: 10.0.0.0/16). 이 크기는 65,536개의 프라이빗 IP 주소를 제공합니다.
+ 크기가 /24인 서브넷(예: CIDR: 10.0.0.0/24). 이 크기는 256개의 프라이빗 IP 주소를 제공합니다.
+ Amazon RDS DB 인스턴스는 VPC 및 서브넷과 연결됩니다. Amazon RDS는 서브넷 내의 IP 주소를 DB 인스턴스에 할당합니다.
+ VPC를 인터넷 및 다른 AWS 제품과 연결하는 인터넷 게이트웨이.
+ DB 인스턴스와 연결된 보안 그룹입니다. 보안 그룹의 인바운드 규칙은 클라이언트 애플리케이션이 사용자의 DB 인스턴스에 액세스할 수 있도록 해줍니다.

VPC에서 DB 인스턴스 생성에 대한 자세한 내용은 [VPC에 DB 인스턴스 만들기](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.InstanceInVPC) 단원을 참조하세요.

## 프라이빗 네트워크에서 액세스하는 VPC의 DB 인스턴스
<a name="USER_VPC.NotPublic"></a>

DB 인스턴스에 공개적으로 액세스할 수 없는 경우 프라이빗 네트워크에서 액세스할 수 있는 옵션은 다음과 같습니다.
+ AWS Site-to-Site VPN 연결. 자세한 내용은 [AWS Site-to-Site VPN란 무엇입니까?](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html)를 참조하십시오.
+ Direct Connect 연결. 자세한 내용은 [Direct Connect란 무엇인가요?](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)를 참조하세요.
+ AWS Client VPN 연결. 자세한 내용은 [AWS Client VPN란 무엇입니까?](https://docs.aws.amazon.com//vpn/latest/clientvpn-admin/what-is.html)를 참조하세요.

다음 다이어그램은 AWS Site-to-Site VPN 연결 시나리오를 보여줍니다.

![\[프라이빗 네트워크에서 액세스하는 VPC의 DB 인스턴스\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/site-to-site-vpn-connection.png)


자세한 내용은 [인터네트워크 트래픽 개인 정보](inter-network-traffic-privacy.md) 섹션을 참조하세요.

# 자습서: DB 인스턴스에 사용할 Amazon VPC 생성(IPv4 전용)
<a name="CHAP_Tutorials.WebServerDB.CreateVPC"></a>

일반적인 시나리오에는 Amazon VPC 서비스를 기반으로 하는 Virtual Private Cloud(VPC)의 DB 인스턴스가 포함됩니다. 이 VPC는 동일한 VPC에서 실행 중인 웹 서버와 데이터를 공유합니다. 이 자습에서는 이 시나리오를 위한 VPC를 생성합니다.

다음 다이어그램은 이 시나리오를 보여 줍니다. 다른 시나리오에 대한 자세한 내용은 [VPC에서 DB 인스턴스에 액세스하는 시나리오](USER_VPC.Scenarios.md)을(를) 참조하십시오.

![\[단일 VPC 시나리오\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/con-VPC-sec-grp.png)


퍼블릭 인터넷이 아닌 웹 서버에서만 DB 인스턴스를 사용할 수 있어야 합니다. 따라서 퍼블릭 서브넷과 프라이빗 서브넷을 모두 포함하여 VPC를 생성합니다. 퍼블릭 서브넷에서 웹 서버를 호스팅하므로 웹 서버에서 퍼블릭 인터넷에 액세스할 수 있습니다. DB 인스턴스는 프라이빗 서브넷에서 호스팅됩니다. Amazon EC2 인스턴스는 동일한 VPC 내에서 호스팅되므로 DB 인스턴스에 연결할 수 있습니다. 하지만 퍼블릭 인터넷에서는 DB 인스턴스를 사용할 수 없으므로 보안이 강화됩니다.

이 자습서에서는 별도의 가용 영역에서 추가 퍼블릭 및 프라이빗 서브넷을 구성합니다. 이러한 서브넷은 자습서에서 사용하지 않습니다. RDS DB 서브넷 그룹은 최소 2개의 가용 영역에 한 개 이상의 서브넷이 필요합니다. 추가 서브넷이 있으면 future 다중 AZ DB 인스턴스 배포로 쉽게 전환할 수 있습니다. 

이 자습서에서는 Amazon RDS DB 인스턴스용 VPC 구성에 대해 설명합니다. 이 VPC 시나리오에 대한 웹 서버를 생성하는 방법을 보여 주는 자습서는 [자습서: 웹 서버 및 Amazon RDS DB 인스턴스 생성](TUT_WebAppWithRDS.md) 단원을 참조하세요. Amazon VPC 대한 자세한 내용은 [Amazon VPC 시작 안내서](https://docs.aws.amazon.com/AmazonVPC/latest/GettingStartedGuide/) 및 [Amazon VPC 사용 설명서](https://docs.aws.amazon.com/vpc/latest/userguide/)를 참조하세요.

**작은 정보**  
Amazon EC2 인스턴스와 DB 간에 네트워크 연결을 설정할 수 있습니다.예DB를 생성할 때 자동으로예. 네트워크 구성은 이 자습서에서 설명한 것과 비슷합니다. 자세한 내용은 [EC2 인스턴스와의 자동 네트워크 연결 구성](USER_CreateDBInstance.md#USER_CreateDBInstance.Prerequisites.VPC.Automatic). 섹션을 참조하세요.

## 프라이빗 서브넷과 퍼블릭 서브넷을 포함하는 VPC 생성
<a name="CHAP_Tutorials.WebServerDB.CreateVPC.VPCAndSubnets"></a>

다음은 퍼블릭 서브넷과 프라이빗 서브넷을 모두 포함하는 VPC를 생성하는 절차입니다.

**VPC 및 서브넷을 생성하는 방법**

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

1. AWS Management Console의 오른쪽 상단에서 VPC를 생성할 리전을 선택합니다. 이 예에서는 미국 서부(오레곤) 리전을 사용합니다.

1. 왼쪽 상단 모서리에서 **VPC 대시보드**를 선택합니다. VPC 생성을 시작하려면 **VPC 생성**을 선택합니다.

1. **VPC 설정**의 **생성할 리소스**에서 **VPC 등**을 선택합니다.

1. **VPC 설정**을 위해 다음 값을 설정합니다.
   + **네임 태그 자동 생성** - **tutorial**
   + **IPv4 CIDR block:** - **10.0.0.0/16**
   + **IPv6 CIDR 블록** - **No IPv6 CIDR Block(IPv6 CIDR 블록 없음)**
   + **테넌시** - **기본값**
   + **가용 영역(AZ)의 수** - **2**
   + **Customize AZs**(AZ 사용자 지정) - 기본값을 유지합니다.
   + **퍼블릭 서브넷 수** – **2**
   + **프라이빗 서브넷 수** – **2**
   + **Customize subnets CIDR blocks**(서브넷 CIDR 블록 사용자 지정) - 기본값을 유지합니다.
   + **NAT 게이트웨이(\$1)** – **없음**
   + **VPC 엔드포인트** – **없음**
   + **DNS options**(DNS 옵션) - 기본값을 유지합니다.
**참고**  
Amazon RDS에서는 다중 AZ DB 인스턴스 배포를 지원하려면 서로 다른 두 가용 영역에 있는 Amazon RDS가 필요합니다. 이 자습서에서는 단일 AZ 배포를 생성하지만 요구 사항에 따라 향후 다중 AZ DB 인스턴스 배포로 더욱 쉽게 전환할 수 있습니다.

1. **VPC 생성**을 선택합니다.

## 퍼블릭 웹 서버에 대해 VPC 보안 그룹 생성
<a name="CHAP_Tutorials.WebServerDB.CreateVPC.SecurityGroupEC2"></a>

이제 퍼블릭 액세스를 위한 보안 그룹을 생성합니다. VPC의 퍼블릭 EC2 인스턴스에 연결하려면 VPC 보안 그룹에 인바운드 규칙을 추가해야 합니다. 이를 통해 인터넷에서 트래픽을 연결할 수 있습니다.

**VPC 보안 그룹의 생성 방법**

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

1. **VPC 대시보드**, **보안 그룹**, **보안 그룹 생성**을 차례대로 선택합니다.

1. **보안 그룹 생성** 페이지에서 다음 값을 설정합니다.
   + **보안 그룹 이름:** **tutorial-securitygroup**
   + **설명:** **Tutorial Security Group**
   + **VPC:** 이전에 생성한 VPC를 선택합니다(예: **vpc*-identifier*(tutorial-vpc))**.

1. 인바운드 규칙을 보안 그룹에 추가합니다.

   1. Secure Shell(SSH)을 사용하여 VPC의 EC2 인스턴스에 연결하는 데 사용할 IP 주소를 지정합니다. 퍼블릭 IP 주소를 확인하려면 다른 브라우저 창 또는 탭에서 [https://checkip.amazonaws.com](https://checkip.amazonaws.com)의 서비스를 사용합니다. IP 주소의 예는 `203.0.113.25/32`입니다.

      대부분의 경우 고정 IP 주소가 없는 방화벽 뒤나 인터넷 서비스 제공업체(ISP)를 통해 연결하는 경우가 많습니다. 그렇다면 클라이언트 컴퓨터에서 사용하는 IP 주소 범위를 찾습니다.
**주의**  
SSH 액세스에 `0.0.0.0/0`을 사용하는 경우 모든 IP 주소가 SSH를 사용하여 퍼블릭 인스턴스에 액세스할 수 있도록 활성화합니다. 이 방법은 테스트 환경에서 잠시 사용하는 것은 괜찮지만 프로덕션 환경에서는 안전하지 않습니다. 프로덕션에서는 SSH를 사용하여 인스턴스에 액세스할 수 있는 특정 IP 주소 또는 주소 범위만 인증합니다.

   1. **인바운드 규칙** 섹션에서 **규칙 추가**를 선택합니다.

   1. 새로운 인바운드 규칙으로 다음 값을 설정하여 SSH에서 Amazon EC2 인스턴스에 액세스하도록 허용합니다. 이렇게 하면 Amazon EC2 인스턴스에 연결하여 웹 서버 및 다른 유틸리티를 설치할 수 있습니다. 또한 EC2 인스턴스에 연결하여 웹 서버의 콘텐츠를 업로드할 수도 있습니다.
      + **Type:** **SSH**
      + **소스:** a단계의 IP 주소 또는 범위(예: **203.0.113.25/32**)

   1. [**Add another rule**]을 선택합니다.

   1. 새 인바운드 규칙에 다음 값을 설정하여 웹 서버에 대한 HTTP 액세스를 허용합니다.
      + **유형:** **HTTP**
      + **소스:** **0.0.0.0/0**

1. 보안 그룹을 생성하려면 **보안 그룹 생성(Create security group)**을 선택합니다.

   이 자습서에서 나중에 필요하므로 보안 그룹 ID를 적어 둡니다.

## 프라이빗 DB 인스턴스에 대한 VPC 보안 그룹 생성
<a name="CHAP_Tutorials.WebServerDB.CreateVPC.SecurityGroupDB"></a>

DB 인스턴스를 프라이빗으로 유지하려면 프라이빗 액세스를 위한 보조 보안 그룹을 생성합니다. VPC의 프라이빗 DB 인스턴스에 연결하려면 웹 서버로부터의 트래픽만 허용하는 인바운드 규칙을 VPC 보안 그룹에 추가해야 합니다.

**VPC 보안 그룹의 생성 방법**

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

1. **VPC 대시보드**, **보안 그룹**, **보안 그룹 생성**을 차례대로 선택합니다.

1. **보안 그룹 생성** 페이지에서 다음 값을 설정합니다.
   + **보안 그룹 이름:** **tutorial-db-securitygroup**
   + **설명:** **Tutorial DB Instance Security Group**
   + **VPC:** 이전에 생성한 VPC를 선택합니다(예: **vpc*-identifier*(tutorial-vpc))**.

1. 인바운드 규칙을 보안 그룹에 추가합니다.

   1. **인바운드 규칙** 섹션에서 **규칙 추가**를 선택합니다.

   1. 새로운 인바운드 규칙으로 다음 값을 설정하여 Amazon EC2 인스턴스의 포트 3306에서 MySQL 트래픽을 허용합니다. 이렇게 하면 웹 서버에서 DB 인스턴스에 연결할 수 있습니다. 그러면 웹 애플리케이션의 데이터를 데이터베이스에 저장하고 검색할 수 있습니다.
      + **유형:** **MySQL/Aurora**
      + **소스:** 이 자습서에서 이전에 생성한 **tutorial-securitygroup** 보안 그룹의 식별자(예: **sg-9edd5cfb**)입니다.

1. 보안 그룹을 생성하려면 **보안 그룹 생성**을 선택합니다.

## DB 서브넷 그룹 만들기
<a name="CHAP_Tutorials.WebServerDB.CreateVPC.DBSubnetGroup"></a>

*DB 서브넷 그룹*은 사용자가 VPC에서 만든 다음 DB 인스턴스에 대해 지정하는 서브넷의 모음입니다. DB 서브넷 그룹에서 DB 인스턴스를 생성할 때 특정 VPC를 지정할 수 있습니다.

**DB 서브넷 그룹을 만들려면**

1. VPC에서 데이터베이스의 프라이빗 서브넷을 식별합니다.

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

   1. **VPC 대시보드**를 선택한 다음 **서브넷**을 선택합니다.

   1. **tutorial-subnet-private1-us-west-2a** 및 **tutorial-subnet-private2-us-west-2b**라는 서브넷의 서브넷 ID를 기록해 둡니다.

      DB 서브넷 그룹을 생성할 때 서브넷 ID가 필요합니다.

1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

   Amazon VPC 콘솔이 아닌 Amazon RDS 콘솔에 연결해야 합니다.

1. 탐색 창에서 [**Subnet groups**]를 선택합니다.

1. **DB 서브넷 그룹 생성**을 선택합니다.

1. **DB 서브넷 그룹 생성** 페이지에서 **서브넷 그룹 세부 정보**에 이들 값을 설정합니다.
   + **이름:** **tutorial-db-subnet-group**
   + **설명:** **Tutorial DB Subnet Group**
   + **VPC:** **tutorial-vpc(vpc-*identifier*)** 

1. **서브넷 추가** 섹션에서 **가용 영역** 및 **서브넷**을 선택합니다.

   이 자습서에서는 **us-west-2a**와 **us-west-2b**를 **가용 영역**으로 선택합니다. **서브넷**에서 이전 단계에서 식별한 프라이빗 서브넷을 선택합니다.

1. **Create**를 선택합니다.

   새 DB 서브넷 그룹은 RDS 콘솔의 DB 서브넷 그룹 목록에 나타납니다. DB 서브넷 그룹을 선택하여 창 하단의 세부 정보 창에서 세부 정보를 볼 수 있습니다. 이러한 세부 정보에는 그룹과 연결된 모든 서브넷이 포함됩니다.

**참고**  
[자습서: 웹 서버 및 Amazon RDS DB 인스턴스 생성](TUT_WebAppWithRDS.md)을 완료하기 위해 이 VPC를 생성한 경우 [Amazon RDS DB 인스턴스 생성](CHAP_Tutorials.WebServerDB.CreateDBInstance.md) 의 지침에 따라 DB 인스턴스를 생성합니다.

## VPC 삭제
<a name="CHAP_Tutorials.WebServerDB.CreateVPC.Delete"></a>

이 자습서에 대한 VPC 및 기타 리소스를 생성한 후, 더 이상 필요하지 않은 경우 삭제할 수 있습니다.

**참고**  
이 자습서를 위해 생성한 VPC에 리소스를 추가한 경우 VPC를 삭제하기 전에 이러한 리소스를 삭제해야 할 수 있습니다. 예를 들어 이러한 리소스에는 Amazon EC2 인스턴스 또는 Amazon RDS DB 인스턴스가 포함될 수 있습니다. 자세한 내용은 *Amazon VPC 사용 설명서*의 [VPC의 삭제](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#VPC_Deleting)를 참조하세요.

**VPC 및 관련 리소스 삭제하기**

1. DB 서브넷 그룹을 삭제합니다.

   1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

   1. 탐색 창에서 **서브넷 그룹**을 선택합니다.

   1. 삭제하려는 DB 서브넷 그룹을 선택합니다(예: **tutorial-db-subnet-group**).

   1. **삭제**를 선택한 다음 확인 창에서 **삭제**를 선택합니다.

1. VPC ID를 기록합니다.

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

   1. **VPC 대시보드**를 선택한 다음 **VPC**를 선택합니다.

   1. 목록에서 생성한 VPC를 식별합니다(예:**tutorial-vpc**).

   1. 생성한 VPC의 **VPC ID**를 기록합니다. 이후 단계에서 해당 VPC ID가 필요합니다.

1. 보안 그룹을 삭제합니다.

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

   1. **VPC 대시보드**를 선택한 다음 **보안 그룹**을 선택합니다.

   1. Amazon RDS DB 인스턴스에 대한 보안 그룹을 선택합니다(예:**tutorial-db-securitygroup**).

   1. **작업(Actions)**에서 **보안 그룹 삭제**를 선택한 다음 확인 페이지에서 **삭제(Delete)**를 선택합니다.

   1. **보안 그룹** 페이지에서 Amazon EC2 인스턴스에 대한 보안 그룹을 선택합니다(예:**tutorial-securitygroup**).

   1. **작업(Actions)**에서 **보안 그룹 삭제**를 선택한 다음 확인 페이지에서 **삭제(Delete)**를 선택합니다.

1. VPC를 삭제합니다.

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

   1. **VPC 대시보드**를 선택한 다음 **VPC**를 선택합니다.

   1. 삭제하려는 VPC 선택합니다(예:**tutorial-vpc**).

   1. **작업**에서 **VPC 삭제**를 선택합니다.

      확인 페이지에는 VPC와 연결된 서브넷을 포함하여 삭제될 VPC와 연결된 다른 리소스가 표시됩니다.

   1. 확인 페이지에서 **delete**를 입력하고 **삭제**를 선택합니다.

# 자습서: DB 인스턴스(듀얼 스택 모드)에 사용할 VPC 생성
<a name="CHAP_Tutorials.CreateVPCDualStack"></a>

일반적인 시나리오에는 Amazon VPC 서비스를 기반으로 하는 Virtual Private Cloud(VPC)의 DB 인스턴스가 포함됩니다. 이 VPC는 동일한 VPC에서 실행 중인 퍼블릭 Amazon EC2 인스턴스와 데이터를 공유합니다.

이 자습서에서는 듀얼 스택 모드에서 실행되는 데이터베이스와 함께 작동하는 이 시나리오의 VPC를 생성합니다. IPv6 주소 지정 프로토콜을 통한 연결을 가능하게 하는 듀얼 스택 모드입니다. IP 주소에 대한 자세한 내용은 [Amazon RDS IP 주소 지정](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.IP_addressing) 단원을 참조하십시오.

이중 스택 네트워크 인스턴스 대부분의 리전에서 지원됩니다. 자세한 내용은 [리전 및 버전 사용 가능 여부](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.IP_addressing.RegionVersionAvailability)을 참조하세요. 이중 스택 모드의 제한 사항을 보려면 [듀얼 스택 네트워크 DB 인스턴스에 대한 제한 사항](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.IP_addressing.dual-stack-limitations)을 참조하세요.

다음 다이어그램은 이 시나리오를 보여 줍니다.

 

![\[듀얼 스택 모드를 위한 VPC 시나리오\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/con-VPC-sec-grp-dual-stack.png)


다른 시나리오에 대한 자세한 내용은 [VPC에서 DB 인스턴스에 액세스하는 시나리오](USER_VPC.Scenarios.md)을(를) 참조하세요.

퍼블릭 인터넷이 아닌 Amazon EC2 인스턴스에서만 DB 인스턴스를 사용할 수 있어야 합니다. 따라서 퍼블릭 서브넷과 프라이빗 서브넷을 모두 포함하여 VPC를 생성합니다. 퍼블릭 서브넷에서 Amazon EC2 인스턴스를 호스팅하므로 Amazon EC2 인스턴스에서 퍼블릭 인터넷에 액세스할 수 있습니다. DB 인스턴스는 프라이빗 서브넷에서 호스팅됩니다. Amazon EC2 인스턴스는 동일한 VPC 내에서 호스팅되므로 DB 인스턴스에 연결할 수 있습니다. 하지만 퍼블릭 인터넷에서는 DB 인스턴스를 사용할 수 없으므로 보안이 강화됩니다.

이 자습서에서는 별도의 가용 영역에서 추가 퍼블릭 및 프라이빗 서브넷을 구성합니다. 이러한 서브넷은 자습서에서 사용하지 않습니다. RDS DB 서브넷 그룹은 최소 2개의 가용 영역에 한 개 이상의 서브넷이 필요합니다. 추가 서브넷을 사용하면 향후 다중 AZ DB 인스턴스 배포로 쉽게 전환할 수 있습니다. 

듀얼 스택 모드를 사용하는 DB 인스턴스를 생성하려면 **네트워크 유형(Network type)** 설정에 **듀얼 스택 모드(Dual-stack mode)**를 지정하세요. 동일한 설정으로 DB 인스턴스를 수정할 수도 있습니다. 자세한 내용은 [Amazon RDS DB 인스턴스 생성](USER_CreateDBInstance.md) 및 [Amazon RDS DB 인스턴스 수정](Overview.DBInstance.Modifying.md) 단원을 참조하세요.

이 자습서에서는 Amazon RDS DB 인스턴스용 VPC 구성에 대해 설명합니다. Amazon VPC에 대한 자세한 내용은 [Amazon VPC 사용 설명서](https://docs.aws.amazon.com/vpc/latest/userguide/)를 참조하세요.

## 프라이빗 서브넷과 퍼블릭 서브넷을 포함하는 VPC 생성
<a name="CHAP_Tutorials.CreateVPCDualStack.VPCAndSubnets"></a>

다음은 퍼블릭 서브넷과 프라이빗 서브넷을 모두 포함하는 VPC를 생성하는 절차입니다.

**VPC 및 서브넷을 생성하는 방법**

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

1. AWS Management Console의 오른쪽 상단에서 VPC를 생성할 리전을 선택합니다. 이 예에서는 미국 동부(오하이오) 리전을 사용합니다.

1. 왼쪽 상단 모서리에서 **VPC 대시보드**를 선택합니다. VPC 생성을 시작하려면 **VPC 생성**을 선택합니다.

1. **VPC 설정**의 **생성할 리소스**에서 **VPC 등**을 선택합니다.

1. 남은 **VPC 설정**에서는 다음 값들을 설정합니다.
   + **네임 태그 자동 생성** - **tutorial-dual-stack**
   + **IPv4 CIDR block**:**10.0.0.0/16** - 
   + **IPv6 CIDR 블록(IPv6 CIDR block)** - **Amazon 제공 IPv6 CIDR 블록(Amazon-provided IPv6 CIDR block)**
   + **테넌시** - **기본값**
   + **가용 영역(AZ)의 수 **-** **2
   + **Customize AZs**(AZ 사용자 지정) - 기본값을 유지합니다.
   + **퍼블릭 서브넷 수** – **2**
   + **프라이빗 서브넷 수** – **2**
   + **Customize subnets CIDR blocks**(서브넷 CIDR 블록 사용자 지정) - 기본값을 유지합니다.
   + **NAT 게이트웨이(\$1)** – **없음**
   + **외부 전용 인터넷 게이트웨이** - **아니요**
   + **VPC 엔드포인트** – **없음**
   + **DNS options**(DNS 옵션) - 기본값을 유지합니다.
**참고**  
Amazon RDS에서는 다중 AZ DB 인스턴스 배포를 지원하려면 서로 다른 두 가용 영역에 있는 Amazon RDS가 필요합니다. 이 자습서에서는 단일 AZ 배포를 생성하지만 요구 사항에 따라 향후 다중 AZ DB 인스턴스 배포로 쉽게 전환할 수 있습니다.

1. **VPC 생성**을 선택합니다.

## 퍼블릭 Amazon EC2 인스턴스에 대한 VPC 보안 그룹 생성
<a name="CHAP_Tutorials.CreateVPCDualStack.SecurityGroupEC2"></a>

이제 퍼블릭 액세스를 위한 보안 그룹을 생성합니다. VPC의 퍼블릭 EC2 인스턴스에 연결하려면 인터넷으로부터의 트래픽 연결을 허용하는 VPC 보안 그룹에 인바운드 규칙을 추가해야 합니다.

**VPC 보안 그룹의 생성 방법**

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

1. **VPC 대시보드**, **보안 그룹**, **보안 그룹 생성**을 차례대로 선택합니다.

1. **보안 그룹 생성** 페이지에서 다음 값을 설정합니다.
   + **보안 그룹 이름:** **tutorial-dual-stack-securitygroup**
   + **설명:** **Tutorial Dual-Stack Security Group**
   + **VPC:** 이전에 생성한 VPC 선택(예: **vpc-*식별자*(tutorial-dual-stack-vpc)** 

1. 인바운드 규칙을 보안 그룹에 추가합니다.

   1. Secure Shell(SSH)을 사용하여 VPC의 EC2 인스턴스에 연결하는 데 사용할 IP 주소를 지정합니다.

      IPv4(인터넷 프로토콜 버전 4) 주소의 예는 `203.0.113.25/32`입니다. IPv6(인터넷 프로토콜 버전 6) 주소 범위의 예는 `2001:db8:1234:1a00::/64`입니다.

      대부분의 경우 고정 IP 주소가 없는 방화벽 뒤나 인터넷 서비스 제공업체(ISP)를 통해 연결하는 경우가 많습니다. 그렇다면 클라이언트 컴퓨터에서 사용하는 IP 주소 범위를 찾습니다.
**주의**  
IPv4에 `0.0.0.0/0`, IPv6에 `::0`을 사용하면 SSH를 통해 모든 IP 주소가 퍼블릭 인스턴스에 액세스하도록 설정할 수 있습니다. 이 방법은 테스트 환경에서 잠시 사용하는 것은 괜찮지만 프로덕션 환경에서는 안전하지 않습니다. 프로덕션에서는 특정 IP 주소나 주소 범위만 인스턴스에 액세스하도록 허용하세요.

   1. **인바운드 규칙** 섹션에서 **규칙 추가**를 선택합니다.

   1. 새로운 인바운드 규칙으로 다음 값을 설정하여 SSH(Secure Shell)에서 Amazon EC2 인스턴스에 액세스하도록 허용합니다. 이렇게 하면 EC2 인스턴스에 연결하여 SQL 클라이언트 및 다른 애플리케이션을 설치할 수 있습니다. EC2 인스턴스에 액세스할 수 있도록 IP 주소를 지정합니다.
      + **유형:** **SSH**
      + **소스(Source):** a단계의 IP 주소 또는 범위입니다. IPv4 IP 주소의 예는 **203.0.113.25/32**입니다. IPv6 IP 주소의 예는 **2001:DB8::/32**입니다.

1. 보안 그룹을 생성하려면 **보안 그룹 생성(Create security group)**을 선택합니다.

   이 자습서에서 나중에 필요하므로 보안 그룹 ID를 적어 둡니다.

## 프라이빗 DB 인스턴스에 대한 VPC 보안 그룹 생성
<a name="CHAP_Tutorials.CreateVPCDualStack.SecurityGroupDB"></a>

DB 인스턴스를 프라이빗으로 유지하려면 프라이빗 액세스를 위한 보조 보안 그룹을 생성합니다. VPC의 프라이빗 DB 인스턴스에 연결하려면 VPC 보안 그룹에 인바운드 규칙을 추가해야 합니다. 이 규칙은 Amazon EC2 인스턴스로부터의 트래픽만 허용합니다.

**VPC 보안 그룹의 생성 방법**

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

1. **VPC 대시보드**, **보안 그룹**, **보안 그룹 생성**을 차례대로 선택합니다.

1. **보안 그룹 생성** 페이지에서 다음 값을 설정합니다.
   + **보안 그룹 이름:** **tutorial-dual-stack-db-securitygroup**
   + **설명:** **Tutorial Dual-Stack DB Instance Security Group**
   + **VPC:** 이전에 생성한 VPC 선택(예: **vpc-*식별자*(tutorial-dual-stack-vpc)**

1. 인바운드 규칙을 보안 그룹에 추가합니다.

   1. **인바운드 규칙** 섹션에서 **규칙 추가**를 선택합니다.

   1. 새로운 인바운드 규칙으로 다음 값을 설정하여 Amazon EC2 인스턴스의 포트 3306에서 MySQL 트래픽을 허용합니다. 이렇게 하면 EC2 인스턴스에서 DB 인스턴스에 연결할 수 있습니다. 이는 EC2 인스턴스의 데이터를 데이터베이스에 전송할 수 있음을 의미합니다.
      + **유형:** **MySQL/Aurora**
      + **소스:** 이 자습서에서 이전에 생성한 **tutorial-dual-stack-securitygroup** 보안 그룹의 식별자(예: **sg-9edd5cfb**)입니다.

1. 보안 그룹을 생성하려면 **보안 그룹 생성**을 선택합니다.

## DB 서브넷 그룹 만들기
<a name="CHAP_Tutorials.CreateVPCDualStack.DBSubnetGroup"></a>

*DB 서브넷 그룹*은 사용자가 VPC에서 만든 다음 DB 인스턴스에 대해 지정하는 서브넷의 모음입니다. DB 서브넷 그룹을 사용하면 DB 인스턴스를 생성할 때 특정 VPC를 지정할 수 있습니다. `DUAL`과 호환 가능한 DB 서브넷 그룹을 생성하려면 모든 서브넷이 `DUAL`과 호환 가능해야 합니다. `DUAL`과 호환 가능하려면 서브넷에 IPv6 CIDR이 연결되어 있어야 합니다.

**DB 서브넷 그룹을 만들려면**

1. VPC에서 데이터베이스의 프라이빗 서브넷을 식별합니다.

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

   1. **VPC 대시보드**를 선택한 다음 **서브넷**을 선택합니다.

   1. **tutorial-dual-stack-subnet-private1-us-west-2a** 및 **tutorial-dual-stack-subnet-private2-us-west-2b** 서브넷의 서브넷 ID를 기록해 둡니다.

      DB 서브넷 그룹을 생성할 때 서브넷 ID가 필요합니다.

1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

   Amazon VPC 콘솔이 아닌 Amazon RDS 콘솔에 연결해야 합니다.

1. 탐색 창에서 [**Subnet groups**]를 선택합니다.

1. **DB 서브넷 그룹 생성**을 선택합니다.

1. **DB 서브넷 그룹 생성** 페이지에서 **서브넷 그룹 세부 정보**에 이들 값을 설정합니다.
   + **이름:** **tutorial-dual-stack-db-subnet-group**
   + **설명:** **Tutorial Dual-Stack DB Subnet Group**
   + **VPC:** **tutorial-dual-stack-vpc(vpc-*identifier*)** 

1. **서브넷 추가(Add subnets)** 섹션에서 **가용 영역(Availability Zones)** 및 **서브넷(Subnets)**의 값을 선택합니다.

   이 자습서에서는 **us-east-2a**와 **us-east-2b**를 **가용 영역**으로 선택합니다. **서브넷**에서 이전 단계에서 식별한 프라이빗 서브넷을 선택합니다.

1. **Create**를 선택합니다.

새 DB 서브넷 그룹은 RDS 콘솔의 DB 서브넷 그룹 목록에 나타납니다. DB 서브넷 그룹을 선택하여 세부 정보를 확인할 수 있습니다. 여기에는 지원되는 주소 지정 프로토콜과 그룹과 연결된 모든 서브넷 및 DB 서브넷 그룹에서 지원하는 네트워크 유형이 포함됩니다.

## 듀얼 스택 모드로 Amazon EC2 인스턴스 생성
<a name="CHAP_Tutorials.CreateVPCDualStack.CreateEC2Instance"></a>

Amazon EC2 인스턴스를 생성하려면 **Amazon EC2 사용 설명서의 [새 시작 인스턴스 마법사를 사용하여 인스턴스 시작](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html)의 지침을 따르세요.

**인스턴스 세부 정보 구성** 페이지에서 이러한 값을 설정하고 다른 값은 기본값으로 유지합니다.
+ **네트워크** - [프라이빗 서브넷과 퍼블릭 서브넷을 포함하는 VPC 생성](#CHAP_Tutorials.CreateVPCDualStack.VPCAndSubnets)에서 생성한 **tutorial-dual-stack-vpc**(vpc-*identifier*)와 같이 퍼블릭 및 프라이빗 서브넷이 있는 기존 VPC를 선택합니다.
+ **서브넷** - [퍼블릭 Amazon EC2 인스턴스에 대한 VPC 보안 그룹 생성](#CHAP_Tutorials.CreateVPCDualStack.SecurityGroupEC2)에서 생성한 **subnet-*identifier* \$1 tutorial-dual-stack-subnet-public1-us-east-2a \$1 us-east-2a**와 같은 기존 퍼블릭 서브넷을 선택합니다.
+ **퍼블릭 IP 자동 할당** - **활성화**를 선택합니다.
+ **Auto-assign IPv6 IP** - **활성화**를 선택합니다.
+ **방화벽(보안 그룹)** - **기존 보안 그룹 선택**을 선택합니다.
+ **일반 보안 그릅** - [퍼블릭 Amazon EC2 인스턴스에 대한 VPC 보안 그룹 생성](#CHAP_Tutorials.CreateVPCDualStack.SecurityGroupEC2)에서 생성한 `tutorial-securitygroup`과 같이 기존 보안 그룹을 선택합니다. 선택한 보안 그룹에 SSH(Secure Shell) 및 HTTP 액세스에 대한 인바운드 규칙이 포함되어 있는지 확인합니다.

## 듀얼 스택 모드로 DB 인스턴스 생성
<a name="CHAP_Tutorials.CreateVPCDualStack.CreateDBInstance"></a>

이 단계에서는 듀얼 스택 모드로 실행되는 Amazon RDS DB 인스턴스를 생성합니다.

**DB 인스턴스를 생성하려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 콘솔의 오른쪽 상단에서 DB 인스턴스를 생성하려는 을 선택합니다. 이 예에서는 미국 동부(오하이오) 리전을 사용합니다.

1. 탐색 창에서 **데이터베이스**를 선택합니다.

1. **데이터베이스 생성**을 선택합니다.

1. [**데이터베이스 생성(Create database)**] 페이지에서 다음과 같이 [**표준 생성(Standard create)**] 옵션이 선택되어 있는지 확인하고 []을 선택합니다.

1. [**연결(Connectivity)**] 섹션에서 다음 값을 설정합니다.
   + **네트워크 유형(Network type)** – **듀얼 스택 모드(Dual-stack mode)** 선택  
![\[듀얼 스택 모드가 선택된 콘솔의 네트워크 유형 섹션\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/dual-stack-mode.png)
   + **가상 사설 클라우드(VPC)** - [프라이빗 서브넷과 퍼블릭 서브넷을 포함하는 VPC 생성](#CHAP_Tutorials.CreateVPCDualStack.VPCAndSubnets)에서 생성한 **tutorial-dual-stack-vpc**(vpc-*identifier*)와 같이 퍼블릭 및 프라이빗 서브넷이 있는 기존 VPC를 선택합니다.

     VPC는 서로 다른 가용 영역에 서브넷이 있어야 합니다.
   + **서브넷 그룹(Subnet Group)** - [DB 서브넷 그룹 만들기](#CHAP_Tutorials.CreateVPCDualStack.DBSubnetGroup)에서 생성한 **tutorial-dual-stack-db-subnet-group**과 같은 VPC용 DB 서브넷 그룹을 선택합니다.
   + **퍼블릭 액세스**— 선택**아니요**.
   + **VPC 보안 그룹 (방화벽)**— 선택**기존 항목 선택**.
   + **기존 VPC 보안 그룹(Existing VPC security groups)** – [프라이빗 DB 인스턴스에 대한 VPC 보안 그룹 생성](#CHAP_Tutorials.CreateVPCDualStack.SecurityGroupDB)에서 생성한 **tutorial-dual-stack-db-securitygroup**과 같이 프라이빗 액세스에 맞게 구성된 기존 VPC 보안 그룹을 선택합니다.

     각각에 연결된 **X**를 선택해 기본 보안 그룹 같은 다른 보안 그룹을 제거합니다.
   + [Availability Zone]에서 [us-west-2a]를 선택합니다.

     AZ 간 트래픽을 피하려면 DB 인스턴스와 EC2 인스턴스가 동일한 가용 영역에 있어야 합니다.

1. 나머지 섹션에서 DB 인스턴스 설정을 지정합니다. 각 설정에 대한 자세한 내용은 [DB 인스턴스에 대한 설정](USER_CreateDBInstance.Settings.md) 단원을 참조하세요.

## Amazon EC2 인스턴스 및 DB 인스턴스에 연결
<a name="CHAP_Tutorials.CreateVPCDualStack.Connect"></a>

Amazon EC2 인스턴스와 DB 인스턴스가 듀얼 스택 모드로 생성된 후에는 IPv6 프로토콜을 사용하여 각 인스턴스에 연결할 수 있습니다. IPv6 프로토콜을 사용하여 Amazon EC2 인스턴스에 연결하려면 **Amazon EC2 사용 설명서의 [Linux 인스턴스에 연결](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html)에 있는 지침을 따르세요.

Amazon EC2 인스턴스에서 RDS for MySQL DB 인스턴스에 연결하려면 [MySQL DB 인스턴스에 연결](CHAP_GettingStarted.CreatingConnecting.MySQL.md#CHAP_GettingStarted.Connecting.MySQL)의 지침을 따르세요.

## VPC 삭제
<a name="CHAP_Tutorials.CreateVPCDualStack.Delete"></a>

이 자습서에 대한 VPC 및 기타 리소스를 생성한 후, 더 이상 필요하지 않은 경우 삭제할 수 있습니다.

이 자습서를 위해 생성한 VPC에 리소스를 추가한 경우 VPC를 삭제하기 전에 이러한 리소스를 삭제해야 할 수 있습니다. 리소스의 예로는 Amazon EC2 인스턴스 또는 DB 인스턴스가 있습니다. 자세한 내용은 *Amazon VPC 사용 설명서*의 [VPC의 삭제](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#VPC_Deleting)를 참조하세요.

**VPC 및 관련 리소스 삭제하기**

1. DB 서브넷 그룹을 삭제합니다.

   1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

   1. 탐색 창에서 **서브넷 그룹**을 선택합니다.

   1. 삭제할 DB 서브넷 그룹을 선택합니다(예: **tutorial-db-subnet-group**).

   1. **삭제**를 선택한 다음 확인 창에서 **삭제**를 선택합니다.

1. VPC ID를 기록합니다.

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

   1. **VPC 대시보드**를 선택한 다음 **VPC**를 선택합니다.

   1. 목록에서 생성한 VPC를 식별합니다(예:**tutorial-dual-stack-vpc**).

   1. 생성한 VPC의 **VPC ID**를 기록합니다. 이후 단계에서 해당 VPC ID가 필요합니다.

1. 보안 그룹을 삭제합니다.

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

   1. **VPC 대시보드**를 선택한 다음 **보안 그룹**을 선택합니다.

   1. Amazon RDS DB 인스턴스에 대한 보안 그룹을 선택합니다(예:**utorial-dual-stack-db-securitygroup**).

   1. **작업(Actions)**에서 **보안 그룹 삭제(Delete security groups)**를 선택한 다음 확인 페이지에서 **삭제(Delete)**를 선택합니다.

   1. **보안 그룹(Security Groups)** 페이지에서 Amazon EC2 인스턴스에 대한 보안 그룹을 선택합니다(예:**tutorial-dual-stack-securitygroup**).

   1. **작업(Actions)**에서 **보안 그룹 삭제(Delete security groups)**를 선택한 다음 확인 페이지에서 **삭제(Delete)**를 선택합니다.

1. NAT 게이트웨이를 삭제합니다.

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

   1. **VPC 대시보드**를 선택한 다음 **NAT 게이트웨이**를 선택합니다.

   1. 생성한 VPC의 NAT 게이트웨이를 선택합니다. VPC ID를 사용하여 올바른 NAT 게이트웨이를 식별합니다.

   1. **작업**에서 **NAT 게이트웨이 삭제(Delete NAT gateway)**를 선택합니다.

   1. 확인 페이지에서 **delete**를 입력하고 **삭제**를 선택합니다.

1. VPC를 삭제합니다.

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

   1. **VPC 대시보드**를 선택한 다음 **VPC**를 선택합니다.

   1. 삭제하려는 VPC를 선택합니다(예:**tutorial-dual-stack-vpc**).

   1. **작업**에서 **VPC 삭제**를 선택합니다.

      확인 페이지에는 VPC와 연결된 서브넷을 포함하여 삭제될 VPC와 연결된 다른 리소스가 표시됩니다.

   1. 확인 페이지에서 **delete**를 입력하고 **삭제**를 선택합니다.

1. 탄력적 IP 주소를 릴리스합니다.

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

   1. **EC2 대시보드**를 선택한 다음 **탄력적 IP 주소**를 선택합니다.

   1. 릴리스하려는 탄력적 IP 주소를 선택합니다.

   1. **작업(Actions)**에서 **탄력적 IP 주소 릴리스(Release Elastic IP addresses)**를 선택합니다.

   1. 확인 페이지에서 **릴리스**를 선택합니다.

# VPC에 있지 않은 DB 인스턴스를 VPC로 이동
<a name="USER_VPC.Non-VPC2VPC"></a>

EC2-Classic 플랫폼 상의 일부 레거시 DB 인스턴스는 VPC에서 실행되지 않습니다. DB 인스턴스가 VPC 내에 있지 않을 경우 AWS Management Console을 사용하여 DB 인스턴스를 VPC 내로 손쉽게 이동할 수 있습니다. VPC에 있지 않은 DB 인스턴스를 VPC 내로 이동하려면 먼저 VPC를 만들어야 합니다.


|  | 
| --- |
| EC2-Classic은 2022년 8월 15일에 사용 중지되었습니다. EC2-Classic에서 VPC로 마이그레이션하지 않은 경우 가능한 한 빨리 마이그레이션하는 것이 좋습니다. 자세한 내용은 Amazon EC2 사용 설명서의 [EC2-Classic에서 VPC로 마이그레이션](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html) 및 블로그 [EC2-Classic Networking is Retiring – Here’s How to Prepare](https://aws.amazon.com/blogs/aws/ec2-classic-is-retiring-heres-how-to-prepare/)를 참조하세요. | 

**중요**  
신규 Amazon RDS 고객이거나, 전에는 DB 인스턴스를 생성한 적이 전혀 없거나, 전에 사용한 적 없는 AWS 리전에서 DB 인스턴스를 생성하는 경우, 거의 모든 경우에 *EC2-VPC* 플랫폼에 있고 기본 VPC가 생성됩니다. VPC의 DB 인스턴스 작업에 대한 자세한 내용은 [VPC에서 DB 인스턴스를 사용한 작업](USER_VPC.WorkingWithRDSInstanceinaVPC.md)을(를) 참조하세요.

다음 단계에 따라 DB 인스턴스에 대한 VPC를 만듭니다.
+ [1단계: VPC 생성](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.CreatingVPC)
+  [2단계: DB 서브넷 그룹 만들기](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.CreateDBSubnetGroup)
+  [3단계: VPC 보안 그룹 만들기](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.CreateVPCSecurityGroup)

VPC를 만든 후 다음 단계에 따라 DB 인스턴스를 VPC 내로 이동합니다.
+ [DB 인스턴스에 대한 VPC 업데이트](USER_VPC.VPC2VPC.md)

마이그레이션 직전에 DB 인스턴스의 백업을 생성하는 것이 좋습니다. 이렇게 하면 마이그레이션이 실패할 경우 데이터를 복원할 수 있습니다. 자세한 내용은 [데이터 백업, 복원 및 내보내기](CHAP_CommonTasks.BackupRestore.md) 섹션을 참조하세요.

다음은 DB 인스턴스를 VPC로 이동하는 데 따른 몇 가지 제한 사항입니다.
+ **이전 세대 DB 인스턴스 클래스** – 이전 세대 DB 인스턴스 클래스는 VPC 플랫폼에서 지원되지 않을 수 있습니다. DB 인스턴스를 VPC로 이동할 때 db.m3 또는 db.r3 DB 인스턴스 클래스를 선택합니다. DB 인스턴스를 VPC로 이동한 후 이후 DB 인스턴스 클래스를 사용하도록 DB 인스턴스를 확장할 수 있습니다. VPC 지원 인스턴스 클래스의 전체 목록은 [Amazon RDS 인스턴스 유형](https://aws.amazon.com/rds/instance-types/)을 참조하세요.
+ **다중 AZ** – VPC에 있지 않은 다중 AZ DB 인스턴스를 VPC로 이동하는 것은 현재 지원되지 않습니다. DB 인스턴스를 VPC로 이동하려면 단일 AZ 배포가 되도록 먼저 DB 인스턴스를 수정합니다. **다중 AZ 배포** 설정을 [**아니오(No)**]로 변경합니다. DB 인스턴스를 VPC로 이동한 후 이를 다시 수정하여 다중 AZ 배포로 만듭니다. 자세한 내용은 [Amazon RDS DB 인스턴스 수정](Overview.DBInstance.Modifying.md) 섹션을 참조하세요.
+ **읽기 전용 복제본** – VPC에 있지 않은 읽기 전용 복제본을 포함한 DB 인스턴스를 VPC로 이동하는 것은 현재 지원되지 않습니다. DB 인스턴스를 VPC로 이동하려면 먼저 읽기 전용 복제본을 모두 삭제합니다. DB 인스턴스를 VPC로 이동한 후 읽기 전용 복제본을 다시 생성합니다. 자세한 내용은 [DB 인스턴스 읽기 전용 복제본 작업](USER_ReadRepl.md) 섹션을 참조하세요.
+ **옵션 그룹** – DB 인스턴스를 VPC로 이동하고 DB 인스턴스에서 사용자 지정 옵션 그룹을 사용하는 경우 DB 인스턴스와 연결된 옵션 그룹을 변경합니다. 옵션 그룹은 플랫폼마다 특정하며, VPC로 이동하는 것은 플랫폼의 변경에 해당합니다. 이런 경우에서 사용자 지정 옵션 그룹을 사용하려면 기본 VPC 옵션 그룹을 DB 인스턴스에 할당하거나, 이동하려는 대상 VPC에 있는 다른 DB 인스턴스에서 사용되는 옵션 그룹을 할당하거나, 새 옵션 그룹을 만들어 DB 인스턴스에 할당합니다. 자세한 내용은 [옵션 그룹 작업](USER_WorkingWithOptionGroups.md) 섹션을 참조하세요.

## 가동 중지를 최소화하면서 VPC에 없는 DB 인스턴스를 VPC로 이동하는 방법
<a name="USER_VPC.Non-VPC2VPC.Minimal-Downtime"></a>

다음 방법을 사용하여 가동 중지를 최소화하면서 VPC에 없는 DB 인스턴스를 VPC로 이동할 수 있습니다. 이러한 방법은 원본 DB 인스턴스의 중단을 최소화하고 마이그레이션 중에 사용자 트래픽을 처리하도록 허용합니다. 그러나 VPC로 마이그레이션하는 데 필요한 시간은 데이터베이스 크기 및 라이브 워크로드 특성에 따라 달라집니다.
+ **AWS Database Migration Service(AWS DMS)** - AWS DMS를 사용하면 소스 DB 인스턴스가 완전히 작동하는 동안 데이터의 라이브 마이그레이션을 수행할 수 있지만 제한된 DDL 문 세트만 복제합니다. AWS DMS는 인덱스, 사용자, 권한, 저장 프로시저, 테이블 데이터와 직접 관련되지 않은 기타 데이터베이스 변경 사항과 같은 항목을 전파하지 않습니다. 또한 AWS DMS에서는 초기 DB 인스턴스 생성에 RDS 스냅샷을 자동으로 사용하지 않으므로 마이그레이션 시간이 늘어날 수 있습니다. 자세한 내용은 [AWS Database Migration Service](https://aws.amazon.com/dms/)을 참조하세요.
+ **DB 스냅샷 복원 또는 특정 시점 복구** – DB 인스턴스의 스냅샷을 복원하거나 DB 인스턴스를 특정 시점으로 복원하여 DB 인스턴스를 VPC로 이동할 수 있습니다. 자세한 내용은 [DB 인스턴스 복원](USER_RestoreFromSnapshot.md) 및 [Amazon RDS에서 DB 인스턴스를 지정된 시간으로 복원](USER_PIT.md) 단원을 참조하세요.