

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

# CodeDeploy용 Amazon EC2 인스턴스 작업
<a name="instances-ec2"></a>

Amazon EC2 인스턴스는 Amazon Elastic Compute Cloud를 사용하여 생성하고 구성하는 가상 컴퓨팅 환경입니다. Amazon EC2는 AWS 클라우드에서 확장 가능한 컴퓨팅 용량을 제공합니다. Amazon EC2를 사용하여 CodeDeploy 배포에 필요한 만큼 많거나 적은 수의 가상 서버를 시작할 수 있습니다.

Amazon EC2에 대한 자세한 내용은 [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/)를 참조하세요.

다음 지침에서는 CodeDeploy 배포에 사용하도록 구성된 Amazon EC2 인스턴스를 생성하고 구성하는 방법을 안내합니다.

**Topics**
+ [CodeDeploy를 위한 Amazon EC2 인스턴스 생성](instances-ec2-create.md)
+ [Amazon EC2 인스턴스 생성(CloudFormation 템플릿)](instances-ec2-create-cloudformation-template.md)
+ [Amazon EC2 인스턴스 구성](instances-ec2-configure.md)

# CodeDeploy용 Amazon EC2 인스턴스 생성(AWS CLI 또는 Amazon EC2 콘솔)
<a name="instances-ec2-create"></a>

다음 지침은 CodeDeploy 배포에 사용하도록 구성된 새 Amazon EC2 인스턴스를 시작하는 방법을 안내합니다.

 CloudFormation 템플릿을 사용하여 CodeDeploy 배포에 사용하도록 이미 구성된 Amazon Linux 또는 Windows Server를 실행하는 Amazon EC2 인스턴스를 시작할 수 있습니다. Ubuntu Server 또는 Red Hat Enterprise Linux(RHEL)를 실행하는 Amazon EC2 인스턴스에는 CloudFormation 템플릿을 제공하지 않습니다. 템플릿 사용 대신 적용할 수 있는 방법은 [CodeDeploy용 인스턴스 작업](instances.md) 단원을 참조하세요.

Amazon EC2 콘솔 AWS CLI또는 Amazon EC2 APIs를 사용하여 Amazon EC2 인스턴스를 시작할 수 있습니다.

## Amazon EC2 인스턴스 시작(콘솔)
<a name="instances-ec2-create-console"></a>

### 사전 조건
<a name="instances-ec2-create-console-prerequisites"></a>

아직 수행하지 않은 경우의 지침에 따라 [CodeDeploy 시작하기](getting-started-codedeploy.md)를 설정 및 구성 AWS CLI 하고 IAM 인스턴스 프로파일을 생성합니다.

### Amazon EC2 인스턴스 시작하기
<a name="instances-ec2-create-console-steps"></a>

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

1. 탐색 창에서 **인스턴스**를 선택한 후 **인스턴스 시작**을 선택합니다.

1. **1단계: Amazon Machine Image(AMI) 선택** 페이지의 **빠른 시작** 탭에서 사용하려는 운영 체제와 버전을 찾은 다음 **선택**을 선택합니다. CodeDeploy에서 지원하는 Amazon EC2 AMI 운영 체제를 선택해야 합니다. 자세한 내용은 [CodeDeploy 에이전트에서 지원하는 운영 체제](codedeploy-agent.md#codedeploy-agent-supported-operating-systems) 단원을 참조하십시오.

1. **2단계: 인스턴스 유형 선택(Step 2: Choose an Instance Type)** 페이지에서 사용 가능한 Amazon EC2 인스턴스 유형을 선택한 후 **다음: 인스턴스 세부 정보 구성(Next: Configure Instance Details)**을 선택합니다.

1. **3단계: 인스턴스 세부 정보 구성(Step 3: Configure Instance Details)** 페이지의 **IAM 역할(IAM role)** 목록에서 [4단계: Amazon EC2 인스턴스에 대한 IAM 인스턴스 프로파일 만들기](getting-started-create-iam-instance-profile.md)에서 생성한 IAM 인스턴스 역할을 선택합니다. 제안된 역할 이름을 사용한 경우 **CodeDeployDemo-EC2-Instance-Profile**을 선택합니다. 고유의 역할 이름을 생성한 경우 해당 이름을 선택합니다.
**참고**  
기본 Virtual Private Cloud(VPC)가 **Network**(네트워크) 목록에 표시되지 않는 경우 Amazon VPC 및 서브넷을 선택하거나 생성해야 합니다. **새 VPC 생성**이나 **새 서브넷 생성** 또는 둘 다 선택합니다. 자세한 내용은 [VPC 및 서브넷](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html)을 참조하세요.

1. **다음: 스토리지 추가**를 선택합니다.

1. **4단계: 스토리지 추가** 페이지의 설정을 그대로 두고 **다음: 태그 추가**를 선택합니다.

1. **5단계: 태그 추가** 페이지에서 **태그 추가**를 선택합니다.

1.  **키** 상자에 **Name**을 입력합니다. **값** 상자에 **CodeDeployDemo**를 입력합니다.
**중요**  
**키** 및 **값** 상자의 내용은 대/소문자를 구분합니다.

1. **다음: 보안 그룹 구성(Next: Configure Security Group)**을 선택합니다.

1. **6단계: 보안 그룹 구성** 페이지에서 **새 보안 그룹 생성** 옵션을 선택된 채로 둡니다.

   SSH 역할 기본값은 Amazon Linux, Ubuntu Server 또는 RHEL을 실행하는 Amazon EC2 인스턴스로 구성되어 있습니다. RDP 역할 기본값은 Windows Server를 실행하는 Amazon EC2 인스턴스로 구성되어 있습니다.

1. HTTP 포트를 열려면 **규칙 추가** 버튼을 선택하고 **유형** 드롭다운 목록에서 **HTTP**를 선택합니다. **소스**의 기본값 **사용자 지정 0.0.0.0/0**을 그대로 두고, **검토 및 시작**을 선택합니다.
**참고**  
프로덕션 환경에서는 **위치 무관 0.0.0.0/0(Anywhere 0.0.0.0/0)**을 지정하는 대신 SSH, RDP 및 HTTP 포트에 대한 액세스를 제한하는 것이 좋습니다. CodeDeploy는 무제한 포트 액세스와 HTTP 액세스가 필요하지 않습니다. 자세한 내용은 [Amazon EC2 인스턴스의 보안 유지를 위한 팁](https://aws.amazon.com/articles/1233)을 참조하세요.

   **범용(SSD)에서 부팅** 대화 상자가 표시되면 해당 지침을 따른 후 **다음**을 선택합니다.

1. **7단계: 인스턴스 시작 검토** 페이지의 설정을 그대로 두고 **시작**을 선택합니다.

1. **기존 키 페어 선택 또는 새 키 페어 생성** 대화 상자에서 **기존 키 페어 선택** 또는 **새 키 페어 생성**을 선택합니다. Amazon EC2 인스턴스 키 페어를 이미 구성했다면 여기에서 선택할 수 있습니다.

   아직 Amazon EC2 인스턴스 키 페어가 없다면 **새 키 페어 생성(Create a new key pair)**을 선택하고 식별 가능한 이름을 지정합니다. **키 페어 다운로드(Download Key Pair)**를 선택하여 컴퓨터에 Amazon EC2 인스턴스 키 페어를 다운로드합니다.
**중요**  
SSH 또는 RDP를 사용하여 Amazon EC2 인스턴스에 액세스하려면 키 페어가 있어야 합니다.

1. **인스턴스 시작(Launch Instances)**을 선택합니다.

1. Amazon EC2 인스턴스의 ID를 선택합니다. 인스턴스가 시작되어 모든 검사를 통과할 때까지 기다리세요.

### CodeDeploy 에이전트 설치
<a name="instances-ec2-create-console-agent"></a>

CodeDeploy 배포에서 CodeDeploy 에이전트를 사용하기 전에 Amazon EC2 인스턴스에 에이전트를 설치해야 합니다. 자세한 내용은 [CodeDeploy 에이전트 설치](codedeploy-agent-operations-install.md) 단원을 참조하십시오.

**참고**  
콘솔에서 배포 그룹을 생성할 때 CodeDeploy 에이전트의 자동 설치 및 업데이트를 구성할 수 있습니다.

## Amazon EC2 인스턴스 시작하기(CLI)
<a name="instances-ec2-create-cli"></a>

### 사전 조건
<a name="instances-ec2-create-cli-prerequisites"></a>

아직 수행하지 않은 경우의 지침에 따라 [CodeDeploy 시작하기](getting-started-codedeploy.md)를 설정 및 구성 AWS CLI 하고 IAM 인스턴스 프로파일을 생성합니다.

### Amazon EC2 인스턴스 시작하기
<a name="instances-ec2-create-cli-steps"></a>

1. **Windows Server만 해당**: Windows Server를 실행하여 Amazon EC2 인스턴스를 만드는 경우 **create-security-group** 및 **authorize-security-group-ingress** 명령을 호출하여 RDP 액세스(기본값으로 허용되지 않음) 또는 HTTP 액세스를 허용하는 보안 그룹을 만듭니다. 예를 들어 *CodeDeployDemo-Windows-Security-Group*이라는 보안 그룹을 만들려면 다음 명령을 한 번에 하나씩 실행합니다.

   ```
   aws ec2 create-security-group --group-name CodeDeployDemo-Windows-Security-Group --description "For launching Windows Server images for use with CodeDeploy"
   ```

   ```
   aws ec2 authorize-security-group-ingress --group-name CodeDeployDemo-Windows-Security-Group --to-port 3389 --ip-protocol tcp --cidr-ip 0.0.0.0/0 --from-port 3389
   ```

   ```
   aws ec2 authorize-security-group-ingress --group-name CodeDeployDemo-Windows-Security-Group --to-port 80 --ip-protocol tcp --cidr-ip 0.0.0.0/0 --from-port 80
   ```
**참고**  
데모용으로 이 명령은 포트 3389를 통한 RDP 또는 포트 80을 통한 HTTP에 대한 무제한 액세스를 허용하는 보안 그룹을 만듭니다. RDP 및 HTTP 포트에 대한 액세스를 제한하는 것을 모범 사례로 권장합니다. CodeDeploy는 무제한 포트 액세스와 HTTP 액세스가 필요하지 않습니다. 자세한 내용은 [Amazon EC2 인스턴스의 보안 유지를 위한 팁](https://aws.amazon.com/articles/1233)을 참조하세요.

1. **run-instances** 명령을 호출하여 Amazon EC2 인스턴스를 생성하고 시작합니다.

   이 명령을 호출하기 전에 다음을 수집해야 합니다.
   + 인스턴스에 사용할 Amazon Machine Image(AMI)의 ID(*ami-id*). ID를 확인하려면 [적합한 AMI 찾기](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html)를 참조하세요.
   + 생성할 Amazon EC2 인스턴스 유형(*instance-type*)의 이름(예: `t1.micro`). [Amazon EC2 인스턴스 유형](https://aws.amazon.com/ec2/instance-types/)에서 목록을 확인하세요.
   + 리전에 적합한 CodeDeploy 에이전트 설치 파일이 저장되어 있는 Amazon S3 버킷에 액세스할 권한을 가진 IAM 인스턴스 프로파일의 이름.

     IAM 인스턴스 프로파일의 생성에 대한 자세한 내용은 [4단계: Amazon EC2 인스턴스에 대한 IAM 인스턴스 프로파일 만들기](getting-started-create-iam-instance-profile.md) 섹션을 참조하세요.
   + Amazon Linux, Ubuntu Server를 실행하는 Amazon EC2 인스턴스에 대한 SSH 액세스 또는 Windows Server를 실행하는 Amazon EC2 인스턴스에 대한 RHEL 또는 RDP 액세스를 가능하게 하는 Amazon EC2 인스턴스 키 페어의 이름(*key-name*).
**중요**  
키 페어 파일 확장명은 제외하고 키 페어 이름만 입력합니다. 예를 들어 *my-keypair.pem*이 아니라 *my-keypair*로 입력합니다.

     키 페어 이름을 확인하려면 [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에서 Amazon EC2 인스턴스 키 페어를 사용할 수 없습니다.

   **Amazon Linux, RHEL 및 Ubuntu Server용**

   **run-instances** 명령을 호출하여 Amazon Linux, Ubuntu Server 또는 RHEL을 실행하는 Amazon EC2 인스턴스를 시작하고 [4단계: Amazon EC2 인스턴스에 대한 IAM 인스턴스 프로파일 만들기](getting-started-create-iam-instance-profile.md)에서 생성된 IAM 인스턴스 프로파일을 연결합니다. 예:

   ```
   aws ec2 run-instances \
     --image-id ami-id \
     --key-name key-name \
     --count 1 \
     --instance-type instance-type \
     --iam-instance-profile Name=iam-instance-profile
   ```
**참고**  
이 명령은 Amazon EC2 인스턴스에 대해 여러 포트에 대한 액세스를 허용하는 보안 그룹 기본값을 만듭니다. 여기에는 SSH의 경우 포트 22, HTTP의 경우 포트 80을 통한 무제한 액세스가 포함됩니다. RDP 및 HTTP 포트에 대한 액세스를 제한하는 것을 모범 사례로 권장합니다. CodeDeploy에는 무제한 포트 액세스와 HTTP 포트 액세스가 필요하지 않습니다. 자세한 내용은 [Amazon EC2 인스턴스의 보안 유지를 위한 팁](https://aws.amazon.com/articles/1233)을 참조하세요.

   **Windows Server용**

   **run-instances** 명령을 호출하여 Windows Server를 실행하는 Amazon EC2 인스턴스를 시작하고 [4단계: Amazon EC2 인스턴스에 대한 IAM 인스턴스 프로파일 만들기](getting-started-create-iam-instance-profile.md)에서 생성한 IAM 인스턴스 프로파일을 연결하며, 1단계에서 생성한 보안 그룹의 이름을 지정합니다. 예:

   ```
   aws ec2 run-instances --image-id ami-id --key-name key-name --count 1 --instance-type instance-type --iam-instance-profile Name=iam-instance-profile --security-groups CodeDeploy-Windows-Security-Group
   ```

   이 명령은 지정된 IAM 인스턴스 프로파일에 따라 지정된 AMI, 키 페어, 인스턴스 유형으로 단일 Amazon EC2 인스턴스를 시작하고, 시작 시 지정된 스크립트를 실행합니다.

1. 출력에서 `InstanceID` 값을 기록해 둡니다. 이 값을 잊어버린 경우 Amazon EC2 인스턴스 키 페어에 대해 **describe-instances** 명령을 호출하여 나중에 확인할 수 있습니다.

   ```
   aws ec2 describe-instances --filters "Name=key-name,Values=keyName" --query "Reservations[*].Instances[*].[InstanceId]" --output text
   ```

   인스턴스 ID를 사용하여 **create-tags** 명령을 호출합니다. 이 명령은 Amazon EC2 인스턴스에 태그를 지정하여 이후 배포 중에 CodeDeploy가 인스턴스를 찾을 수 있도록 합니다. 다음 예제에서 태그 이름이 **CodeDeployDemo**지만, 원하는 대로 Amazon EC2 인스턴스 태그를 지정할 수 있습니다.

   ```
   aws ec2 create-tags --resources instance-id --tags Key=Name,Value=CodeDeployDemo
   ```

   하나의 인스턴스에 태그 여러 개를 동시에 적용할 수 있습니다. 예:

   ```
   aws ec2 create-tags --resources instance-id --tags Key=Name,Value=testInstance Key=Region,Value=West Key=Environment,Value=Beta
   ```

   Amazon EC2 인스턴스가 시작되어 모든 검사를 통과했는지 확인하려면, 인스턴스 ID를 사용하여 **describe-instance-status** 명령을 호출합니다.

   ```
   aws ec2 describe-instance-status --instance-ids instance-id --query "InstanceStatuses[*].InstanceStatus.[Status]" --output text 
   ```

인스턴스가 시작되어 모든 검사를 통과한 경우 출력에 `ok`가 표시됩니다.

### CodeDeploy 에이전트 설치
<a name="instances-ec2-create-console-agent"></a>

CodeDeploy 배포에서 CodeDeploy 에이전트를 사용하기 전에 Amazon EC2 인스턴스에 에이전트를 설치해야 합니다. 자세한 내용은 [CodeDeploy 에이전트 설치](codedeploy-agent-operations-install.md) 단원을 참조하십시오.

**참고**  
콘솔에서 배포 그룹을 생성할 때 CodeDeploy 에이전트의 자동 설치 및 업데이트를 구성할 수 있습니다.

# 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)로 진행합니다.

# CodeDeploy 작업을 위한 Amazon EC2 인스턴스 구성
<a name="instances-ec2-configure"></a>

이러한 지침은 CodeDeploy에 사용하기 위해 Amazon Linux, Ubuntu Server, Red Hat Enterprise Linux(RHEL) 또는 Windows Server를 실행하는 Amazon EC2 인스턴스 구성 방법을 안내합니다.

**참고**  
Amazon EC2 인스턴스가 없는 경우 CloudFormation 템플릿을 사용하여 Amazon Linux 또는 Windows Server를 실행하는 인스턴스를 시작할 수 있습니다. Ubuntu Server 또는 RHEL용 템플릿은 제공되지 않습니다.

## 1단계: IAM 인스턴스 프로파일이 Amazon EC2 인스턴스에 연결되어 있는지 확인
<a name="instances-ec2-configure-1-verify-instance-profile-attached"></a>

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

1. 탐색 창의 **인스턴스**에서 **인스턴스**를 선택합니다.

1. 목록에서 Amazon EC2 인스턴스를 찾아서 선택합니다.

1. 세부 정보 창의 **설명(Description)** 탭에서 **IAM 역할(IAM role)** 필드의 값을 기록해 둔 후 다음 섹션으로 넘어갑니다.

   필드가 비어 있는 경우 IAM 인스턴스 프로파일을 인스턴스에 연결할 수 있습니다. 자세한 내용은 [IAM 역할을 인스턴스에 연결](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#attach-iam-role)을 참조하세요.

## 2단계: 연결된 IAM 인스턴스 프로파일에 올바른 액세스 권한이 있는지 확인
<a name="instances-ec2-configure-2-verify-instance-profile-permissions"></a>

1. IAM 콘솔([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/))을 엽니다.

1. 탐색 창에서 **역할**을 선택합니다.

1. 이전 섹션의 4단계에서 기록해 둔 IAM 역할 이름을 찾아 선택합니다.
**참고**  
의 지침에 따라 생성한 서비스 역할 대신 CloudFormation 템플릿에서 생성한 서비스 역할을 사용하려면 다음 사항에 [2단계: CodeDeploy에 대한 서비스 역할 생성](getting-started-create-service-role.md)유의하세요.  
 CloudFormation 템플릿의 일부 버전에서는 생성되어 Amazon EC2 인스턴스에 연결된 IAM 인스턴스 프로파일의 표시 이름이 IAM 콘솔의 표시 이름과 동일하지 않습니다. 예를 들어 IAM 인스턴스 프로파일의 표시 이름은 `CodeDeploySampleStack-expnyi6-InstanceRoleInstanceProfile-IK8J8A9123EX`인 반면 IAM 콘솔의 IAM 인스턴스 프로파일의 표시 이름은 `CodeDeploySampleStack-expnyi6-InstanceRole-C5P33V1L64EX`일 수 있습니다.  
IAM 콘솔에서 인스턴스 프로파일을 식별하기 위해서는 두 가지 표시 이름의 `CodeDeploySampleStack-expnyi6-InstanceRole` 접두사가 동일한 것을 확인합니다. 표시 이름이 다를 수 있는 이유에 대해서는 [인스턴스 프로파일](https://docs.aws.amazon.com/IAM/latest/UserGuide/instance-profiles.html)에서 자세한 내용을 확인하세요.

1. **신뢰 관계(Trust Relationships)** 탭을 선택합니다. **신뢰할 수 있는 엔터티(Trusted Entities)**에 **The identity provider(s) ec2.amazonaws.com**이라는 항목이 없으면 이 Amazon EC2 인스턴스를 사용할 수 없습니다. 중지한 후, [CodeDeploy용 인스턴스 작업](instances.md)의 정보를 사용하여 Amazon EC2 인스턴스를 생성합니다

   **The identity provider(s) ec2.amazonaws.com**이라는 항목이 있고 GitHub 리포지토리에만 애플리케이션을 저장하는 경우는 [3단계: Amazon EC2 인스턴스에 태그 지정](#instances-ec2-configure-3-tag-instance)으로 진행합니다.

   **The identity provider(s) ec2.amazonaws.com**이라는 항목이 있고 애플리케이션을 Amazon S3 버킷에 저장하는 경우 **권한(Permissions)** 탭을 선택합니다.

1. **권한 정책(Permissions policies)** 영역에 정책이 있는 경우 정책을 확장한 다음 **정책 편집(Edit policy)**을 선택합니다.

1. **JSON** 탭을 선택합니다. Amazon S3 버킷에 애플리케이션을 저장하는 경우 `"s3:Get*"` 및 `"s3:List*"`가 지정된 작업 목록에 있어야 합니다.

   다음과 같을 것입니다.

   ```
   {"Statement":[{"Resource":"*","Action":[
     ... Some actions may already be listed here ...
     "s3:Get*","s3:List*"
     ... Some more actions may already be listed here ...
     ],"Effect":"Allow"}]}
   ```

   또는 다음과 같을 것입니다.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "s3:Get*",
           "s3:List*"
         ],
         "Resource": "*"
       }
     ]
   }
   ```

------

   `"s3:Get*"` 및 `"s3:List*"`가 지정된 작업 목록에 없으면 **편집(Edit)**을 선택하여 추가한 다음**저장(Save)**을 선택합니다. (`"s3:Get*"` 또는 `"s3:List*"`가 목록의 마지막 작업이 아닌 경우 정책 문서의 유효성을 검사할 수 있도록 작업 뒤에 쉼표를 추가해야 합니다.)
**참고**  
Amazon EC2 인스턴스에서 액세스해야 하는 Amazon S3 버킷으로만 이 정책 적용을 제한하는 것이 좋습니다. CodeDeploy 에이전트가 포함된 Amazon S3 버킷에 대한 액세스 권한을 제공해야 합니다. 그렇지 않으면 인스턴스에 CodeDeploy 에이전트를 설치 또는 업데이트할 때 오류가 발생할 수 있습니다. Amazon S3의 일부 CodeDeploy 리소스 키트 버킷에만 IAM 인스턴스 프로파일 액세스 권한을 부여하려면 다음 정책을 사용하되 액세스를 차단하려는 버킷 라인을 제거합니다.  

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "s3:Get*",
           "s3:List*"
         ],
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket/*",
           "arn:aws:s3:::aws-codedeploy-us-east-2/*",
           "arn:aws:s3:::aws-codedeploy-us-east-1/*",
           "arn:aws:s3:::aws-codedeploy-us-west-1/*",
           "arn:aws:s3:::aws-codedeploy-us-west-2/*",
           "arn:aws:s3:::aws-codedeploy-ca-central-1/*",
           "arn:aws:s3:::aws-codedeploy-eu-west-1/*",
           "arn:aws:s3:::aws-codedeploy-eu-west-2/*",
           "arn:aws:s3:::aws-codedeploy-eu-west-3/*",
           "arn:aws:s3:::aws-codedeploy-eu-central-1/*",
           "arn:aws:s3:::aws-codedeploy-eu-central-2/*",
           "arn:aws:s3:::aws-codedeploy-eu-north-1/*",
           "arn:aws:s3:::aws-codedeploy-eu-south-1/*",
           "arn:aws:s3:::aws-codedeploy-eu-south-2/*",
           "arn:aws:s3:::aws-codedeploy-il-central-1/*",
           "arn:aws:s3:::aws-codedeploy-ap-east-1/*",
           "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*",
           "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*",
           "arn:aws:s3:::aws-codedeploy-ap-northeast-3/*",
           "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*",        
           "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*",
           "arn:aws:s3:::aws-codedeploy-ap-southeast-3/*",
           "arn:aws:s3:::aws-codedeploy-ap-southeast-4/*",
           "arn:aws:s3:::aws-codedeploy-ap-south-1/*",
           "arn:aws:s3:::aws-codedeploy-ap-south-2/*",
           "arn:aws:s3:::aws-codedeploy-me-central-1/*",
           "arn:aws:s3:::aws-codedeploy-me-south-1/*",
           "arn:aws:s3:::aws-codedeploy-sa-east-1/*"
         ]
       }
     ]
   }
   ```

## 3단계: Amazon EC2 인스턴스에 태그 지정
<a name="instances-ec2-configure-3-tag-instance"></a>

배포 중에 CodeDeploy가 Amazon EC2 인스턴스를 찾을 수 있도록 태그를 지정하는 방법은 [콘솔에서 태그 작업하기](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#Using_Tags_Console)를 참조한 다음 이 페이지로 돌아오세요.

**참고**  
Amazon EC2 인스턴스에 원하는 키와 값으로 태깅할 수 있습니다. 배포할 때 해당 키와 값을 지정했는지 확인합니다.

## 4단계: Amazon EC2 인스턴스에 AWS CodeDeploy 에이전트 설치
<a name="instances-ec2-configure-4-install-agent"></a>

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