여러 AWS 계정의 VPC에서 일관된 가용 영역 사용 - 권장 가이드

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

여러 AWS 계정의 VPC에서 일관된 가용 영역 사용

작성자: Adam Spicer(AWS)

요약

Amazon Web Services(AWS) 클라우드에서 가용 영역은 AWS 계정마다 다를 수 있는 이름과 위치를 식별하는 가용 영역 ID(AZ ID)를 가질 수 있습니다. AWS CloudFormation을 사용하여 Virtual Private Cloud(VPC) 를 생성하는 경우, 서브넷을 생성할 때 가용 영역의 이름 또는 ID를 지정해야 합니다. 여러 계정에서 VPC를 생성하는 경우 가용 영역 이름이 무작위로 지정되므로 서브넷은 각 계정에서 서로 다른 가용 영역을 사용합니다. 

계정 전체에서 동일한 가용 영역을 사용하려면 각 계정의 가용 영역 이름을 동일한 AZ ID에 매핑해야 합니다. 예를 들어, 다음 다이어그램은 use1-az6 AZ ID가 AWS 계정 A에서 us-east-1a, AWS 계정 Z에서 us-east-1c로 이름이 지정되었음을 보여줍니다.

use1-az6 AZ ID의 이름은 AWS 계정 A에서는 us-east-1a이고 AWS 계정 Z에서는 us-east-1c입니다.

이 패턴은 서브넷에서 동일한 가용 영역을 사용할 수 있는 확장 가능한 계정 간 솔루션을 제공하여 영역 일관성을 보장하는 데 도움이 됩니다. 영역 일관성을 보장하면 계정 간 네트워크 트래픽이 가용 영역 간 네트워크 경로를 피하므로 데이터 전송 비용을 줄이고 워크로드 간 네트워크 지연 시간을 줄일 수 있습니다.

이 패턴은 AWS CloudFormation AvailabilityZoneId property에 대한 대안적인 접근 방식입니다.

사전 조건 및 제한 사항

사전 조건 

  • 동일한 AWS 리전에 2개 이상의 활성 AWS 계정이 있어야 합니다.

  • 해당 리전의 VPC 요구 사항을 지원하는 데 필요한 가용 영역 수를 평가하십시오.

  • 지원해야 하는 각 가용 영역의 AZ ID를 식별하고 기록하십시오. 이에 대한 자세한 내용은 AWS Resource Access Manager 설명서에서 AWS 리소스의 가용 영역 ID를 참조하십시오. 

  • 쉼표로 구분하여 정렬된 AZ ID 목록입니다. 예를 들어 목록의 첫 번째 가용 영역은 az1로 매핑되고 두 번째 가용 영역은 az2로 매핑되며 이 매핑 구조는 쉼표로 구분된 목록이 완전히 매핑될 때까지 계속됩니다. 매핑할 수 있는 최대 AZ ID 수는 없습니다. 

  • GitHub 다중 계정 가용 영역 매핑 리포지토리의 az-mapping.yaml 파일이 로컬 시스템에 복사되었습니다.

아키텍처

다음 다이어그램은 계정에 배포되고 AWS Systems Manager Parameter Store 값을 생성하는 아키텍처를 보여줍니다. 이 파라미터 스토어 값은 계정에서 VPC를 생성할 때 사용됩니다.

각 AZ ID에 대한 Systems Manager 파라미터 스토어 값을 생성하고 AZ 이름을 저장하는 워크플로입니다.

이 다이어그램은 다음 워크플로를 보여줍니다.

  1. 이 패턴의 솔루션은 VPC의 영역 일관성이 필요한 모든 계정에 배포됩니다. 

  2. 솔루션은 각 AZ ID에 대한 파라미터 스토어 값을 생성하고 새 가용 영역 이름을 저장합니다. 

  3. AWS CloudFormation 템플릿은 각 파라미터 스토어 값에 저장된 가용 영역 이름을 사용하므로 영역 일관성이 보장됩니다.

다음 다이어그램은 이 패턴의 솔루션으로 VPC를 생성하는 워크플로를 보여줍니다.

워크플로는 CloudFormation 템플릿을 제출하여 올바른 AZ IDs로 VPC를 생성합니다.

이 다이어그램은 다음 워크플로를 보여줍니다.

  1. VPC를 생성하기 위한 템플릿을 AWS CloudFormation에 제출합니다.

  2. AWS CloudFormation은 각 가용 영역에 대한 파라미터 스토어 값을 확인하고 각 AZ ID에 대한 가용 영역 이름을 반환합니다.

  3. VPC는 영역 일관성에 필요한 올바른 AZ ID로 생성됩니다.

이 패턴의 솔루션을 배포한 후에는 파라미터 스토어 값을 참조하는 서브넷을 생성할 수 있습니다. AWS CloudFormation을 사용하는 경우 다음 YAML 형식의 샘플 코드에서 가용 영역 매핑 파라미터 값을 참조할 수 있습니다.

Resources: PrivateSubnet1AZ1: Type: AWS::EC2::Subnet Properties: VpcId: !Ref VPC CidrBlock: !Ref PrivateSubnetAZ1CIDR AvailabilityZone: !Join - '' - - '{{resolve:ssm:/az-mapping/az1:1}}'

이 샘플 코드는 GitHub 다중 계정 가용 영역 매핑 리포지토리의 vpc-example.yaml  파일에 포함되어 있습니다. 영역 일관성을 위해 파라미터 스토어 값에 맞춰 VPC와 서브넷을 생성하는 방법을 보여줍니다.

기술 스택  

  • CloudFormation

  • AWS Lambda

  • AWS Systems Manager Parameter Store

자동화 및 규모 조정

AWS CloudFormation StackSets나 AWS Control Tower에 대한 사용자 지정 솔루션을 사용하여 이 패턴을 모든 AWS 계정에 배포할 수 있습니다. 자세한 내용은 AWS CloudFormation 설명서의 AWS CloudFormation StackSets 사용AWS 솔루션 라이브러리의 AWS Control Tower 사용자 정의를 참조하십시오. 

AWS CloudFormation 템플릿을 배포한 후, 파라미터 스토어 값을 사용하도록 템플릿을 업데이트하고 파이프라인 또는 요구 사항에 따라 VPC를 배포할 수 있습니다. 

도구

서비스

  • AWS CloudFormation을 사용하면 AWS 리소스를 모델링 및 설정하고, 빠르고 일관되게 프로비저닝하고, 수명 주기 전반에 걸쳐 관리할 수 있습니다. 템플릿을 사용하여 리소스와 해당 종속성을 설명하고 리소스를 개별적으로 관리하는 대신 스택으로 함께 시작 및 구성할 수 있습니다. 여러 AWS 계정 및 AWS 리전에서 스택을 관리하고 프로비저닝할 수 있습니다.

  • AWS Lambda는 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 컴퓨팅 서비스입니다. Lambda는 필요 시에만 코드를 실행하며, 일일 몇 개의 요청에서 초당 수천 개의 요청까지 자동으로 규모를 조정합니다. 사용한 컴퓨팅 시간만큼만 비용을 지불하고, 코드가 실행되지 않을 때는 요금이 부과되지 않습니다.

  • AWS Systems Manager Parameter Store는 AWS Systems Manager의 기능입니다. 구성 데이터 관리 및 암호 관리를 위한 안전한 계층적 스토리지를 제공합니다.

코드

이 패턴의 코드는 GitHub 다중 계정 가용 영역 매핑 리포지토리에서 제공됩니다.

에픽

작업설명필요한 기술

리전에 필요한 가용 영역을 결정합니다.

  1. 해당 리전에서 일관되게 사용해야 하는 AZ ID를 결정합니다. 

  2. 쉼표로 구분된 목록에 AZ ID를 적용하려는 순서대로 AZ ID를 기록합니다. 예를 들어 목록의 첫 번째 가용 영역은 az1로 매핑되고 두 번째 가용 영역은 az2로 매핑됩니다. 매핑할 수 있는 최대 AZ ID 수는 없습니다.

클라우드 아키텍트

az-mapping.yaml 파일을 배포합니다.

az-mapping.yaml 파일을 사용하여 필요한 모든 AWS 계정에 AWS CloudFormation 스택을 생성합니다. AZIds 파라미터에는 앞서 생성한 쉼표로 구분된 목록을 사용하십시오. 

AWS CloudFormation StackSets 또는 AWS Control Tower 솔루션에 대한 사용자 정의를 사용하는 것이 좋습니다.

클라우드 아키텍트
작업설명필요한 기술

AWS CloudFormation 템플릿을 사용자 지정합니다.

AWS CloudFormation을 사용하여 서브넷을 생성할 때는 이전에 생성한 파라미터 스토어 값을 사용하도록 템플릿을 사용자 지정합니다.

샘플 템플릿은 GitHub 다중 계정 가용 영역 매핑 리포지토리의 vpc-example.yaml 파일을 참조하십시오.

클라우드 아키텍트

VPC를 배포합니다.

사용자 지정된 AWS CloudFormation 템플릿을 계정에 배포하십시오. 그러면 해당 리전의 각 VPC는 서브넷에 사용되는 가용 영역에서 영역 일관성을 유지합니다.

클라우드 아키텍트

관련 리소스