샘플 템플릿을 사용하여 StackSet 시작하기 - AWS CloudFormation

샘플 템플릿을 사용하여 StackSet 시작하기

이 자습서는 AWS Management Console을 사용하여 StackSet를 시작하는 데 도움이 됩니다. 샘플 템플릿을 사용하여 StackSet를 생성하는 프로세스를 안내합니다. 여러 리전에 스택을 배포하고, StackSet 작업을 모니터링하고, 결과를 확인하는 방법을 알아봅니다.

이 자습서에서는 미국 서부(오레곤) 리전(us-east-1) 및 미국 동부(버지니아 북부) 리전(us-west-2) 내의 AWS 계정에서 AWS Config를 활성화하는 StackSet를 생성해 봅니다. StackSet를 사용하면 단일 작업으로 여러 계정 및 리전에서 스택을 생성, 업데이트 또는 삭제할 수 있으므로 대규모 인프라 관리에 이상적인 솔루션입니다. 이 자습서에서는 설명의 편의를 위해 단일 계정을 사용하지만, StackSet의 다중 리전 기능을 효과적으로 보여줍니다.

샘플 템플릿은 S3 버킷(https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/EnableAWSConfig.yml)에서 사용할 수 있습니다.

참고

StackSet 자체는 무료이지만 이 자습서의 AWS Config와 같이 StackSet로 생성한 AWS 리소스에 대해서는 요금이 부과됩니다. 자세한 내용은 AWS Config 요금을 참조하십시오.

사전 조건

자습서를 시작하기 전에 다음 사전 조건을 완료했는지 확인합니다.

  • 자체 관리형 권한에 필요한 IAM 역할을 설정해야 합니다. StackSet를 생성하고 단일 계정 내에 스택을 배포하려면 계정에 다음 역할이 있어야 합니다.

    • AWSCloudFormationStackSetAdministrationRole

    • AWSCloudFormationStackSetExecutionRole

    이러한 역할 설정에 대한 자세한 지침은 자체 관리형 권한 부여 섹션을 참조하세요.

콘솔에서 샘플 템플릿을 사용하여 StackSet 생성

AWS Config를 활성화하는 StackSet를 생성하려면
  1. CloudFormation 콘솔을 엽니다.

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

    StackSet를 지원하는 모든 리전을 선택할 수 있습니다. 선택한 리전은 StackSet를 사용하여 배포할 수 있는 리전에 영향을 주지 않습니다.

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

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

  5. 권한에서 셀프 서비스 권한을 선택하고 사전 작업에서 생성한 IAM 역할을 선택합니다.

    • IAM 관리자 역할에서 AWSCloudFormationStackSetAdministrationRole을 선택합니다.

    • IAM 실행 역할 이름에서 AWSCloudFormationStackSetExecutionRole을 선택합니다.

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

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

    이 템플릿은 구성 레코더, 전송 채널 등, 계정에서 AWS Config를 활성화하는 데 필요한 리소스를 생성합니다.

  8. StackSet 세부 정보 지정 페이지의 StackSet 이름my-awsconfig-stackset를 입력합니다.

  9. StackSet 설명A StackSet that enables Config across multiple Regions를 입력합니다.

  10. 파라미터에서 다음과 같이 AWS Config 설정을 구성합니다.

    1. 모든 리소스 유형 지원에서 지원되는 모든 리소스 유형을 기록하려면 기본값(true)을 유지하세요.

    2. 글로벌 리소스 유형 포함에서 IAM 역할과 같은 글로벌 리소스를 제외하려면 기본값(false)를 유지하세요.

    3. 모두 지원되지 않는 경우 리소스 유형 나열<All>로 설정된 상태로 두세요.

    4. Config 서비스 연결 역할 리소스를 포함하는 리전의 경우 <DeployToAnyRegion>us-west-2로 바꾸세요.

      즉, AWSServiceRoleForConfig 서비스 연결 역할은 스택이 미국 서부(오리건) 리전에 배포된 경우에만 생성됩니다. 이 절차의 뒷부분에서 배포 리전을 선택합니다.

    5. 구성 레코더 기록 빈도에서 매일 기록을 선택합니다.

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

  12. StackSet 옵션 구성 페이지에서 새 태그 추가를 선택하고 키 및 값 페어를 지정하여 태그를 추가합니다.

    1. 키(Key)Stage를 입력합니다.

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

    StackSet에 적용한 태그는 스택에 의해 생성된 리소스에 적용됩니다.

  13. 실행 구성에서 활성을 선택하여 CloudFormation의 최적화된 작업 처리를 활성화합니다.

    • 배포 시간을 단축하기 위해, 서로 충돌하지 않는 작업이 동시에 실행됩니다.

    • 서로 충돌하는 작업은 요청된 순서대로 자동으로 대기열에 추가되고 처리됩니다.

    실행 중이거나 대기 중인 작업이 있는 경우 CloudFormation은 충돌하지 않더라도 모든 수신 작업을 대기열에 넣습니다. 이 시간 동안에는 실행 설정을 변경할 수 없습니다.

  14. 다음을 선택합니다.

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

  16. 계정의 경우 Deploy stacks in accounts(계정에 스택 배포)를 선택하십시오.

  17. 텍스트 상자에 AWS 계정 ID를 입력합니다.

  18. 리전 지정에서 다음 리전을 다음 순서로 선택합니다.

    1. 미국 서부(오리건) 리전(us-west-2)

    2. 미국 동부(버지니아 북부) 리전(us-east-1)

    필요한 경우, 미국 서부(오레곤) 리전 옆에 있는 위쪽 화살표를 사용하여 목록의 첫 번째 항목으로 이동합니다. 리전 순서에 따라 배포 순서가 결정됩니다.

  19. 배포 옵션에서 다음 설정을 구성합니다.

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

      다중 계정 배포의 경우 이 설정을 사용하면 CloudFormation이 한 번에 한 계정에서만 스택을 배포합니다.

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

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

    3. 리전 동시성에서 순차적(기본값)을 선택합니다.

      이 설정을 선택하면 CloudFormation이 한 리전에서 배포를 완료한 후에 다음 리전에서 배포를 시작합니다.

    4. 동시성 모드에서는 기본값인 엄격한 내결함성을 그대로 둡니다.

      다중 계정 배포의 경우 실패 시 계정 동시성 수준이 감소하여 내결함성 +1 이내로 유지됩니다.

  20. 다음을 선택합니다.

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

  22. StackSet를 생성할 준비가 되면 제출을 선택합니다.

StackSet 생성 모니터링

제출을 선택하면 CloudFormation이 StackSet를 생성하고 계정의 지정된 리전에 스택을 배포하기 시작합니다. 작업 진행 상황을 모니터링할 수 있는 StackSet 세부 정보 페이지가 자동으로 열립니다.

StackSet 생성을 모니터링하려면
  1. StackSet 세부 정보 페이지에는 진행 중인 현재 작업을 보여주는 작업 탭이 기본적으로 표시됩니다.

  2. 처음에 작업 상태는 RUNNING입니다. 사용자가 구성한 배포 옵션에 따라 CloudFormation이 지정한 리전에 스택을 생성합니다.

  3. 작업에 대한 세부 정보를 보려면 목록에서 작업 ID를 선택합니다.

  4. 작업 세부 정보 페이지에서 각 리전에서 생성 중인 스택 인스턴스의 상태를 볼 수 있습니다.

  5. 작업 상태가 SUCCEEDED로 변경될 때까지 기다립니다. 이는 StackSet 및 모든 스택 인스턴스가 성공적으로 생성되었음을 나타냅니다.

StackSet 결과 보기

StackSet 생성이 완료되고 나면, 배포된 스택 인스턴스를 보고 지정한 리전의 계정에서 AWS Config가 활성화되었는지 확인할 수 있습니다.

StackSet 결과를 보려면
  1. StackSet 세부 정보 페이지에서 스택 인스턴스 탭을 선택합니다.

  2. 지정한 리전의 계정에 생성된 스택 인스턴스 목록이 표시되어야 합니다. 각 스택 인스턴스의 상태는 SUCCEEDED여야 하며, 이는 성공적으로 배포되었음을 나타냅니다.

  3. 계정에서 AWS Config가 활성화되어 있는지 확인하려면 배포된 각 리전에서 AWS Config 콘솔을 확인하면 됩니다.

StackSet 업데이트

StackSet를 생성한 후 파라미터 값을 수정하거나 리전을 더 추가하여 업데이트할 수 있습니다. 이 섹션에서는 AWS Config 기록 빈도 파라미터를 업데이트하는 방법을 살펴보겠습니다.

StackSet를 업데이트하려면
  1. StackSet 페이지에서 my-awsconfig-stackset를 선택합니다.

  2. StackSet를 선택한 상태로 작업 메뉴에서 StackSet 세부 정보 편집을 선택합니다.

  3. 템플릿 선택 페이지의 사전 조건 - 템플릿 준비에서 현재 템플릿 사용을 선택합니다.

  4. 다음을 선택합니다.

  5. StackSet 세부 정보 지정 페이지의 파라미터에서 구성 레코더 기록 빈도를 찾아 매일에서 계속으로 변경합니다.

  6. 다음을 선택합니다.

  7. StackSet 옵션 구성 페이지에서 설정을 그대로 두고 다음을 선택합니다.

  8. 배포 옵션 설정 페이지에서 StackSet를 생성할 때 사용한 것과 동일한 리전과 계정 ID를 지정합니다.

  9. 배포 옵션의 경우 이전과 동일한 설정을 유지합니다.

  10. 다음을 선택합니다.

  11. 검토 페이지에서 변경 내용을 검토하고 제출을 선택합니다.

  12. CloudFormation이 StackSet 업데이트를 시작합니다. StackSet 세부 정보 페이지의 작업 탭에서 진행 상황을 모니터링할 수 있습니다.

StackSet에 스택 추가

새 리전에 추가로 배포하여 StackSet에 스택을 더 추가할 수 있습니다. 이 섹션에서는 새 리전에 스택을 추가하는 방법을 보여줍니다.

StackSet에 스택을 추가하려면
  1. StackSet 페이지에서 my-awsconfig-stackset를 선택합니다.

  2. StackSet를 선택한 상태로 작업 메뉴에서 StackSet에 스택 추가를 선택합니다.

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

  4. 계정에서 계정에 스택 배포를 선택하고 계정 ID를 입력합니다.

  5. 리전 지정에서 유럽(아일랜드)(eu-west-1)와 같은 새 리전을 선택합니다.

  6. 배포 옵션의 경우 이전과 동일한 설정을 유지합니다.

  7. 다음을 선택합니다.

  8. 재정의 지정 페이지의 속성 값을 지정한 값으로 남겨두고 다음을 선택합니다.

  9. 검토 페이지에서 선택 사항을 검토하고 제출을 선택하십시오.

  10. CloudFormation이 지정한 리전에 새 스택을 생성하기 시작합니다. StackSet 세부 정보 페이지의 작업 탭에서 진행 상황을 모니터링할 수 있습니다.

정리

원치 않는 AWS Config 리소스에 대한 요금이 발생하지 않도록 하려면, StackSet에서 스택을 삭제하고, StackSet 자체를 삭제하고, 이 자습서에서 생성한 IAM 역할을 제거하여 정리해야 합니다. 모든 리소스는 사용자의 계정 내에서 배포되므로 간단히 정리할 수 있습니다.

StackSet에서 스택을 삭제하려면
  1. StackSet 페이지에서 my-awsconfig-stackset를 선택합니다.

  2. StackSet를 선택한 상태로 작업 메뉴에서 StackSet에서 스택 삭제를 선택합니다.

  3. 배포 옵션 설정 페이지의 계정에서 계정에 스택 배포를 선택하고 계정 ID를 입력합니다.

  4. 리전 지정에서 스택을 배포한 리전을 모두 선택합니다.

  5. 배포 옵션의 경우 기본 설정을 유지합니다.

  6. 스택과 해당 리소스가 삭제되도록, 스택 유지가 켜져 있지 않은지 확인합니다.

  7. 다음을 선택합니다.

  8. 검토 페이지에서 선택 사항을 검토하고 제출을 선택하십시오.

  9. CloudFormation이 StackSet에서 스택을 삭제하기 시작합니다. StackSet 세부 정보 페이지의 작업 탭에서 진행 상황을 모니터링할 수 있습니다.

StackSet를 삭제하려면
  1. 스택이 모두 삭제된 후 StackSet 페이지에서 my-awsconfig-stackset를 선택합니다.

  2. StackSet를 선택한 상태로 작업 메뉴에서 StackSet 삭제를 선택합니다.

  3. 확인하라는 메시지가 나타나면 삭제를 선택합니다.

IAM 서비스 역할을 삭제하려면

사용자의 계정에만 배포했으므로, 이 단일 계정에서 IAM 역할만 삭제하면 되고 다중 계정 배포보다 정리가 훨씬 간단합니다.

  1. IAM 콘솔을 엽니다.

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

  3. 검색 상자에 AWSCloudFormationStackSet를 입력하여 이 자습서에서 생성한 역할을 찾습니다.

  4. AWSCloudFormationStackSetAdministrationRole 옆의 확인란을 선택합니다.

  5. 페이지 상단에서 삭제를 선택합니다.

  6. 확인 대화 상자에 delete를 입력한 다음 삭제를 선택합니다.

  7. 동일한 프로세스를 반복하여 AWSCloudFormationStackSetExecutionRole을 삭제합니다.

StackSet를 삭제하고 나면, AWS::S3::Bucket 리소스의 DeletionPolicy 속성으로 인해 각 AWS 리전에 Amazon S3 버킷이 남아 있습니다. 따라서 AWS Config 기록 데이터가 보존됩니다. 이 데이터가 더 이상 필요하지 않은 경우 버킷을 수동으로 안전하게 삭제할 수 있습니다. 버킷을 삭제하려면 먼저 버킷을 비워야 합니다. 버킷을 비우면 버킷 내 모든 객체가 삭제됩니다.

Amazon S3 버킷을 비우고 삭제하려면
  1. Amazon S3 콘솔을 엽니다.

  2. 콘솔 왼쪽의 탐색 창에서 버킷을 선택합니다.

  3. 배포한 각 리전에서 이 StackSet에 대해 생성된 버킷이 버킷 목록에 표시됩니다. 이 StackSet에 대해 생성된 버킷의 이름 옆에 있는 옵션을 선택한 다음 비우기를 선택합니다.

  4. 버킷 비우기 페이지에서 텍스트 필드에 permanently delete를 입력하여 버킷을 비우려는 의사를 확정한 후 비우기를 선택합니다.

  5. [버킷 비우기: 상태(Empty bucket: Status)] 페이지에서 버킷 비우기 프로세스의 진행 상황을 모니터링합니다.

  6. 버킷 목록으로 돌아가려면 종료를 선택합니다.

  7. 버킷의 이름 옆에 있는 옵션을 선택한 다음 삭제를 선택합니다.

  8. 확인 메시지가 나타나면 버킷의 이름을 입력한 다음 버킷 삭제를 선택합니다.

  9. 버킷 목록에서 버킷 삭제 프로세스의 진행 상황을 모니터링합니다. Amazon S3가 버킷 삭제를 완료하면 목록에서 해당 버킷을 제거합니다.

  10. 다른 리전의 StackSet에 의해 생성된 각 버킷마다 이 프로세스를 반복합니다.

다음 단계

축하합니다! 샘플 템플릿을 사용하여 StackSet를 생성하고, 계정 내의 여러 리전에 스택을 배포하고, StackSet를 업데이트하고, 스택을 더 추가하고, 리소스를 정리했습니다. 단일 계정 배포에 집중함으로써, StackSet의 핵심 다중 리전 기능을 학습하기에 편리하도록 정리 프로세스를 간소화했습니다.

StackSet에 대해 자세히 알아보려면 다음 주제를 살펴보세요.