자체 관리형 권한으로 CloudFormation StackSets 생성 - AWS CloudFormation

자체 관리형 권한으로 CloudFormation StackSets 생성

self-managed 권한을 사용하여 특정 리전의 특정 AWS 계정에 스택 인스턴스를 배포할 수 있습니다. 이렇게 하려면 먼저 스택 세트를 관리하는 계정과 스택 인스턴스를 배포할 계정 간에 신뢰할 수 있는 관계를 설정하는 데 필요한 IAM 역할을 만들어야 합니다. 자세한 내용은 자체 관리형 권한 부여 단원을 참조하십시오.

참고

다음 절차 중 하나를 완료하기 전에 IAM 역할 AWSCloudFormationStackSetExecutionRoleAWSCloudFormationStackSetAdministrationRole이 관리자 계정에 있는지 확인하세요. 관리자 계정 이외의 계정에서 스택을 시작하려면 IAM 역할 AWSCloudFormationStackSetExecutionRole이 대상 계정에 있는지 확인하세요.

이 주제에서 참조하는 템플릿을 통해 미국 서부(오리건) 리전(us-west-2)과 미국 동부(버지니아 북부) 리전(us-east-1)의 대상 계정에서 AWS Config를 사용할 수 있습니다. AWS Config 활성화 템플릿은 S3 버킷(https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/EnableAWSConfig.yml)에 있습니다. StackSets 콘솔에서 이 샘플 템플릿을 선택할 수도 있습니다.

자체 관리형 권한으로 스택 세트 생성(콘솔)

  1. AWS Management Console에 로그인하여 https://console.aws.amazon.com/cloudformation에서 AWS CloudFormation 콘솔을 엽니다.

  2. 화면 상단의 탐색 모음에서 스택 세트를 관리할 AWS 리전을 선택합니다.

  3. 탐색 창에서 스택 세트를 선택합니다.

  4. StackSet 페이지의 상단에서 StackSet 만들기를 선택합니다.

  5. 권한을 건너뛰고 이전에 생성한 AWSCloudFormationStackSetExecutionRoleAWSCloudFormationStackSetAdministrationRole이라는 IAM 역할을 사용합니다.

  6. Prerequisite - Prepare template(사전 조건 - 템플릿 준비)에서 Use a sample template(샘플 템플릿 사용)을 선택하십시오.

  7. 샘플 템플릿 선택 아래의 드롭다운 메뉴에서 AWS Config 활성화 템플릿을 선택합니다. 그리고 다음을 선택합니다.

  8. StackSet 세부 정보 지정 페이지의 StackSet 이름에 스택 세트의 이름을 입력합니다. 스택 세트 이름은 영어 알파벳 문자로 시작하여 문자, 숫자 및 하이픈만 포함해야 합니다. 이 연습에서는 my-awsconfig-stackset라는 이름을 사용합니다.

  9. StackSet 설명에 스택 세트에 대한 설명을 입력합니다.

  10. 파라미터에서 AWS Config에서 사용하는 템플릿 파라미터를 검토합니다.

    참고

    이 연습에서는 이 섹션의 기본 설정을 사용할 수 있습니다.

    1. 레코더 구성에서 기본값을 검토합니다. 이러한 파라미터에 대한 자세한 내용은 AWS Config 개발자 안내서Setting up AWS Config with the console을 참조하세요.

    2. (선택 사항) 전송 채널 구성에서 업데이트 및 알림을 위한 전송 채널의 기본값을 검토합니다. AWS Config의 전송 채널에 대한 자세한 내용을 알아보려면 AWS Config 개발자 안내서전송 채널 관리를 참조하세요.

    3. (선택 사항) 전송 알림에서 Amazon Simple Notification Service(SNS) 알림의 기본 구성을 검토합니다.

  11. 다음을 선택하여 계속 진행합니다.

  12. Configure StackSet options(스택 세트 옵션 구성) 페이지에서 키 및 값 페어를 지정하여 태그를 추가하십시오. 이 연습에서는 값이 Test(테스트)인 Stage(스테이지)라는 태그를 생성합니다. 스택 세트에 적용한 태그는 스택에 의해 생성된 모든 리소스에 적용됩니다. AWS에서 태그를 사용하는 방법에 대한 자세한 내용은 AWS Billing and Cost Management 사용 설명서Organizing and tracking costs using AWS cost allocation tags를 참조하세요.

  13. StackSets가 충돌하지 않는 작업을 동시에 수행하고 충돌하는 작업을 대기열에 넣도록 Execution configuration(실행 구성)에서 Active(활성)를 선택합니다. 충돌하는 작업이 완료된 후 StackSets는 요청 순서대로 대기 중인 작업을 시작합니다.

    참고

    이미 실행 중이거나 대기 중인 작업이 있는 경우 StackSets는 충돌하지 않더라도 모든 수신 작업을 대기열에 넣습니다.

    해당 스택 세트에 대해 실행 중이거나 대기 중인 작업이 있는 동안에는 스택 세트의 실행 구성을 수정할 수 없습니다.

  14. 템플릿에 IAM 리소스가 포함되어 있는 경우 기능에서 이 템플릿이 IAM 리소스를 생성할 수 있음을 확인합니다를 선택하여 템플릿에서 IAM 리소스를 사용하도록 지정합니다. 자세한 내용은 CloudFormation 템플릿에서 IAM 리소스 승인 단원을 참조하십시오.

  15. Next(다음)를 선택합니다.

  16. 배포 옵션 설정 페이지의 스택 세트에 스택 추가에서 새 스택 배포를 선택합니다.

  17. 계정의 경우 Deploy stacks in accounts(계정에 스택 배포)를 선택하십시오. 숫자 여러 개를 쉼표로 구분하여 대상 AWS 계정 번호를 텍스트 상자에 붙여 넣습니다.

  18. Specify region(리전 지정)의 경우 미국 동부(버지니아 북부) 지역을 선택하십시오. 미국 서부(오레곤) 지역에 대해 반복합니다. 미국 서부(오레곤) 지역 옆에 있는 위쪽 화살표를 선택하여 목록의 첫 번째 항목으로 이동합니다. Specify regions(리전 지정) 아래의 리전 순서에 따라 배포 순서가 결정됩니다.

    리전의 배포 실패가 지정된 내결함성을 초과하지 않는 한 기본적으로 CloudFormation은 첫 번째 리전의 지정된 계정에 스택을 배포한 후 다음으로 이동하는 식의 과정을 계속합니다.

  19. Deployment options(배포 옵션)의 경우:

    • Maximum concurrent accounts(최대 동시 계정)의 경우 Number(번호) 및 1의 기본값을 유지합니다.

      즉, CloudFormation은 한 번에 한 계정에서만 스택을 배포합니다.

    • Failure tolerance(내결함성)의 경우, 번호0의 기본값을 유지하십시오.

      즉, CloudFormation이 현재 리전에서 배포를 중단하고 나머지 리전에서 배포를 취소하기 전에 지정된 리전 중 하나에서 최대 하나의 스택 배포가 실패할 수 있습니다.

    • 리전 동시성에서 순차 또는 병렬을 선택하여 지정된 리전에 대한 StackSets 배포 순서를 결정합니다. 기본적으로 [순차(Sequential)]가 선택됩니다.

    • 동시성 모드에서 필요에 따라 동시성 모드를 업데이트하거나 다음 단계로 건너뜁니다.

  20. Next(다음)를 선택합니다.

  21. [검토] 페이지에서 선택 사항을 검토합니다. 변경하려면 관련 섹션에서 편집을 선택합니다.

  22. 스택 세트를 생성할 준비가 되면 Submit(제출)을 선택합니다.

    CloudFormation이 스택 세트 생성을 시작합니다. 제출을 선택하면 열리는 스택 세트 세부 정보 페이지에서 스택 세트의 스택 생성 진행률 및 상태를 봅니다.

자체 관리형 권한으로 스택 세트 생성(AWS CLI)

AWS CLI 명령을 사용하여 스택 세트를 생성하면 두 가지 다른 명령을 실행합니다. create-stack-set를 사용하여 템플릿을 업로드하고 스택 세트 컨테이너를 생성하며 create-stack-instances를 사용하여 스택 세트 내에 스택을 생성합니다.

  1. 다음 create-stack-set 명령을 실행하여 AWS Config를 활성화하는 샘플 템플릿을 업로드합니다. --template-url 옵션에 템플릿이 있는 Amazon S3 버킷의 URL을 입력합니다. 이 예제에서는 --stack-set-name 옵션 값으로 my-awsconfig-stackset를 사용합니다.

    aws cloudformation create-stack-set \ --stack-set-name my-awsconfig-stackset \ --template-url https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/EnableAWSConfig.yml
    참고

    이미 실행 중이거나 대기 중인 작업이 있는 경우 StackSets는 충돌하지 않더라도 모든 수신 작업을 대기열에 넣습니다.

    해당 스택 세트에 대해 실행 중이거나 대기 중인 작업이 있는 동안에는 스택 세트의 실행 구성을 수정할 수 없습니다.

  2. create-stack-set 명령이 완료되면 list-stack-sets 명령을 실행하여 스택 세트가 생성되었는지 확인합니다. 결과에 새로운 스택 세트가 표시됩니다.

    aws cloudformation list-stack-sets
  3. create-stack-instances 명령을 사용하여 스택 세트에 스택 인스턴스를 추가합니다. 이 연습에서는 us-west-2 옵션 값으로 us-east-1--regions를 사용합니다.

    aws cloudformation create-stack-instances \ --stack-set-name my-awsconfig-stackset \ --accounts '["account_ID_1","account_ID_2"]' \ --regions '["us-west-2","us-east-1"]'

    CloudFormation이 이 스택 세트 작업을 수행하는 방식에 대한 기본 설정을 지정하려면 다음 예와 같이 --operation-preferences 옵션을 지정합니다. 이 예에서는 백분율이 아닌 개수를 사용합니다. FailureTolerancePercentage 또는 MaxConcurrentPercentage를 사용하여 백분율을 대신 적용할 수 있습니다.

    --operation-preferences FailureToleranceCount=0,MaxConcurrentCount=1
    참고

    MaxConcurrentCount의 값은 FailureToleranceCount의 값에 따라 결정됩니다. MaxConcurrentCountFailureToleranceCount+1 이내입니다.

    중요

    작업이 완료된 후에 다른 작업을 시작하십시오. 한 번에 한 작업만 실행할 수 있습니다.

  4. create-stack-instances 출력의 일부로 반환된 operation-id를 사용하여 describe-stack-set-operation을 실행하여 스택 인스턴스가 성공적으로 생성되었는지 확인합니다.

    aws cloudformation describe-stack-set-operation \ --stack-set-name my-awsconfig-stackset \ --operation-id operation_ID