

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

# 1단계: Auto Scaling 그룹 생성 및 구성
<a name="tutorials-auto-scaling-group-create-auto-scaling-group"></a>

이 단계에서는 단일 Amazon Linux, RHEL 또는 Windows Server Amazon EC2 인스턴스를 포함하는 Auto Scaling 그룹을 생성합니다. 이후 단계에서는 Amazon EC2 인스턴스를 하나 더 추가하도록 Amazon EC2 Auto Scaling에 지시하고 CodeDeploy에서는 수정 버전을 새로 추가된 인스턴스에 배포합니다.

**Topics**
+ [Auto Scaling 그룹을 생성하고 구성하려면(CLI 사용)](#tutorials-auto-scaling-group-create-auto-scaling-group-cli)
+ [Auto Scaling 그룹을 생성하고 구성하려면(콘솔 사용)](#tutorials-auto-scaling-group-create-auto-scaling-group-console)

## Auto Scaling 그룹을 생성하고 구성하려면(CLI 사용)
<a name="tutorials-auto-scaling-group-create-auto-scaling-group-cli"></a>

1. **create-launch-template** 명령을 호출하여 Amazon EC2 시작 템플릿을 생성합니다.

   이 명령을 호출하기 전에 이 튜토리얼에서 사용할 수 있는 AMI의 ID가 필요합니다(자리 표시자 {{image-id}}로 표시됨). 또한 Amazon EC2 인스턴스에 액세스할 수 있도록 Amazon EC2 인스턴스 키 페어의 이름도 필요합니다(자리 표시자 {{key-name}}으로 표시됨).

   이 튜토리얼에서 사용할 수 있는 AMI의 ID를 가져오려면:

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

   1. 탐색 창의 [**Instances**]에서 [**Instances**]를 선택한 후 [**Launch Instance**]를 선택합니다.

   1. **Amazon Machine Image 선택(Choose an Amazon Machine Image)** 페이지의 **빠른 시작(Quick Start)** 탭에서 **Amazon Linux 2 AMI**, **Red Hat Enterprise Linux 7.1**, **Ubuntu Server 14.04 LTS** 또는 **Microsoft Windows Server 2012 R2** 옆에 있는 AMI의 ID를 기록해 둡니다.
**참고**  
CodeDeploy와 호환되는 사용자 지정 AMI 버전이 있는 경우 **빠른 시작** 탭에서 찾는 대신 여기에서 해당 버전을 선택하세요. CodeDeploy 및 Amazon EC2 Auto Scaling에서 사용자 지정 AMI 사용에 대한 자세한 내용은 [CodeDeploy 및 Amazon EC2 Auto Scaling에서 사용자 지정 AMI 사용](integrations-aws-auto-scaling.md#integrations-aws-auto-scaling-custom-ami) 단원을 참조하세요.

   Amazon EC2 인스턴스 키 페어의 경우 Amazon EC2 인스턴스 키 페어의 이름을 사용합니다.

   **create-launch-template** 명령을 호출합니다.

   로컬 Linux, macOS 또는 Unix 머신의 경우

   ```
   aws ec2 create-launch-template \
     --launch-template-name CodeDeployDemo-AS-Launch-Template \
     --launch-template-data file://config.json
   ```

   `config.json` 파일 내용은 다음과 같습니다.

   ```
   { 
     "InstanceType":"t1.micro",
     "ImageId":"image-id",
     "IamInstanceProfile":{
       "Name":"CodeDeployDemo-EC2-Instance-Profile"
     },
     "KeyName":"key-name"
   }
   ```

   로컬 Windows 머신의 경우

   ```
   aws ec2 create-launch-template --launch-template-name CodeDeployDemo-AS-Launch-Template --launch-template-data file://config.json
   ```

   `config.json` 파일 내용은 다음과 같습니다.

   ```
   { 
     "InstanceType":"t1.micro",
     "ImageId":"image-id",
     "IamInstanceProfile":{
       "Name":"CodeDeployDemo-EC2-Instance-Profile"
     },
     "KeyName":"key-name"
   }
   ```

   `config.json` 파일과 함께 이러한 명령을 사용하면 다음 단계에서 t1.micro Amazon EC2 인스턴스 유형에 따라 생성되는 Auto Scaling 그룹에 대한 CodeDeployDemo-AS-Launch-Template이라는 Amazon EC2 시작 템플릿이 생성됩니다. `ImageId`, `IamInstanceProfile` 및 `KeyName`에 대한 입력 사항에 따라 시작 템플릿이 AMI ID, 시작 시 인스턴스에 전달할 IAM 역할과 관련된 인스턴스 프로파일의 이름 및 인스턴스에 연결할 때 사용할 Amazon EC2 키 페어도 지정합니다.

1.  **create-auto-scaling-group** 명령을 호출하여 Auto Scaling 그룹을 생성합니다. *AWS 일반 참조*의 [리전 및 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/rande.html#codedeploy_region)에 나열된 리전 중 하나에 있는 가용 영역 중 하나의 이름이 필요합니다. 이는 자리 표시자 {{availability-zone}}으로 표시됩니다.
**참고**  
리전의 가용 영역 목록을 보려면 다음을 호출합니다.  

   ```
   aws ec2 describe-availability-zones --region {{region-name}}
   ```
예를 들어, 미국 서부(오레곤) 리전의 가용 영역 목록을 보려면 다음을 호출합니다.  

   ```
   aws ec2 describe-availability-zones --region us-west-2
   ```
리전 이름 식별자 목록은 [리전별 리소스 키트 버킷 이름](resource-kit.md#resource-kit-bucket-names) 단원을 참조하세요.

   로컬 Linux, macOS 또는 Unix 머신의 경우

   ```
   aws autoscaling create-auto-scaling-group \
     --auto-scaling-group-name CodeDeployDemo-AS-Group \
     --launch-template CodeDeployDemo-AS-Launch-Template,Version='$Latest' \
     --min-size 1 \
     --max-size 1 \
     --desired-capacity 1 \
     --availability-zones {{availability-zone}} \
     --tags Key=Name,Value=CodeDeployDemo,PropagateAtLaunch=true
   ```

   로컬 Windows 머신의 경우

   ```
   aws autoscaling create-auto-scaling-group --auto-scaling-group-name CodeDeployDemo-AS-Group --launch-template LaunchTemplateName=CodeDeployDemo-AS-Launch-Template,Version="$Latest" --min-size 1 --max-size 1 --desired-capacity 1 --availability-zones {{availability-zone}} --tags Key=Name,Value=CodeDeployDemo,PropagateAtLaunch=true
   ```

   이 명령은 **CodeDeployDemo-AS-Launch-Template**이라는 Amazon EC2 시작 템플릿을 기반으로 **CodeDeployDemo-AS-Group**이라는 Auto Scaling 그룹을 생성합니다. 이 Auto Scaling 그룹에는 Amazon EC2 인스턴스 하나만 있으며, 이 인스턴스는 지정된 가용 영역에 생성됩니다. 이 Auto Scaling 그룹의 각 인스턴스에는 `Name=CodeDeployDemo` 태그가 있습니다. 이 태그는 나중에 CodeDeploy 에이전트를 설치할 때 사용됩니다.

1. **CodeDeployDemo-AS-Group**에 대해 **describe-auto-scaling-groups** 명령을 호출합니다.

   ```
   aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names CodeDeployDemo-AS-Group --query "AutoScalingGroups[0].Instances[*].[HealthStatus, LifecycleState]" --output text
   ```

   반환된 값에 `Healthy` 및 `InService`가 표시될 때까지 진행하지 마십시오.

1.  Auto Scaling 그룹의 인스턴스에 CodeDeploy 배포에 사용할 CodeDeploy 에이전트가 설치되어 있어야 합니다. Auto Scaling 그룹이 생성될 때 추가된 태그를 AWS Systems Manager 사용하여에서 **create-association** 명령을 호출하여 CodeDeploy 에이전트를 설치합니다.

   ```
   aws ssm create-association \
     --name AWS-ConfigureAWSPackage \
     --targets Key=tag:Name,Values=CodeDeployDemo \
      --parameters action=Install, name=AWSCodeDeployAgent \
     --schedule-expression "cron(0 2 ? * SUN *)"
   ```

   이 명령은 Systems Manager 상태 관리자에 연결을 생성하여 Auto Scaling 그룹의 모든 인스턴스에 CodeDeploy 에이전트를 설치하고 매주 일요일 오전 2시에 업데이트를 시도합니다. CodeDeploy 에이전트에 대한 자세한 내용은 [CodeDeploy 에이전트 작업](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent.html)을 참조하세요. Systems Manager에 대한 자세한 내용은 [AWS Systems Manager란 무엇입니까](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html)를 참조하세요.

## Auto Scaling 그룹을 생성하고 구성하려면(콘솔 사용)
<a name="tutorials-auto-scaling-group-create-auto-scaling-group-console"></a>

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

1. 전역 탐색 모음에서 *AWS 일반 참조*의 [리전 및 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/rande.html#codedeploy_region)에 나열된 리전 중 하나를 선택합니다. Amazon EC2 Auto Scaling 리소스는 지정한 리전에 연결되며, CodeDeploy는 일부 리전에서만 지원됩니다.

1. 탐색 창의 **인스턴스**에서 **템플릿 시작**을 선택합니다.

1. **Create launch template**(시작 템플릿 생성)을 선택합니다.

1. **시작 템플릿 이름 및 설명**의 **시작 템플릿 이름**에 **CodeDeployDemo-AS-Launch-Template**을(를) 입력합니다. 다른 필드의 경우 기본값을 그대로 유지합니다.

1. **Amazon Machine Image(AMI)** 대화 상자에서 **AMI** 아래 드롭다운을 클릭하여 이 튜토리얼에서 사용할 수 있는 AMI를 선택합니다.

   1. **AMI** 드롭다운의 **빠른 시작(Quick Start)** 탭에서 **Amazon Linux 2 AMI**, **Red Hat Enterprise Linux 7.1**, **Ubuntu Server 14.04 LTS** 또는 **Microsoft Windows Server 2012 R2** 중 하나를 선택합니다.
**참고**  
CodeDeploy와 호환되는 사용자 지정 AMI 버전이 있는 경우 **빠른 시작** 탭에서 찾는 대신 여기에서 해당 버전을 선택하세요. CodeDeploy 및 Amazon EC2 Auto Scaling에서 사용자 지정 AMI 사용에 대한 자세한 내용은 [CodeDeploy 및 Amazon EC2 Auto Scaling에서 사용자 지정 AMI 사용](integrations-aws-auto-scaling.md#integrations-aws-auto-scaling-custom-ami) 단원을 참조하세요.

1. **인스턴스 유형(Instance type)**에서 드롭다운을 선택한 다음 **t1.micro**를 선택합니다. 검색 창을 사용하면 더 빨리 찾을 수 있습니다.

1. **키 페어(로그인)(Key pair(login))** 대화 상자에서 **기존 키 페어 선택(Choose an existing key pair)**을 선택합니다. **키 페어 선택** 드롭다운 목록에서 이전 단계에서 만들었거나 사용한 Amazon EC2 인스턴스 키 페어를 선택합니다.

1. **네트워크 설정(Network settings)** 대화 상자에서 **가상 퍼블릭 클라우드(VPC)(Virtual Public Cloud (VPC))**를 선택합니다.

   **보안 그룹(Security groups)** 드롭다운에서 [튜토리얼의 사전 요구 사항 섹션](https://docs.aws.amazon.com/codedeploy/latest/userguide/tutorials-auto-scaling-group-prerequisites.html)(**CodeDeployDemo-AS-SG**)에서 생성한 보안 그룹을 선택합니다.

1. **고급 세부 정보** 대화 상자를 펼칩니다. **IAM 인스턴스 프로파일(IAM instance profile)** 드롭다운에서 이전에 **IAM 인스턴스 프로파일(IAM instance profile)** 아래에서 생성한 IAM 역할(**CodeDeployDemo-EC2-Instance-Profile**)을 선택합니다.

   나머지 기본값을 그대로 둡니다.

1. **Create launch template**(시작 템플릿 생성)을 선택합니다.

1. **다음 단계(Next steps)** 대화 상자에서 **Auto Scaling 그룹 생성(Create Auto Scaling group)**을 선택합니다.

1. **시작 템플릿 또는 구성 선택** 페이지에서 **Auto Scaling 그룹 이름**에 **CodeDeployDemo-AS-Group**을(를) 입력합니다.

1. **시작 템플릿(Launch template)** 대화 상자에서 시작 템플릿(**CodeDeployDemo-AS-Launch-Template**)을 작성해야 합니다. 작성하지 않고 드롭다운 메뉴에서 선택해도 됩니다. 기본값을 그대로 두고 **다음**을 선택합니다.

1. **인스턴스 시작 옵션 선택(Choose instance launch options)** 페이지의 **네트워크(Network)** 섹션에서 **VPC**에 대해 기본 VPC를 선택합니다. 그런 다음 **가용 영역 및 서브넷(Availability Zones and subnets)**에 대해 기본 서브넷을 선택합니다. 기본값을 선택할 수 없는 경우 VPC를 생성해야 합니다. 자세한 내용은 [Amazon VPC 시작하기](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-getting-started.html)를 참조하세요.

1. **인스턴스 유형 요구 사항(Instance type requirements)** 섹션에서 기본 설정을 사용하여 이 단계를 단순화합니다. (시작 템플릿을 재정의하지 마세요.) 이 자습서에서는 시작 템플릿에 지정된 인스턴스 유형을 사용하여 온디맨드 인스턴스만 시작합니다.

1. **다음(Next)**을 선택하고 **고급 옵션 구성(Configure advanced options)** 페이지로 이동합니다.

1. 기본값을 유지하고 **다음**을 선택합니다.

1. **그룹 크기 및 조정 정책 구성(Configure group size and scaling policies)** 페이지에서 기본 **그룹 크기(Group size)** 값 1을 유지합니다. **다음**을 선택합니다.

1. 알림을 구성하는 단계를 건너뛰고 **다음**을 선택합니다.

1. **태그 추가(Add tags)** 페이지에서 나중에 CodeDeploy 에이전트를 설치할 때 사용할 태그를 추가합니다. **태그 추가**를 선택합니다.

   1. **키**에 **Name**을(를) 입력합니다.

   1. **값**에 **CodeDeployDemo**을(를) 입력합니다.

   **다음**을 선택합니다.

1. **검토(Review)** 페이지에서 Auto Scaling 그룹 정보를 검토한 다음 **Auto Scaling 그룹 생성(Create Auto Scaling group)**을 선택합니다.

1. 탐색 모음에서 **Auto Scaling 그룹**이 선택된 상태에서 **CodeDeployDemo-AS-Group**을(를) 선택한 후 **인스턴스 관리** 탭을 선택합니다. **수명 주기** 열에 값 **InService**가 나타나고, **상태** 열에 값 **정상**이 나타날 때까지 진행하지 마세요.

1. [CodeDeploy 에이전트 설치](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install.html)의 단계에 따르고 `Name=CodeDeployDemo` 인스턴스 태그를 사용하여 CodeDeploy 에이전트를 설치합니다.