

# 자습서: 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/AuroraUserGuide/images/con-VPC-sec-grp-aurora.png)


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

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

이 자습서에서는 Amazon Aurora DB 클러스터용 VPC 구성에 대해 설명합니다. 이 VPC 시나리오에 대한 웹 서버를 생성하는 방법을 보여 주는 자습서는 [자습서: 웹 서버 및 Amazon Aurora 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 인스턴스와의 자동 네트워크 연결 구성](Aurora.CreateInstance.md#Aurora.CreateInstance.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 옵션) - 기본값을 유지합니다.

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 Aurora DB 클러스터 생성](TUT_WebAppWithRDS.md)을 완료하기 위해 이 VPC를 생성한 경우 [Amazon Aurora DB 클러스터 생성](CHAP_Tutorials.WebServerDB.CreateDBCluster.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**를 입력하고 **삭제**를 선택합니다.