1단계: Auto Scaling 그룹 생성 및 구성 - AWS CodeDeploy

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

1단계: Auto Scaling 그룹 생성 및 구성

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

Auto Scaling 그룹을 생성하고 구성하려면(CLI 사용)

  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/에서 Amazon EC2 콘솔을 엽니다.

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

    3. 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 사용 단원을 참조하세요.

    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, IamInstanceProfileKeyName에 대한 입력 사항에 따라 시작 템플릿이 AMI ID, 시작 시 인스턴스에 전달할 IAM 역할과 관련된 인스턴스 프로파일의 이름 및 인스턴스에 연결할 때 사용할 Amazon EC2 키 페어도 지정합니다.

  2. create-auto-scaling-group 명령을 호출하여 Auto Scaling 그룹을 생성합니다. AWS 일반 참조리전 및 엔드포인트에 나열된 리전 중 하나에 있는 가용 영역 중 하나의 이름이 필요합니다. 이는 자리 표시자 availability-zone으로 표시됩니다.

    참고

    리전의 가용 영역 목록을 보려면 다음을 호출합니다.

    aws ec2 describe-availability-zones --region region-name

    예를 들어, 미국 서부(오레곤) 리전의 가용 영역 목록을 보려면 다음을 호출합니다.

    aws ec2 describe-availability-zones --region us-west-2

    리전 이름 식별자 목록은 리전별 리소스 키트 버킷 이름 단원을 참조하세요.

    로컬 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 에이전트를 설치할 때 사용됩니다.

  3. 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

    반환된 값에 HealthyInService가 표시될 때까지 진행하지 마십시오.

  4. 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 에이전트 작업을 참조하세요. Systems Manager에 대한 자세한 내용은 AWS Systems Manager란 무엇입니까를 참조하세요.

Auto Scaling 그룹을 생성하고 구성하려면(콘솔 사용)

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

  2. 전역 탐색 모음에서 AWS 일반 참조리전 및 엔드포인트에 나열된 리전 중 하나를 선택합니다. Amazon EC2 Auto Scaling 리소스는 지정한 리전에 연결되며, CodeDeploy는 일부 리전에서만 지원됩니다.

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

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

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

  6. 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 사용 단원을 참조하세요.

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

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

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

    보안 그룹(Security groups) 드롭다운에서 튜토리얼의 사전 요구 사항 섹션(CodeDeployDemo-AS-SG)에서 생성한 보안 그룹을 선택합니다.

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

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

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

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

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

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

  15. 인스턴스 시작 옵션 선택(Choose instance launch options) 페이지의 네트워크(Network) 섹션에서 VPC에 대해 기본 VPC를 선택합니다. 그런 다음 가용 영역 및 서브넷(Availability Zones and subnets)에 대해 기본 서브넷을 선택합니다. 기본값을 선택할 수 없는 경우 VPC를 생성해야 합니다. 자세한 내용은 Amazon VPC 시작하기를 참조하세요.

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

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

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

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

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

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

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

    2. CodeDeployDemo을(를) 입력합니다.

    다음(Next)을 선택합니다.

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

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

  24. CodeDeploy 에이전트 설치의 단계에 따르고 Name=CodeDeployDemo 인스턴스 태그를 사용하여 CodeDeploy 에이전트를 설치합니다.