

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 예제: Amazon RDS를 사용하여 VPC에서 Elastic Beanstalk 시작
<a name="vpc-rds"></a>

이 단원에서는 NAT 게이트웨이를 사용하여 VPC에서 Amazon RDS로 Elastic Beanstalk 애플리케이션을 배포하는 작업을 안내합니다.

인프라는 다음 다이어그램과 비슷합니다.

![\[Amazon RDS 기반의 Elastic Beanstalk 및 VPC 토폴로지에 대한 다이어그램\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-vpc-rds-topo-ngw.png)


**참고**  
이전에 애플리케이션으로 DB 인스턴스를 사용해 본 적이 없는 경우, [인스턴스 한 개를 테스트 환경에 추가](using-features.managing.db.md)하고 [외부 DB 인스턴스에 연결](AWSHowTo.RDS.md)한 후 VPC 구성을 목록에 추가합니다.

## 퍼블릭 및 프라이빗 서브넷이 있는 VPC 생성
<a name="vpc-rds-create"></a>

[Amazon VPC 콘솔](https://console.aws.amazon.com/vpc/)을 사용하여 VPC를 생성할 수 있습니다.

**VPC를 생성하려면**

1. [Amazon VPC 콘솔](https://console.aws.amazon.com/vpc/)에 로그인합니다.

1. 탐색 창에서 **VPC 대시보드**를 선택합니다. 그 다음에 [**Create VPC**]를 선택합니다.

1. **퍼블릭 및 프라이빗 서브넷이 있는 VPC**를 선택한 후 **선택**을 누릅니다.  
![\[퍼블릭 및 프라이빗 서브넷이 있는 VPC를 선택한 후 "선택"을 선택합니다.\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/Case2_Wizard_Page2.png)

1. Elastic Load Balancing 로드 밸런서와 Amazon EC2 인스턴스는 서로 통신할 수 있도록 동일한 가용 영역에 있어야 합니다. 각 **가용 영역** 목록에서 동일한 가용 영역을 선택합니다.  
![\[프라이빗 서브넷과 퍼블릭 서브넷에 대해 동일한 가용 영역을 선택합니다.\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/Case2_Wizard_Confirmation2.png)

1. NAT 게이트웨이에 대해 탄력적 IP 주소를 선택합니다.

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

   마법사가 VPC, 서브넷, 인터넷 게이트웨이를 생성하기 시작합니다. 또한 기본 라우팅 테이블을 업데이트하고 사용자 지정 라우팅 테이블을 생성합니다. 마지막으로 마법사는 퍼블릭 서브넷에 NAT 게이트웨이를 생성합니다.
**참고**  
NAT 게이트웨이 대신 퍼블릭 서브넷에서 NAT 인스턴스를 시작하기로 선택할 수 있습니다. 자세한 내용은 *Amazon VPC 사용 설명서*의 [시나리오 2: 퍼블릭 서브넷과 프라이빗 서브넷이 있는 VPC(NAT)](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Scenario2.html)를 참조하세요.

1. VPC가 성공적으로 만들어진 후 VPC ID를 가져옵니다. 다음 단계에서 이 값을 사용합니다. VPC ID를 보려면 [Amazon VPC 콘솔](https://console.aws.amazon.com/vpc/) 왼쪽 창에서 **VPC**를 선택합니다.  
![\[Amazon VPC 콘솔에 VPC ID가 표시됩니다.\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-vpc-id.png)

## DB 서브넷 그룹 만들기
<a name="vpc-rds-subnet"></a>

VPC에 대한 DB 서브넷 그룹은 백엔드 RDS DB 인스턴스에 대해 지정할 수 있는 서브넷(일반적으로 프라이빗 서브넷)의 모음입니다. 각 DB 서브넷 그룹에는 지정된 AWS 리전의 모든 가용 영역에 대해 하나 이상의 서브넷이 있어야 합니다. 자세히 알아보려면 [VPC에서 서브넷 만들기](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#AddaSubnet) 단원을 참조하세요.

**DB 서브넷 그룹 만들기**

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

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

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

1. **이름**을 선택한 후 DB 서브넷 그룹의 이름을 입력합니다.

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

1. **VPC**에서 해당 VPC의 ID를 선택합니다.

1. **서브넷 추가**에서 **이 VPC와 관련된 모든 서브넷 추가**를 선택합니다.  
![\[VPC와 관련된 모든 서브넷을 추가합니다.\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-vpc-rds-addsubnets.png)

1. 모두 마쳤으면 [**Create **]를 선택합니다.

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

## Elastic Beanstalk에 배포
<a name="vpc-rds-create-env"></a>

VPC를 설정한 후 VPC 내에 환경을 생성하고 Elastic Beanstalk에 애플리케이션을 배포할 수 있습니다. Elastic Beanstalk 콘솔을 사용하거나 도구 키트, AWS CLI EB CLI 또는 Elastic Beanstalk API를 AWS 사용할 수 있습니다. Elastic Beanstalk 콘솔을 사용하는 경우 `.war` 또는 `.zip` 파일을 업로드하고 마법사 내에서 VPC 설정을 선택하기만 하면 됩니다. 그러면 Elastic Beanstalk가 VPC 내에 환경을 생성하고 애플리케이션을 배포합니다. 또는 AWS 도구 키트, AWS CLI EB CLI 또는 Elastic Beanstalk API를 사용하여 애플리케이션을 배포할 수 있습니다. 이를 위해 구성 파일에 VPC 옵션 설정을 정의하고 소스 번들로 이 파일을 배포해야 합니다. 이 주제는 두 방법 모두에 대한 지침을 제공합니다.

### Elastic Beanstalk 콘솔을 사용하여 배포
<a name="vpc-rds-new-console"></a>

Elastic Beanstalk 콘솔이 VPC 내에 새 환경을 생성하는 과정을 안내합니다. `.war` 파일(Java 애플리케이션용) 또는 `.zip` 파일(다른 모든 애플리케이션용)을 제공해야 합니다. Elastic Beanstalk 환경 마법사의 **VPC 구성(VPC Configuration)** 페이지에서 다음을 선택해야 합니다.

**VPC**  
해당 VPC를 선택합니다.

**VPC 보안 그룹**  
위에서 만든 인스턴스 보안 그룹을 선택합니다.

**ELB 표시 여부**  
로드 밸런서를 일반에 공개해야 하는 경우 `External`을 선택하고 로드 밸런서를 VPC 내에서만 제공해야 하는 경우 `Internal`을 선택합니다.

로드 밸런서와 EC2 인스턴스에 대해 서브넷을 선택합니다. 로드 밸런서에 퍼블릭 서브넷을, Amazon EC2 인스턴스에 프라이빗 서브넷을 선택해야 합니다. 기본적으로 VPC 생성 마법사는 `10.0.0.0/24`에서 퍼블릭 서브넷을, `10.0.1.0/24`에서 프라이빗 서브넷을 생성합니다.

[Amazon VPC 콘솔](https://console.aws.amazon.com/vpc/)에서 **서브넷**을 선택하여 서브넷 ID를 볼 수 있습니다.

![\[VPC의 서브넷 ID\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-vpc-subnets.png)


### AWS 도구 키트, EB CLI AWS CLI또는 API를 사용하여 배포
<a name="vpc-rds-new-options"></a>

 AWS 도구 키트, EB CLI AWS CLI또는 API를 사용하여 애플리케이션을 Elastic Beanstalk에 배포할 때 파일에서 VPC 옵션 설정을 지정하고 소스 번들과 함께 배포할 수 있습니다. 자세한 정보는 [구성 파일(`.ebextensions`)을 사용하여 고급 환경 사용자 지정](ebextensions.md)을 참조하세요.

옵션 설정을 업데이트할 때 최소한 다음을 지정해야 합니다.
+ **VPCId** - VPC의 ID를 포함합니다.
+ **Subnets** - Auto Scaling 그룹 서브넷의 ID를 포함합니다. 이 예에서 이는 프라이빗 서브넷의 ID입니다.
+ **ELBSubnets** - 로드 밸런서에 대한 서브넷의 ID를 포함합니다. 이 예에서 이는 퍼블릭 서브넷의 ID입니다.
+ **SecurityGroups** - 보안 그룹의 ID를 포함합니다.
+ **DBSubnets** - DB 서브넷의 ID를 포함합니다.
**참고**  
DB 서브넷을 사용하는 경우 VPC에 추가 서브넷을 생성하여 AWS 리전의 모든 가용 영역을 포함해야 합니다.

선택 사항으로 다음 정보도 지정할 수 있습니다.
+ **ELBScheme** - VPC 내부에 로드 밸런서를 만들어 Elastic Beanstalk 애플리케이션이 VPC 외부에서 액세스할 수 없도록 하려면 `internal`을 지정합니다.

다음은 VPC에 Elastic Beanstalk 애플리케이션을 배포할 때 사용할 수 있는 옵션 설정의 예입니다. VPC 옵션 설정에 대한 자세한 내용(지정 방법, 기본값 및 유효한 값의 예 포함)은 [구성 옵션](command-options.md)의 **aws:ec2:vpc** 네임스페이스 표를 참조하세요.

```
option_settings:
  - namespace: aws:autoscaling:launchconfiguration
    option_name: EC2KeyName
    value: ec2keypair
    
  - namespace: aws:ec2:vpc
    option_name: VPCId
    value: vpc-170647c
    
  - namespace: aws:ec2:vpc
    option_name: Subnets
    value: subnet-4f195024
    
  - namespace: aws:ec2:vpc
    option_name: ELBSubnets
    value: subnet-fe064f95
    
  - namespace: aws:ec2:vpc
    option_name: DBSubnets
    value: subnet-fg148g78
    
  - namespace: aws:autoscaling:launchconfiguration
    option_name: InstanceType
    value: m1.small
    
  - namespace: aws:autoscaling:launchconfiguration
    option_name: SecurityGroups
    value: sg-7f1ef110
```

**참고**  
DB 서브넷을 사용할 때는 AWS VPC에 리전의 모든 가용 영역을 포괄하는 서브넷이 있어야 합니다.