자습서: AWS CloudFormation StackSets 배포 작업이 포함된 파이프라인 생성 - AWS CodePipeline

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

자습서: AWS CloudFormation StackSets 배포 작업이 포함된 파이프라인 생성

이 자습서에서는 AWS CodePipeline 콘솔을 사용하여 스택 세트를 생성하고 스택 인스턴스를 생성하기 위한 배포 작업이 포함된 파이프라인을 생성합니다. 파이프라인이 실행되면 템플릿은 스택 세트를 생성하고 스택 세트가 배포된 인스턴스를 생성 및 업데이트합니다.

스택 세트에 대한 권한을 관리하는 방법에는 자체 관리형 IAM 역할과 AWS관리형 IAM 역할이라는 두 가지가 있습니다. 이 자습서에서는 자체 관리형 권한의 예를 제공합니다.

에서 CodePipeline 스택셋을 가장 효과적으로 사용하려면 기본 AWS CloudFormation StackSets 개념과 작동 방식을 명확히 이해해야 합니다. AWS CloudFormation 사용 설명서의 StackSets 개념을 참조하십시오.

필수 조건

스택 세트 작업의 경우 관리자 계정과 대상 계정이라는 두 개의 다른 계정을 사용합니다. 관리자 계정에서 스택 세트를 생성합니다. 대상 계정에서 스택 세트에 속하는 개별 스택을 생성합니다.

관리자 계정으로 관리자 역할을 만들려면
대상 계정에서 서비스 역할을 생성하려면

1단계: 샘플 AWS CloudFormation 템플릿 및 파라미터 파일 업로드

스택 세트 템플릿과 파라미터 파일에 대한 소스 버킷을 생성합니다. 샘플 AWS CloudFormation 템플릿 파일을 다운로드하고, 파라미터 파일을 설정한 다음, 파일을 압축한 다음 S3 소스 버킷에 업로드하십시오.

참고

소스 파일이 템플릿뿐이더라도 S3 소스 버킷에 업로드하기 전에 소스 파일을 압축해야 합니다.

S3 소스 버킷을 생성하려면
  1. AWS Management Console 로그인하고 https://console.aws.amazon.com/s3/ 에서 Amazon S3 콘솔을 엽니다.

  2. 버킷 생성을 선택합니다.

  3. 버킷 이름에 버킷 이름을 입력합니다.

    리전에서 파이프라인을 생성하려는 리전을 선택합니다. 버킷 생성을 선택합니다.

  4. 버킷이 생성되면 성공적으로 수행했다는 배너가 표시됩니다. [Go to bucket details]를 선택합니다.

  5. [Properties] 탭에서 [Versioning]을 선택합니다. [Enable versioning]을 선택한 다음 [Save]를 선택합니다.

AWS CloudFormation 템플릿 파일을 생성하려면
  1. 스택 세트 CloudTrail 구성을 생성하기 위한 다음 샘플 템플릿 파일을 다운로드하십시오https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/EnableAWSCloudtrail.yml.

  2. 파일을 template.yml(으)로 저장합니다.

parameters.txt 파일을 생성하려면
  1. 배포용 파라미터가 포함된 파일을 생성합니다. 파라미터는 런타임 시 스택에서 업데이트하려는 값입니다. 다음 샘플 파일은 스택 세트의 템플릿 파라미터를 업데이트하여 로깅 검증 및 글로벌 이벤트를 활성화합니다.

    [ { "ParameterKey": "EnableLogFileValidation", "ParameterValue": "true" }, { "ParameterKey": "IncludeGlobalEvents", "ParameterValue": "true" } ]
  2. 파일을 parameters.txt(으)로 저장합니다.

accounts.txt 파일을 생성하려면
  1. 다음 샘플 파일과 같이 인스턴스를 만들려는 계정이 포함된 파일을 생성합니다.

    [ "111111222222","333333444444" ]
  2. 파일을 accounts.txt(으)로 저장합니다.

소스 파일을 압축하고 업로드하려면
  1. 파일을 하나의 ZIP 파일로 결합합니다. 파일은 ZIP 파일에 다음과 같이 나타납니다.

    template.yml parameters.txt accounts.txt
  2. ZIP 파일을 S3 버킷에 업로드합니다. 이 파일은 파이프라인 생성 마법사가 배포 작업을 위해 생성한 소스 아티팩트입니다. CodePipeline

2단계: 파이프라인 생성

이 단원에서는 다음 작업을 통해 파이프라인을 생성합니다.

  • 소스 아티팩트가 템플릿 파일 및 모든 지원 소스 파일인 S3 작업이 있는 소스 단계입니다.

  • 스택 세트를 생성하는 AWS CloudFormation 스택 세트 배포 작업이 포함된 배포 단계입니다.

  • 대상 계정 내에 AWS CloudFormation 스택과 인스턴스를 생성하는 스택 인스턴스 배포 작업이 포함된 배포 단계입니다.

작업이 포함된 파이프라인을 만들려면 CloudFormationStackSet
  1. 에 AWS Management Console 로그인하고 http://console.aws.amazon.com/codesuite/codepipeline/home 에서 CodePipeline 콘솔을 엽니다.

  2. Welcome(시작) 페이지, 시작하기 페이지 또는 Pipelines(파이프라인) 페이지에서 파이프라인 생성을 선택합니다.

  3. 1단계: 파이프라인 설정 선택파이프라인 이름MyStackSetsPipeline을 입력합니다.

  4. 파이프라인 유형에서 이 자습서의 목적에 맞는 V1을 선택합니다. V2를 선택할 수도 있지만 파이프라인 유형별 특성과 가격이 다르다는 점에 유의하십시오. 자세한 정보는 파이프라인 유형을 참조하세요.

  5. 서비스 역할에서 새 서비스 역할을 선택하면 IAM에서 서비스 역할을 생성할 수 CodePipeline 있습니다.

  6. 아티팩트 스토어에서는 기본값을 그대로 유지합니다.

    참고

    이는 소스 코드에 대한 소스 버킷이 아닙니다. 이 파이프라인은 아티팩트 스토어입니다. S3 버킷과 같은 개별 아티팩트 스토어는 각 파이프라인에 필요합니다. 파이프라인을 생성하거나 편집할 때는 파이프라인 리전에 아티팩트 버킷이 있어야 하고 작업을 실행 중인 AWS 지역당 아티팩트 버킷이 하나씩 있어야 합니다.

    자세한 내용은 입력 및 출력 아티팩트CodePipeline 파이프라인 구조 참조 섹션을 참조하세요.

    다음을 선택합니다.

  7. 2단계: 소스 단계 추가 페이지의 소스 공급자에서 Amazon S3를 선택합니다.

  8. 버킷에 이 자습서를 위해 생성한 S3 소스 버킷(예: BucketName)을 입력합니다. S3 객체 키에 ZIP 파일의 파일 경로와 파일 이름(예: MyFiles.zip)을 입력합니다.

  9. 다음을 선택합니다.

  10. Step 3: Add build stage(3단계: 빌드 단계 추가)에서 Skip build stage(빌드 단계 건너뛰기)를 선택하고 Skip(건너뛰기)을 다시 선택하여 경고 메시지를 수락합니다.

    다음을 선택합니다.

  11. 4단계: 배포 단계 추가에서 다음과 같이 합니다.

    1. 배포 공급자에서 AWS CloudFormation 스택 세트를 선택합니다.

    2. 스택 세트 이름에 스택 세트의 이름을 입력합니다. 템플릿이 생성하는 스택 세트의 이름입니다.

      참고

      스택 세트 이름을 적어 둡니다. 파이프라인에 두 번째 StackSets 배포 작업을 추가할 때 이 기능을 사용하게 됩니다.

    3. 템플릿 경로에 템플릿 파일을 업로드한 아티팩트 이름과 파일 경로를 입력합니다. 예를 들어, 기본 소스 아티팩트 이름 SourceArtifact를 사용하여 다음을 입력합니다.

      SourceArtifact::template.yml
    4. 배포 대상에서 계정 파일을 업로드한 아티팩트 이름과 파일 경로를 입력합니다. 예를 들어, 기본 소스 아티팩트 이름 SourceArtifact를 사용하여 다음을 입력합니다.

      SourceArtifact::accounts.txt
    5. 배포 대상에 AWS 리전 초기 스택 인스턴스를 배포할 지역 하나를 입력합니다 (예:)us-east-1.

    6. 배포 옵션을 확장합니다. 파라미터에 파라미터 파일을 업로드한 아티팩트 이름과 파일 경로를 입력합니다. 예를 들어, 기본 소스 아티팩트 이름 SourceArtifact를 사용하여 다음을 입력합니다.

      SourceArtifact::parameters.txt

      파라미터를 파일 경로가 아닌 리터럴 입력으로 입력하려면 다음을 입력합니다.

      ParameterKey=EnableLogFileValidation,ParameterValue=true ParameterKey=IncludeGlobalEvents,ParameterValue=true
    7. 기능에서 CAPABILITY_IAM 및 CAPABILITY_NAMED_IAM을 선택합니다.

    8. 권한 모델에서 SELF_MANAGED를 선택합니다.

    9. 내결함성 비율20을 입력합니다.

    10. 최대 동시 비율25를 입력합니다.

    11. 다음을 선택합니다.

    12. [파이프라인 생성]을 선택합니다. 파이프라인이 표시됩니다.

    13. 파이프라인이 실행되도록 허용합니다.

3단계: 초기 배포 보기

초기 배포에 대한 리소스와 상태를 확인합니다. 배포에서 스택 세트가 성공적으로 생성되었는지 확인한 후 배포 단계에 두 번째 작업을 추가할 수 있습니다.

리소스를 보려면
  1. https://console.aws.amazon.com/codepipeline/ 에서 CodePipeline 콘솔을 엽니다.

  2. 파이프라인에서 파이프라인을 선택하고 보기를 선택합니다. 다이어그램은 파이프라인 소스 및 배포 단계를 보여줍니다.

  3. 파이프라인의 AWS CloudFormation 액션에 대한 CloudFormationStackSet액션을 선택합니다. 스택 세트의 템플릿, 리소스, 이벤트가 AWS CloudFormation 콘솔에 표시됩니다.

  4. 왼쪽 탐색 패널에서 을 선택합니다 StackSets. 목록에서 새 스택 세트를 선택합니다.

  5. 스택 인스턴스 탭을 선택합니다. 제공한 각 계정의 스택 인스턴스 1개가 us-east-1 리전에서 생성되었는지 확인합니다. 각 스택 인스턴스의 상태가 CURRENT인지 확인하세요.

4단계: CloudFormationStackInstances 액션 추가

파이프라인에서 나머지 스택 인스턴스를 생성할 수 AWS CloudFormation StackSets 있는 다음 작업을 생성합니다.

파이프라인에서 다음 작업을 만들려면
  1. https://console.aws.amazon.com/codepipeline/ 에서 CodePipeline 콘솔을 엽니다.

    파이프라인에서 파이프라인을 선택하고 보기를 선택합니다. 다이어그램은 파이프라인 소스 및 배포 단계를 보여줍니다.

  2. 파이프라인을 편집하도록 선택합니다. 파이프라인이 편집 모드에 표시됩니다.

  3. 배포 단계에서 편집을 선택합니다.

  4. AWS CloudFormation 스택 세트 배포 작업에서 작업 그룹 추가를 선택합니다.

  5. 작업 편집 페이지에서 작업 세부 정보를 추가합니다.

    1. 작업 이름에 작업 이름을 입력합니다.

    2. 작업 공급자에서 AWS CloudFormation 스택 인스턴스를 선택합니다.

    3. 입력 아티팩트에서 SourceArtifact을 선택합니다.

    4. 스택 세트 이름에 스택 세트의 이름을 입력합니다. 첫 번째 작업에서 제공한 스택 세트의 이름입니다.

    5. 배포 대상에서 계정 파일을 업로드한 아티팩트 이름과 파일 경로를 입력합니다. 예를 들어, 기본 소스 아티팩트 이름 SourceArtifact를 사용하여 다음을 입력합니다.

      SourceArtifact::accounts.txt
    6. 배포 AWS 리전대상에서 나머지 스택 인스턴스를 배포할 지역을 다음과 eu-central-1 같이 입력합니다. us-east-2

      us-east2, eu-central-1
    7. 내결함성 비율20을 입력합니다.

    8. 최대 동시 비율25를 입력합니다.

    9. 저장을 선택합니다.

    10. .변경 사항을 수동으로 릴리스합니다. 업데이트된 파이프라인은 배포 단계에서 두 가지 작업과 함께 표시됩니다.

5단계: 배포를 위한 스택 세트 리소스 보기

스택 세트 배포에 대한 리소스와 상태를 확인할 수 있습니다.

리소스를 보려면
  1. https://console.aws.amazon.com/codepipeline/ 에서 CodePipeline 콘솔을 엽니다.

  2. 파이프라인에서 파이프라인을 선택한 후 보기를 선택합니다. 다이어그램은 파이프라인 소스 및 배포 단계를 보여줍니다.

  3. 파이프라인의 AWS CloudFormation 액션에 대한 AWS CloudFormation Stack Instances액션을 선택합니다. 스택 세트의 템플릿, 리소스, 이벤트가 AWS CloudFormation 콘솔에 표시됩니다.

  4. 왼쪽 탐색 패널에서 을 선택합니다 StackSets. 목록에서 스택 세트를 선택합니다.

  5. 스택 인스턴스 탭을 선택합니다. 제공한 각 계정의 나머지 모든 스택 인스턴스가 예상 리전에서 생성되거나 업데이트되었는지 확인하세요. 각 스택 인스턴스의 상태가 CURRENT인지 확인하세요.

6단계: 스택 세트 업데이트

스택 세트를 업데이트하고 인스턴스에 업데이트를 배포합니다. 이 예시에서는 업데이트를 위해 지정하려는 배포 대상도 변경합니다. 업데이트에 포함되지 않은 인스턴스는 오래됨 상태로 전환됩니다.

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

  2. 파이프라인에서 파이프라인을 선택한 후 편집을 선택합니다. 배포 단계에서 편집을 선택합니다.

  3. 파이프라인에서 AWS CloudFormation 스택 세트 작업을 편집하도록 선택합니다. 설명에서 스택 세트에 대한 새 설명으로 기존 설명을 덮어씁니다.

  4. 파이프라인에서 AWS CloudFormation 스택 인스턴스 작업을 편집하도록 선택합니다. 배포 AWS 리전대상에서 액션이 생성될 때 입력된 us-east-2 값을 삭제합니다.

  5. 변경 사항을 저장합니다. 변경 사항 릴리스를 선택하여 파이프라인을 실행합니다.

  6. AWS CloudFormation에서 작업을 엽니다. StackSet 정보 탭을 선택합니다. StackSet 설명에 새 설명이 표시되는지 확인합니다.

  7. 스택 인스턴스 탭을 선택합니다. 상태에서 us-east-2의 스택 인스턴스 상태가 OUTDATED인지 확인합니다.