

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

# CodeDeploy용 Amazon EC2 인스턴스 생성(CloudFormation 템플릿)
<a name="instances-ec2-create-cloudformation-template"></a>

 CloudFormation 템플릿을 사용하여 Amazon Linux 또는 Windows Server를 실행하는 Amazon EC2 인스턴스를 빠르게 시작할 수 있습니다. AWS CLI, CodeDeploy 콘솔 또는 AWS APIs를 사용하여 템플릿으로 인스턴스를 시작할 수 있습니다. 템플릿은 인스턴스를 시작하는 것 외에도 다음을 수행합니다.
+ 인스턴스에 CodeDeploy 배포에 참여할 수 있는 권한을 부여 CloudFormation 하도록 지시합니다.
+ 배포 중에 CodeDeploy가 인스턴스를 찾을 수 있도록 인스턴스에 태그를 지정합니다.
+ 인스턴스에 CodeDeploy 에이전트를 설치하고 실행합니다.

Amazon EC2 인스턴스를 설정 CloudFormation 하기 위해를 사용할 필요는 없습니다. [CodeDeploy용 인스턴스 작업](instances.md)에서 다른 방법을 확인해 보세요.

Ubuntu Server 또는 Red Hat Enterprise Linux(RHEL)를 실행하는 Amazon EC2 인스턴스에는 CloudFormation 템플릿을 제공하지 않습니다.

**Topics**
+ [시작하기 전 준비 사항](#instances-ec2-create-cloudformation-template-before)
+ [CloudFormation 템플릿을 사용하여 Amazon EC2 인스턴스 시작(콘솔)](#instances-ec2-create-cloudformation-template-console)
+ [CloudFormation 템플릿을 사용하여 Amazon EC2 인스턴스 시작(AWS CLI)](#instances-ec2-create-cloudformation-template-cli)

## 시작하기 전 준비 사항
<a name="instances-ec2-create-cloudformation-template-before"></a>

 CloudFormation 템플릿을 사용하여 Amazon EC2 인스턴스를 시작하려면 먼저 다음 단계를 완료해야 합니다.

1. [1단계: 설정](getting-started-setting-up.md)에 설명된 대로 관리 사용자를 생성했는지 확인합니다. 사용자에게 다음과 같은 최소 권한이 있는지 다시 확인하고 누락된 권한을 추가합니다.
   + cloudformation:\$1
   + codedeploy:\$1
   + ec2:\$1
   + iam:AddRoleToInstanceProfile
   + iam:CreateInstanceProfile
   + iam:CreateRole
   + iam:DeleteInstanceProfile
   + iam:DeleteRole
   + iam:DeleteRolePolicy
   + iam:GetRole
   + iam:DeleteRolePolicy
   + iam:PutRolePolicy
   + iam:RemoveRoleFromInstanceProfile

1. Amazon Linux를 실행하는 Amazon EC2 인스턴스에 대한 SSH 액세스 또는 Windows 서버를 실행하는 인스턴스에 대한 RDP 액세스를 활성화하려면 인스턴스 키 페어가 있는지 확인합니다.

   키 페어 이름을 확인하려면 [https://console.aws.amazon.com/ec2](https://console.aws.amazon.com/ec2)에서 Amazon EC2 콘솔을 엽니다. 탐색 창의 **네트워크 및 보안**에서 **키 페어**를 선택하고 목록에 표시되는 키 페어의 이름을 기록해 둡니다.

   새 키 페어를 생성하려면 [Amazon EC2를 사용하여 키 페어 생성](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#having-ec2-create-your-key-pair)을 참조하세요. *AWS 일반 참조*의 [리전 및 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/rande.html#codedeploy_region)에 나열된 리전 중 하나에 키 페어가 생성되어야 합니다. 그렇지 않으면 CodeDeploy에서 인스턴스 키 페어를 사용할 수 없습니다.

## CloudFormation 템플릿을 사용하여 Amazon EC2 인스턴스 시작(콘솔)
<a name="instances-ec2-create-cloudformation-template-console"></a>

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) CloudFormation 콘솔을 엽니다.
**중요**  
에서 사용한 AWS Management Console 것과 동일한 계정으로에 로그인합니다[CodeDeploy 시작하기](getting-started-codedeploy.md). 탐색 모음의 리전 선택기에서 *AWS 일반 참조*의 [리전 및 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/rande.html#codedeploy_region)에 나열된 리전 중 하나를 선택합니다. CodeDeploy는 이러한 리전만 지원합니다.

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

1. **템플릿 선택(Choose a template)**에서 **Amazon S3 템플릿 URL 지정(Specify an Amazon S3 template URL)**을 선택합니다. 상자에 해당 리전의 CloudFormation 템플릿 위치를 입력한 **후 다음을** 선택합니다.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/codedeploy/latest/userguide/instances-ec2-create-cloudformation-template.html)

1. **스택 이름(Stack name)** 상자에 스택 이름(예: **CodeDeployDemoStack**)을 입력합니다.

1. **파라미터(Parameters)**에 다음을 입력한 후 **다음(Next)**을 선택합니다.
   + **InstanceCount**에 시작하려는 인스턴스의 수를 입력합니다. (기본값 **1**을 그대로 두는 것을 권장합니다.)
   + **InstanceType**에 시작할 인스턴스 유형을 입력합니다(또는 기본값 **t1.micro**를 그대로 유지).
   + **KeyPairName**에 인스턴스 키 페어 이름을 입력합니다. 키 페어 파일 확장명은 제외하고 키 페어 이름만 입력합니다.
   + **OperatingSystem** 상자에 **Windows**를 입력하여 Windows 서버를 실행하는 인스턴스를 시작합니다(또는 기본값 **Linux**를 그대로 유지).
   + **SSHLocation**에서, SSH 또는 RDP를 사용하여 인스턴스에 연결하는 데 사용할 IP 주소 범위를 입력합니다(또는 기본값 **0.0.0.0/0**을 그대로 유지).
**중요**  
기본값 **0.0.0.0/0**은 데모용으로만 제공됩니다. CodeDeploy에서는 Amazon EC2 인스턴스에 포트에 대한 무제한 액세스를 요구하지 않습니다. SSH(및 HTTP) 포트에 대한 액세스를 제한할 것을 모범 사례로 권장합니다. 자세한 내용은 [Amazon EC2 인스턴스의 보안 유지를 위한 팁](https://aws.amazon.com/articles/1233)을 참조하세요.
   + **TagKey**에 CodeDeploy가 배포 중에 인스턴스를 식별하는 데 사용할 인스턴스 태그 키를 입력합니다(또는 기본값 **이름(Name)**을 그대로 둠).
   + **TagValue**에 CodeDeploy가 배포 중에 인스턴스를 식별하는 데 사용할 인스턴스 태그 값을 입력합니다(또는 기본값 **CodeDeployDemo**를 그대로 유지).

1. **옵션(Options)** 페이지에서 옵션 상자를 비워 두고 **다음(Next)**을 선택합니다.
**중요**  
CloudFormation 태그는 CodeDeploy 태그와 다릅니다.는 태그를 CloudFormation 사용하여 인프라 관리를 간소화합니다. CodeDeploy에서는 태그를 사용하여 Amazon EC2 인스턴스를 식별합니다. **파라미터 지정(Specify Parameters)** 페이지에서 CodeDeploy 태그를 지정했습니다.

1. **검토** 페이지의 **기능**에서 **가 IAM 리소스를 생성할 CloudFormation 수 있음을 승인합니다** 상자를 선택한 다음 **생성을** 선택합니다.

    CloudFormation 가 스택을 생성하고 Amazon EC2 인스턴스를 시작한 후 콘솔에서 CloudFormation **CREATE\$1COMPLETE**가 **상태** 열에 표시됩니다. 이 프로세스는 몇 분 정도 걸릴 수 있습니다.

Amazon EC2 인스턴스에서 CodeDeploy 에이전트가 실행 중인지 확인하려면 [CodeDeploy 에이전트 작업 관리](codedeploy-agent-operations.md)를 확인한 다음 [CodeDeploy를 사용하여 애플리케이션 생성](applications-create.md)로 진행합니다.

## CloudFormation 템플릿을 사용하여 Amazon EC2 인스턴스 시작(AWS CLI)
<a name="instances-ec2-create-cloudformation-template-cli"></a>

1. **create-stack** 명령을 호출할 때 CloudFormation 템플릿을 사용합니다. 이 스택으로 CodeDeploy 에이전트가 설치된 새 Amazon EC2 인스턴스를 시작합니다.

   Amazon Linux를 실행하는 Amazon EC2 인스턴스 시작하기:

   ```
   aws cloudformation create-stack \
     --stack-name CodeDeployDemoStack \
     --template-url templateURL \
     --parameters ParameterKey=InstanceCount,ParameterValue=1 ParameterKey=InstanceType,ParameterValue=t1.micro \
       ParameterKey=KeyPairName,ParameterValue=keyName ParameterKey=OperatingSystem,ParameterValue=Linux \
       ParameterKey=SSHLocation,ParameterValue=0.0.0.0/0 ParameterKey=TagKey,ParameterValue=Name \
       ParameterKey=TagValue,ParameterValue=CodeDeployDemo \
     --capabilities CAPABILITY_IAM
   ```

   Windows Server를 실행하는 Amazon EC2 인스턴스 시작: 

   ```
   aws cloudformation create-stack --stack-name CodeDeployDemoStack --template-url template-url --parameters ParameterKey=InstanceCount,ParameterValue=1 ParameterKey=InstanceType,ParameterValue=t1.micro ParameterKey=KeyPairName,ParameterValue=keyName ParameterKey=OperatingSystem,ParameterValue=Windows ParameterKey=SSHLocation,ParameterValue=0.0.0.0/0 ParameterKey=TagKey,ParameterValue=Name ParameterKey=TagValue,ParameterValue=CodeDeployDemo --capabilities CAPABILITY_IAM
   ```

   *keyName*은 인스턴스 키 페어의 이름입니다. 키 페어 파일 확장명은 제외하고 키 페어 이름만 입력합니다.

   *template-url*은 해당 리전의 CloudFormation 템플릿 위치입니다.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/codedeploy/latest/userguide/instances-ec2-create-cloudformation-template.html)

   이 명령은 지정된 Amazon S3 버킷의 CloudFormation 템플릿을 **CodeDeployDemoStack**사용하여 라는 CloudFormation 스택을 생성합니다. Amazon EC2 인스턴스는 t1.micro 인스턴스 유형을 따르지만 모든 유형을 사용할 수 있습니다. **CodeDeployDemo** 값으로 태그 지정되어 있지만 모든 값을 태그 지정할 수 있습니다. 키 페어가 적용된 지정된 인스턴스가 있습니다.

1. **describe-stacks** 명령을 호출하여 라는 CloudFormation 스택이 성공적으로 생성**CodeDeployDemoStack**되었는지 확인합니다.

   ```
   aws cloudformation describe-stacks --stack-name CodeDeployDemoStack --query "Stacks[0].StackStatus" --output text
   ```

   `CREATE_COMPLETE` 값이 반환될 때까지 진행하지 마세요.

Amazon EC2 인스턴스에서 CodeDeploy 에이전트가 실행 중인지 확인하려면 [CodeDeploy 에이전트 작업 관리](codedeploy-agent-operations.md) 섹션을 확인한 다음 [CodeDeploy를 사용하여 애플리케이션 생성](applications-create.md)로 진행합니다.