샘플 템플릿을 사용하여 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를 생성하려면
-
CloudFormation 콘솔
을 엽니다. -
화면 상단의 탐색 모음에서 StackSet를 관리할 AWS 리전을 선택합니다.
StackSet를 지원하는 모든 리전을 선택할 수 있습니다. 선택한 리전은 StackSet를 사용하여 배포할 수 있는 리전에 영향을 주지 않습니다.
-
탐색 창에서 스택 세트를 선택합니다.
-
StackSet 페이지의 상단에서 StackSet 만들기를 선택합니다.
-
권한에서 셀프 서비스 권한을 선택하고 사전 작업에서 생성한 IAM 역할을 선택합니다.
-
IAM 관리자 역할에서 AWSCloudFormationStackSetAdministrationRole을 선택합니다.
-
IAM 실행 역할 이름에서 AWSCloudFormationStackSetExecutionRole을 선택합니다.
-
-
Prerequisite - Prepare template(사전 조건 - 템플릿 준비)에서 Use a sample template(샘플 템플릿 사용)을 선택하십시오.
-
샘플 템플릿 선택 아래에서 AWS Config 활성화 템플릿을 선택합니다. 그리고 다음을 선택합니다.
이 템플릿은 구성 레코더, 전송 채널 등, 계정에서 AWS Config를 활성화하는 데 필요한 리소스를 생성합니다.
-
StackSet 세부 정보 지정 페이지의 StackSet 이름에
my-awsconfig-stackset
를 입력합니다. -
StackSet 설명에
A StackSet that enables Config across multiple Regions
를 입력합니다. -
파라미터에서 다음과 같이 AWS Config 설정을 구성합니다.
-
모든 리소스 유형 지원에서 지원되는 모든 리소스 유형을 기록하려면 기본값(true)을 유지하세요.
-
글로벌 리소스 유형 포함에서 IAM 역할과 같은 글로벌 리소스를 제외하려면 기본값(false)를 유지하세요.
-
모두 지원되지 않는 경우 리소스 유형 나열을 <All>로 설정된 상태로 두세요.
-
Config 서비스 연결 역할 리소스를 포함하는 리전의 경우 <DeployToAnyRegion>을
us-west-2
로 바꾸세요.즉,
AWSServiceRoleForConfig
서비스 연결 역할은 스택이 미국 서부(오리건) 리전에 배포된 경우에만 생성됩니다. 이 절차의 뒷부분에서 배포 리전을 선택합니다. -
구성 레코더 기록 빈도에서 매일 기록을 선택합니다.
-
-
다음을 선택하여 계속 진행합니다.
-
StackSet 옵션 구성 페이지에서 새 태그 추가를 선택하고 키 및 값 페어를 지정하여 태그를 추가합니다.
-
키(Key)에
Stage
를 입력합니다. -
값에
Test
을(를) 입력합니다.
StackSet에 적용한 태그는 스택에 의해 생성된 리소스에 적용됩니다.
-
-
실행 구성에서 활성을 선택하여 CloudFormation의 최적화된 작업 처리를 활성화합니다.
-
배포 시간을 단축하기 위해, 서로 충돌하지 않는 작업이 동시에 실행됩니다.
-
서로 충돌하는 작업은 요청된 순서대로 자동으로 대기열에 추가되고 처리됩니다.
실행 중이거나 대기 중인 작업이 있는 경우 CloudFormation은 충돌하지 않더라도 모든 수신 작업을 대기열에 넣습니다. 이 시간 동안에는 실행 설정을 변경할 수 없습니다.
-
-
다음을 선택합니다.
-
배포 옵션 설정 페이지의 StackSet에 스택 추가에서 새 스택 배포를 선택합니다.
-
계정의 경우 Deploy stacks in accounts(계정에 스택 배포)를 선택하십시오.
-
텍스트 상자에 AWS 계정 ID를 입력합니다.
-
리전 지정에서 다음 리전을 다음 순서로 선택합니다.
-
미국 서부(오리건) 리전(
us-west-2
) -
미국 동부(버지니아 북부) 리전(
us-east-1
)
필요한 경우, 미국 서부(오레곤) 리전 옆에 있는 위쪽 화살표를 사용하여 목록의 첫 번째 항목으로 이동합니다. 리전 순서에 따라 배포 순서가 결정됩니다.
-
-
배포 옵션에서 다음 설정을 구성합니다.
-
Maximum concurrent accounts(최대 동시 계정)의 경우 Number(번호) 및 1의 기본값을 유지합니다.
다중 계정 배포의 경우 이 설정을 사용하면 CloudFormation이 한 번에 한 계정에서만 스택을 배포합니다.
-
Failure tolerance(내결함성)의 경우, 번호 및 0의 기본값을 유지하십시오.
즉, CloudFormation이 현재 리전에서 배포를 중단하고 나머지 리전에서 배포를 취소하기 전에 지정된 리전 중 하나에서 최대 0개의 스택 배포가 실패할 수 있습니다.
-
리전 동시성에서 순차적(기본값)을 선택합니다.
이 설정을 선택하면 CloudFormation이 한 리전에서 배포를 완료한 후에 다음 리전에서 배포를 시작합니다.
-
동시성 모드에서는 기본값인 엄격한 내결함성을 그대로 둡니다.
다중 계정 배포의 경우 실패 시 계정 동시성 수준이 감소하여 내결함성 +1 이내로 유지됩니다.
-
-
다음을 선택합니다.
-
[검토] 페이지에서 선택 사항을 검토합니다. 변경하려면 관련 섹션에서 편집을 선택합니다.
-
StackSet를 생성할 준비가 되면 제출을 선택합니다.
StackSet 생성 모니터링
제출을 선택하면 CloudFormation이 StackSet를 생성하고 계정의 지정된 리전에 스택을 배포하기 시작합니다. 작업 진행 상황을 모니터링할 수 있는 StackSet 세부 정보 페이지가 자동으로 열립니다.
StackSet 생성을 모니터링하려면
-
StackSet 세부 정보 페이지에는 진행 중인 현재 작업을 보여주는 작업 탭이 기본적으로 표시됩니다.
-
처음에 작업 상태는
RUNNING
입니다. 사용자가 구성한 배포 옵션에 따라 CloudFormation이 지정한 리전에 스택을 생성합니다. -
작업에 대한 세부 정보를 보려면 목록에서 작업 ID를 선택합니다.
-
작업 세부 정보 페이지에서 각 리전에서 생성 중인 스택 인스턴스의 상태를 볼 수 있습니다.
-
작업 상태가
SUCCEEDED
로 변경될 때까지 기다립니다. 이는 StackSet 및 모든 스택 인스턴스가 성공적으로 생성되었음을 나타냅니다.
StackSet 결과 보기
StackSet 생성이 완료되고 나면, 배포된 스택 인스턴스를 보고 지정한 리전의 계정에서 AWS Config가 활성화되었는지 확인할 수 있습니다.
StackSet 결과를 보려면
-
StackSet 세부 정보 페이지에서 스택 인스턴스 탭을 선택합니다.
-
지정한 리전의 계정에 생성된 스택 인스턴스 목록이 표시되어야 합니다. 각 스택 인스턴스의 상태는
SUCCEEDED
여야 하며, 이는 성공적으로 배포되었음을 나타냅니다. -
계정에서 AWS Config가 활성화되어 있는지 확인하려면 배포된 각 리전에서 AWS Config 콘솔을 확인하면 됩니다.
StackSet 업데이트
StackSet를 생성한 후 파라미터 값을 수정하거나 리전을 더 추가하여 업데이트할 수 있습니다. 이 섹션에서는 AWS Config 기록 빈도 파라미터를 업데이트하는 방법을 살펴보겠습니다.
StackSet를 업데이트하려면
-
StackSet 페이지에서
my-awsconfig-stackset
를 선택합니다. -
StackSet를 선택한 상태로 작업 메뉴에서 StackSet 세부 정보 편집을 선택합니다.
-
템플릿 선택 페이지의 사전 조건 - 템플릿 준비에서 현재 템플릿 사용을 선택합니다.
-
다음을 선택합니다.
-
StackSet 세부 정보 지정 페이지의 파라미터에서 구성 레코더 기록 빈도를 찾아 매일에서 계속으로 변경합니다.
-
다음을 선택합니다.
-
StackSet 옵션 구성 페이지에서 설정을 그대로 두고 다음을 선택합니다.
-
배포 옵션 설정 페이지에서 StackSet를 생성할 때 사용한 것과 동일한 리전과 계정 ID를 지정합니다.
-
배포 옵션의 경우 이전과 동일한 설정을 유지합니다.
-
다음을 선택합니다.
-
검토 페이지에서 변경 내용을 검토하고 제출을 선택합니다.
-
CloudFormation이 StackSet 업데이트를 시작합니다. StackSet 세부 정보 페이지의 작업 탭에서 진행 상황을 모니터링할 수 있습니다.
StackSet에 스택 추가
새 리전에 추가로 배포하여 StackSet에 스택을 더 추가할 수 있습니다. 이 섹션에서는 새 리전에 스택을 추가하는 방법을 보여줍니다.
StackSet에 스택을 추가하려면
-
StackSet 페이지에서
my-awsconfig-stackset
를 선택합니다. -
StackSet를 선택한 상태로 작업 메뉴에서 StackSet에 스택 추가를 선택합니다.
-
배포 옵션 설정 페이지의 StackSet에 스택 추가에서 새 스택 배포를 선택합니다.
-
계정에서 계정에 스택 배포를 선택하고 계정 ID를 입력합니다.
-
리전 지정에서 유럽(아일랜드)(
eu-west-1
)와 같은 새 리전을 선택합니다. -
배포 옵션의 경우 이전과 동일한 설정을 유지합니다.
-
다음을 선택합니다.
-
재정의 지정 페이지의 속성 값을 지정한 값으로 남겨두고 다음을 선택합니다.
-
검토 페이지에서 선택 사항을 검토하고 제출을 선택하십시오.
-
CloudFormation이 지정한 리전에 새 스택을 생성하기 시작합니다. StackSet 세부 정보 페이지의 작업 탭에서 진행 상황을 모니터링할 수 있습니다.
정리
원치 않는 AWS Config 리소스에 대한 요금이 발생하지 않도록 하려면, StackSet에서 스택을 삭제하고, StackSet 자체를 삭제하고, 이 자습서에서 생성한 IAM 역할을 제거하여 정리해야 합니다. 모든 리소스는 사용자의 계정 내에서 배포되므로 간단히 정리할 수 있습니다.
StackSet에서 스택을 삭제하려면
-
StackSet 페이지에서
my-awsconfig-stackset
를 선택합니다. -
StackSet를 선택한 상태로 작업 메뉴에서 StackSet에서 스택 삭제를 선택합니다.
-
배포 옵션 설정 페이지의 계정에서 계정에 스택 배포를 선택하고 계정 ID를 입력합니다.
-
리전 지정에서 스택을 배포한 리전을 모두 선택합니다.
-
배포 옵션의 경우 기본 설정을 유지합니다.
-
스택과 해당 리소스가 삭제되도록, 스택 유지가 켜져 있지 않은지 확인합니다.
-
다음을 선택합니다.
-
검토 페이지에서 선택 사항을 검토하고 제출을 선택하십시오.
-
CloudFormation이 StackSet에서 스택을 삭제하기 시작합니다. StackSet 세부 정보 페이지의 작업 탭에서 진행 상황을 모니터링할 수 있습니다.
StackSet를 삭제하려면
-
스택이 모두 삭제된 후 StackSet 페이지에서
my-awsconfig-stackset
를 선택합니다. -
StackSet를 선택한 상태로 작업 메뉴에서 StackSet 삭제를 선택합니다.
-
확인하라는 메시지가 나타나면 삭제를 선택합니다.
IAM 서비스 역할을 삭제하려면
사용자의 계정에만 배포했으므로, 이 단일 계정에서 IAM 역할만 삭제하면 되고 다중 계정 배포보다 정리가 훨씬 간단합니다.
-
IAM 콘솔
을 엽니다. -
탐색 창에서 역할을 선택합니다.
-
검색 상자에
AWSCloudFormationStackSet
를 입력하여 이 자습서에서 생성한 역할을 찾습니다. -
AWSCloudFormationStackSetAdministrationRole 옆의 확인란을 선택합니다.
-
페이지 상단에서 삭제를 선택합니다.
-
확인 대화 상자에
delete
를 입력한 다음 삭제를 선택합니다. -
동일한 프로세스를 반복하여 AWSCloudFormationStackSetExecutionRole을 삭제합니다.
StackSet를 삭제하고 나면, AWS::S3::Bucket
리소스의 DeletionPolicy
속성으로 인해 각 AWS 리전에 Amazon S3 버킷이 남아 있습니다. 따라서 AWS Config 기록 데이터가 보존됩니다. 이 데이터가 더 이상 필요하지 않은 경우 버킷을 수동으로 안전하게 삭제할 수 있습니다. 버킷을 삭제하려면 먼저 버킷을 비워야 합니다. 버킷을 비우면 버킷 내 모든 객체가 삭제됩니다.
Amazon S3 버킷을 비우고 삭제하려면
-
Amazon S3 콘솔
을 엽니다. -
콘솔 왼쪽의 탐색 창에서 버킷을 선택합니다.
-
배포한 각 리전에서 이 StackSet에 대해 생성된 버킷이 버킷 목록에 표시됩니다. 이 StackSet에 대해 생성된 버킷의 이름 옆에 있는 옵션을 선택한 다음 비우기를 선택합니다.
-
버킷 비우기 페이지에서 텍스트 필드에
permanently delete
를 입력하여 버킷을 비우려는 의사를 확정한 후 비우기를 선택합니다. -
[버킷 비우기: 상태(Empty bucket: Status)] 페이지에서 버킷 비우기 프로세스의 진행 상황을 모니터링합니다.
-
버킷 목록으로 돌아가려면 종료를 선택합니다.
-
버킷의 이름 옆에 있는 옵션을 선택한 다음 삭제를 선택합니다.
-
확인 메시지가 나타나면 버킷의 이름을 입력한 다음 버킷 삭제를 선택합니다.
-
버킷 목록에서 버킷 삭제 프로세스의 진행 상황을 모니터링합니다. Amazon S3가 버킷 삭제를 완료하면 목록에서 해당 버킷을 제거합니다.
-
다른 리전의 StackSet에 의해 생성된 각 버킷마다 이 프로세스를 반복합니다.
다음 단계
축하합니다! 샘플 템플릿을 사용하여 StackSet를 생성하고, 계정 내의 여러 리전에 스택을 배포하고, StackSet를 업데이트하고, 스택을 더 추가하고, 리소스를 정리했습니다. 단일 계정 배포에 집중함으로써, StackSet의 핵심 다중 리전 기능을 학습하기에 편리하도록 정리 프로세스를 간소화했습니다.
StackSet에 대해 자세히 알아보려면 다음 주제를 살펴보세요.
-
CloudFormation StackSet 내 스택에서 파라미터 값 재정의 - 특정 계정 및 리전의 파라미터 값을 재정의하는 방법을 알아봅니다.
-
서비스 관리형 권한으로 AWS CloudFormation StackSet 생성 - AWS Organizations를 사용하여 다중 계정 배포를 위한 StackSet를 생성하는 방법을 살펴봅니다.