CodeDeploy 작업을 위한 Amazon EC2 인스턴스 구성 - AWS CodeDeploy

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

CodeDeploy 작업을 위한 Amazon EC2 인스턴스 구성

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

참고

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

1단계: IAM 인스턴스 프로파일이 Amazon EC2 인스턴스에 연결되어 있는지 확인

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

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

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

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

    필드가 비어 있는 경우 IAM 인스턴스 프로파일을 인스턴스에 연결할 수 있습니다. 자세한 내용은 IAM 역할을 인스턴스에 연결을 참조하세요.

2단계: 연결된 IAM 인스턴스 프로파일에 올바른 액세스 권한이 있는지 확인

  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 역할(Roles)을 선택합니다.

  3. 이전 섹션의 4단계에서 기록해 둔 IAM 역할 이름을 찾아 선택합니다.

    참고

    2단계: CodeDeploy에 대한 서비스 역할 생성 지침에 따라 생성한 서비스 역할 대신 AWS CloudFormation 템플릿에서 생성한 서비스 역할을 사용하려면 다음 사항에 유의하세요.

    AWS CloudFormation 템플릿의 일부 버전에서 생성되어 Amazon EC2 인스턴스에 연결된 IAM 인스턴스 프로파일의 표시 이름은 IAM 콘솔의 표시 이름과 다릅니다. 예를 들어 IAM 인스턴스 프로파일의 표시 이름은 CodeDeploySampleStack-expnyi6-InstanceRoleInstanceProfile-IK8J8A9123EX인 반면 IAM 콘솔의 IAM 인스턴스 프로파일의 표시 이름은 CodeDeploySampleStack-expnyi6-InstanceRole-C5P33V1L64EX일 수 있습니다.

    IAM 콘솔에서 인스턴스 프로파일을 식별하기 위해서는 두 가지 표시 이름의 CodeDeploySampleStack-expnyi6-InstanceRole 접두사가 동일한 것을 확인합니다. 표시 이름이 다를 수 있는 이유에 대해서는 인스턴스 프로파일에서 자세한 내용을 확인하세요.

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

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

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

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

  6. 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"}]}

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

    { "Version": "2012-10-17", "Statement": [ { "Action": [ ... Some actions may already be listed here ... "s3:Get*", "s3:List*" ... Some more actions may already be listed here ... ], ... } ] }

    "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:::replace-with-your-s3-bucket-name/*", "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 인스턴스에 태그 지정

배포 중에 CodeDeploy가 Amazon EC2 인스턴스를 찾을 수 있도록 태그를 지정하는 방법은 콘솔에서 태그 작업하기를 참조한 다음 이 페이지로 돌아오세요.

참고

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

4단계: Amazon EC2 인스턴스에 AWS CodeDeploy 에이전트 설치

Amazon EC2 인스턴스에서 CodeDeploy 에이전트를 설치하고 에이전트가 실행 중인지 확인하는 지침을 CodeDeploy 상담원 운영 관리 섹션에서 확인한 다음 CodeDeploy를 사용하여 애플리케이션 생성으로 진행합니다.