

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

# 여러 AWS 계정의 VPC에서 일관된 가용 영역 사용
<a name="use-consistent-availability-zones-in-vpcs-across-different-aws-accounts"></a>

*Adam Spicer, Amazon Web Services*

## 요약
<a name="use-consistent-availability-zones-in-vpcs-across-different-aws-accounts-summary"></a>

Amazon Web Services(AWS) 클라우드에서 가용 영역은 AWS 계정마다 다를 수 있는 이름과 위치를 식별하는 [가용 영역 ID(AZ ID)](https://docs.aws.amazon.com/ram/latest/userguide/working-with-az-ids.html)를 가질 수 있습니다. 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입니다.](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/images/pattern-img/9954e7f9-d6ce-44bd-af99-0c6bb7cd3cb0/images/23c8a37b-2408-4534-a1e0-bccfa4d7fbe3.png)


 

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

[이 패턴은 AWS CloudFormation AvailabilityZoneId property](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-availabilityzoneid)에 대한 대안적인 접근 방식입니다.

## 사전 조건 및 제한 사항
<a name="use-consistent-availability-zones-in-vpcs-across-different-aws-accounts-prereqs"></a>

**사전 조건 **
+ 동일한 AWS 리전에 2개 이상의 활성 AWS 계정이 있어야 합니다.
+ 해당 리전의 VPC 요구 사항을 지원하는 데 필요한 가용 영역 수를 평가하십시오.
+ 지원해야 하는 각 가용 영역의 AZ ID를 식별하고 기록하십시오. 이에 대한 자세한 내용은 AWS Resource Access Manager 설명서에서 [AWS 리소스의 가용 영역 ID](https://docs.aws.amazon.com/ram/latest/userguide/working-with-az-ids.html)를 참조하십시오. 
+ 쉼표로 구분하여 정렬된 AZ ID 목록입니다. 예를 들어 목록의 첫 번째 가용 영역은 `az1`로 매핑되고 두 번째 가용 영역은 `az2`로 매핑되며 이 매핑 구조는 쉼표로 구분된 목록이 완전히 매핑될 때까지 계속됩니다. 매핑할 수 있는 최대 AZ ID 수는 없습니다. 
+ [GitHub 다중 계정 가용 영역 매핑](https://github.com/aws-samples/multi-account-az-mapping/) 리포지토리의 `az-mapping.yaml` 파일이 로컬 시스템에 복사되었습니다.

## 아키텍처
<a name="use-consistent-availability-zones-in-vpcs-across-different-aws-accounts-architecture"></a>

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

![각 AZ ID에 대한 Systems Manager 파라미터 저장소 값을 생성하고 AZ 이름을 저장하는 워크플로.](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/images/pattern-img/9954e7f9-d6ce-44bd-af99-0c6bb7cd3cb0/images/f1168464-55f8-4efc-9b28-6a0cda668b9e.png)


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

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

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

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

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

 

![워크플로는 CloudFormation 템플릿을 제출하여 올바른 AZ ID로 VPC를 생성합니다.](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/images/pattern-img/9954e7f9-d6ce-44bd-af99-0c6bb7cd3cb0/images/cd859430-ac25-479f-b56a-21da24cddf21.png)


 

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

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

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

1. 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 다중 계정 가용 영역 매핑](https://github.com/aws-samples/multi-account-az-mapping/) 리포지토리의 `vpc-example.yaml ` 파일에 포함되어 있습니다. 영역 일관성을 위해 파라미터 스토어 값에 맞춰 VPC와 서브넷을 생성하는 방법을 보여줍니다.

**기술 스택  **
+ AWS CloudFormation
+ AWS Lambda
+ AWS Systems Manager Parameter Store

**자동화 및 규모 조정**

AWS CloudFormation StackSets나 AWS Control Tower에 대한 사용자 지정 솔루션을 사용하여 이 패턴을 모든 AWS 계정에 배포할 수 있습니다. 자세한 내용은 AWS CloudFormation 설명서의 [AWS CloudFormation StackSets 사용](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html) 및 [AWS 솔루션 라이브러리의 AWS Control Tower 사용자 정의](https://aws.amazon.com/solutions/implementations/customizations-for-aws-control-tower/)를 참조하십시오. 

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

## 도구
<a name="use-consistent-availability-zones-in-vpcs-across-different-aws-accounts-tools"></a>

**서비스**
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)을 사용하면 AWS 리소스를 모델링 및 설정하고, 빠르고 일관되게 프로비저닝하고, 수명 주기 전반에 걸쳐 관리할 수 있습니다. 템플릿을 사용하여 리소스와 해당 종속성을 설명하고 리소스를 개별적으로 관리하는 대신 스택으로 함께 시작 및 구성할 수 있습니다. 여러 AWS 계정 및 AWS 리전에서 스택을 관리하고 프로비저닝할 수 있습니다.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)는 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 컴퓨팅 서비스입니다. Lambda는 필요 시에만 코드를 실행하며, 일일 몇 개의 요청에서 초당 수천 개의 요청까지 자동으로 규모를 조정합니다. 사용한 컴퓨팅 시간만큼만 비용을 지불하고, 코드가 실행되지 않을 때는 요금이 부과되지 않습니다.
+ [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html)는 AWS Systems Manager의 기능입니다. 구성 데이터 관리 및 암호 관리를 위한 안전한 계층적 스토리지를 제공합니다.

**코드**

이 패턴의 코드는 [GitHub 다중 계정 가용 영역 매핑](https://github.com/aws-samples/multi-account-az-mapping/) 리포지토리에서 제공됩니다.

## 에픽
<a name="use-consistent-availability-zones-in-vpcs-across-different-aws-accounts-epics"></a>

### az-mapping.yaml 파일 배포
<a name="deploy-the-az-mapping-yaml-file"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 리전에 필요한 가용 영역을 결정합니다. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/use-consistent-availability-zones-in-vpcs-across-different-aws-accounts.html) | 클라우드 아키텍트 | 
| az-mapping.yaml 파일을 배포합니다. | 이 `az-mapping.yaml` 파일을 사용하여 필요한 모든 AWS 계정에 AWS CloudFormation 스택을 생성합니다. `AZIds` 파라미터에는 앞서 생성한 쉼표로 구분된 목록을 사용하십시오. <br />[AWS CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html) 또는 [AWS Control Tower 솔루션에 대한 사용자 정의](https://aws.amazon.com/solutions/implementations/customizations-for-aws-control-tower/)를 사용하는 것이 좋습니다. | 클라우드 아키텍트 | 

### 계정에 VPC 배포
<a name="deploy-the-vpcs-in-your-accounts"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| AWS CloudFormation 템플릿을 사용자 지정합니다. | AWS CloudFormation을 사용하여 서브넷을 생성할 때는 이전에 생성한 파라미터 스토어 값을 사용하도록 템플릿을 사용자 지정합니다.<br />샘플 템플릿은 [GitHub 다중 계정 가용 영역 매핑](https://github.com/aws-samples/multi-account-az-mapping/) 리포지토리의 `vpc-example.yaml` 파일을 참조하십시오. | 클라우드 아키텍트 | 
| VPC를 배포합니다. | 사용자 지정된 AWS CloudFormation 템플릿을 계정에 배포하십시오. 그러면 해당 리전의 각 VPC는 서브넷에 사용되는 가용 영역에서 영역 일관성을 유지합니다. | 클라우드 아키텍트 | 

## 관련 리소스
<a name="use-consistent-availability-zones-in-vpcs-across-different-aws-accounts-resources"></a>
+ [AWS 리소스의 가용 영역 ID](https://docs.aws.amazon.com/ram/latest/userguide/working-with-az-ids.html)(AWS Resource Access Manager 설명서)
+ [AWS::EC2::Subnet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html)(AWS CloudFormation 설명서)