본문 바로가기
CSP (Cloud Service Provider)/AWS

[AWS] CloudFormation Stackset

by BTC_마루 2023. 11. 9.

안녕하세요 비티시보이즈입니다.

 

지난번에는 CloudFormation에 대해 포스팅 했는데요.

이번에는 CloudFormation Stackset에 대해 포스팅하겠습니다.

 

 


 

 

AWS CloudFormation StackSets에서는 단일 작업으로 여러 계정과 AWS 리전에 대해 스택을 생성, 업데이트 또는 삭제할 수 있도록 하여 스택의 기능을 확장합니다. 관리자 계정을 사용하여 AWS CloudFormation 템플릿을 정의 및 관리하고, 템플릿을 지정된 AWS 리전에 대해 선택한 대상 계정으로 스택을 프로비저닝하기 위한 기본으로 사용합니다.

 

 

StackSets를 사용하는 경우에는 스택 세트, 스택 인스턴스  스택으로 작업합니다.

 

관리자 및 대상 계정

관리자 계정은 스택 세트를 생성한 AWS 계정입니다. 서비스 관리형 권한이 있는 스택 세트의 경우 관리자 계정은 조직의 관리 계정 또는 위임된 관리자 계정입니다. 스택 세트를 생성한 AWS 관리자 계정으로 로그인하여 스택 세트를 관리할 수 있습니다.

 

대상 계정은 스택 세트에서 하나 이상의 스택을 생성, 업데이트 또는 삭제할 계정입니다. 스택 세트를 사용하여 대상 계정에 스택을 생성하기 전에 관리자 계정과 대상 계정 간에 신뢰 관계를 설정합니다.

 

AWS CloudFormation StackSets

스택 세트를 사용하면 단일 CloudFormation 템플릿을 사용하여 여러 리전에 대해 AWS 계정에서 스택을 생성할 수 있습니다. 스택 세트의 CloudFormation 템플릿은 각 스택의 모든 리소스를 정의합니다. 스택 세트를 생성할 때 템플릿에 필요한 파라미터 및 기능에 더해 사용할 템플릿을 지정합니다.

 

스택 세트를 정의하면 지정한 대상 계정과 AWS 리전에서 스택을 생성, 업데이트 또는 삭제할 수 있습니다. 스택을 생성, 업데이트 또는 삭제할 때 작업 기본 설정을 지정할 수도 있습니다. 예를 들어 작업을 수행하려는 리전의 순서, 스택 작업이 중지되기 전의 내결함성 임계값, 스택 작업을 동시에 수행하는 계정 수를 포함시킵니다.

스택 세트는 리전 리소스입니다. 한 AWS 리전에서 스택 세트를 생성하면 해당 리전을 볼 때만 보거나 스택 세트를 변경할 수 있습니다.

 

스택 세트에 대한 권한 모델

자체 관리형 권한 또는 서비스 관리형 권한을 사용하여 스택 세트를 생성할 수 있습니다.

 

자체 관리형 권한을 사용하면 StackSets가 계정 및 리전 전체에 배포하는 데 필요한 IAM 역할을 생성할 수 있습니다. 이러한 역할은 스택 세트를 관리하는 계정과 스택 인스턴스를 배포하는 계정 간에 신뢰 관계를 설정하는 데 필요합니다. 이 권한 모델을 사용하여 StackSets에서는 IAM 역할을 생성할 수 있는 권한이 있는 모든 AWS 계정에 배포할 수 있습니다.

 

서비스 관리형 권한을 사용하면 AWS Organizations에서 관리하는 계정에 스택 인스턴스를 배포할 수 있습니다. 이 권한 모델을 사용하면 필요한 IAM 역할을 생성할 필요가 없습니다. StackSets가 사용자를 대신하여 IAM 역할을 생성합니다. 이 모델을 사용하면 나중에 조직에 추가되는 계정에 자동 배포를 설정할 수도 있습니다.

 

 

스택 인스턴스

스택 인스턴스는 리전 내 대상 계정에서 스택에 대한 참조입니다. 스택 인스턴스는 스택 없이 존재할 수 있습니다. 예를 들어 몇 가지 이유로 인해 스택을 생성할 수 없는 경우 스택 인스턴스에 스택 생성 실패에 대한 이유가 표시됩니다. 스택 인스턴스는 하나의 스택 세트에만 연결됩니다.

 

다음 그림에서는 스택 세트, 스택 작업 및 스택 간의 논리적 관계를 보여줍니다. 스택 세트를 업데이트하면 연결된 모든 스택 인스턴스가 모든 계정 및 리전에서 업데이트됩니다.

 

스택 세트 작업

스택 세트에 대해 다음 작업을 수행할 수 있습니다.

스택 세트 생성

새 스택 세트 생성에는 스택을 생성하는 데 사용할 CloudFormation 템플릿 지정, 스택을 생성할 대상 계정 지정 및 대상 계정의 스택을 배포할 AWS 리전 식별이 포함됩니다. 스택 세트를 사용하면 동일한 스택 리소스를 동일한 설정으로 선택한 리전 내의 지정된 모든 대상 계정에 일관되게 배포할 수 있습니다.

스택 세트 업데이트

스택 세트를 업데이트하면 스택 세트의 스택으로 변경 사항을 푸시합니다. 다음 방법 중 하나로 스택 세트를 업데이트할 수 있습니다. 템플릿 업데이트는 항상 모든 스택에 영향을 줍니다. 스택 세트의 일부 스택에 대한 템플릿을 선택적으로 업데이트할 수 없지만 그 이외에는 가능합니다.

  • 템플릿의 기존 설정을 변경하거나 특정 서비스에 대한 파라미터 설정 업데이트 또는 새 Amazon EC2 인스턴스 추가 등의 새 리소스를 추가합니다.
  • 템플릿을 다른 템플릿으로 바꿉니다.
  • 기존 또는 추가 리전의 기존 또는 추가 대상 계정에 스택을 추가합니다.
스택 삭제

스택을 삭제하면 지정한 리전 내의 지정한 대상 계정에서 스택과 이와 관련된 모든 리소스가 제거됩니다. 스택을 삭제하는 방법은 다음과 같습니다.

  • 일부 대상 계정에서 스택을 삭제하고 다른 대상 계정에서 다른 스택을 계속 실행합니다.
  • 일부 리전에서 스택을 삭제하고 다른 리전에서 스택을 계속 실행합니다.
  • 스택 세트에서 스택을 삭제하지만, 스택 보관(Retain Stacks) 옵션을 선택하여 스택 세트와 상관없이 스택이 계속 실행되도록 해당 스택을 저장합니다. 그런 다음 AWS CloudFormation의 스택 세트 외부에 보관된 스택을 관리할 수 있습니다.
  • 전체 스택 세트를 삭제하기 위해 스택 세트에서 모든 스택을 삭제합니다.

스택 세트에 스택 인스턴스가 없는 경우에만 스택 세트를 삭제할 수 있습니다.

 


 

정리하겠습니다.

 

AWS CloudFormation StackSets은 여러 AWS 계정 및 리전에 걸쳐 동일한 클라우드 인프라를 배포하고 관리하기 위한 서비스입니다. StackSets를 사용하면 동일한 스택을 여러 계정 또는 리전에 배포하거나 업데이트하는 것이 간단해집니다.


CloudFormation StackSets 주요 개념


1. StackSet: StackSet은 여러 AWS 계정과 리전에 걸쳐 스택을 배포하거나 업데이트하기 위한 논리적 그룹입니다. StackSet을 생성하면 한 번 정의된 템플릿을 여러 위치로 배포할 수 있습니다.


2. StackSet 인스턴스: StackSet 인스턴스는 StackSet에서 관리하는 스택을 나타냅니다. 예를 들어, 같은 스택 템플릿을 사용하여 여러 계정의 각각의 스택을 나타내며 StackSet 인스턴스로 관리됩니다.


3. 템플릿: StackSet을 생성할 때 사용되는 CloudFormation 템플릿은 모든 StackSet 인스턴스에 배포될 스택의 내용과 구성을 정의합니다.


4. 계정 및 리전 선택: StackSet을 생성할 때 특정 AWS 계정 및 리전을 선택하고, 해당 위치에 스택을 배포하거나 업데이트할 수 있습니다.


5. 운영자 및 대상 계정: StackSet을 관리하는 계정을 "운영자 계정"이라고 하며, 스택을 생성하고 관리하는 계정을 "대상 계정"이라고 합니다. StackSet은 운영자 계정에서 관리되지만 스택은 대상 계정에 생성됩니다.

 

AWS CloudFormation StackSets 사용 사례

 

1. 중앙 집중화된 인프라 관리: 여러 계정 및 리전에서 동일한 인프라를 관리하려면 StackSets를 사용하여 중앙 집중화된 방식으로 인프라를 배포하고 업데이트할 수 있습니다.


2. 보안 및 규정 준수: 보안 및 규정 준수를 유지하기 위해 일관된 정책 및 구성을 여러 계정에 적용하는 데 StackSets를 사용할 수 있습니다.


3. 환경 분할: 개발, 테스트 및 프로덕션 계정에 동일한 구성을 배포하려는 경우 StackSets를 활용하여 구성의 일관성을 유지할 수 있습니다.


4. 마이그레이션: 이전 환경에서 새로운 환경으로 리소스를 마이그레이션하는 데 StackSets를 사용하여 자동화된 프로세스를 구현할 수 있습니다.

 

 

AWS CloudFormation StackSets를 사용하면 AWS 인프라를 효과적으로 확장하고 중앙에서 관리할 수 있으며, 보안과 규정 준수를 강화할 수 있습니다.

 

CloudFormation Stackset에 대해 간략하게 알아봤습니다. 감사합니다.

댓글