

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

# AFT를 AWS 계정 사용하여 새에 대한 Amazon VPC IPAM IPv4 CIDR 할당 자동화
<a name="automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft"></a>

*Kien Pham과 Alex Pazik, Amazon Web Services*

## 요약
<a name="automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft-summary"></a>

이 패턴은 [AWS Control Tower Account Factory for Terraform(AFT)을 사용하여 새에 대한 Amazon VPC IP 주소 관리자(IPAM)](https://docs.aws.amazon.com/controltower/latest/userguide/aft-overview.html) IPv4 CIDR 할당 AWS 계정 을 자동화하는 방법을 보여줍니다. 이는 `aft-account-customizations` 모듈을 사용하여 IPAM에서 새 Virtual Private Cloud(VPC)로 IPv4 CIDR 블록을 할당하는 계정 수준 사용자 지정을 사용하여 수행됩니다.

IPAM을 사용하면 대규모로 IP 주소를 구성, 할당, 모니터링 및 감사할 수 있으므로 AWS 워크로드의 IP 주소를 쉽게 계획, 추적 및 모니터링할 수 있습니다. 계정 벤딩 프로세스 중에 IPv4 CIDR 블록을 새 VPC에 할당하는 데 사용할 IPAM 및 IPAM 풀을 [생성할](https://docs.aws.amazon.com/vpc/latest/ipam/create-ipam.html) 수 있습니다.

## 사전 조건 및 제한 사항
<a name="automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft-prereqs"></a>

**사전 조건 **
+ 가 지원되는에서 AWS 계정 AWS Control Tower 활성화[AWS 리전](https://docs.aws.amazon.com/controltower/latest/userguide/region-how.html)되고 AFT가 배포된 활성
+ BitBucket, GitHub 및 GitHub Enterprise와 같은 지원되는 [버전 관리 시스템(VCS) 공급자](https://github.com/aws-ia/terraform-aws-control_tower_account_factory?tab=readme-ov-file#input_vcs_provider) 
+ Terraform 명령줄 인터페이스(CLI) [설치](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli)됨
+ AFT를 설치하는 Terraform 모듈을 실행할 수 있는 런타임 환경
+ AWS Command Line Interface (AWS CLI) [설치](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) 및 [구성](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-quickstart.html)됨

**제한 사항 **
+ 일부 AWS 서비스 는 전혀 사용할 수 없습니다 AWS 리전. 리전별 가용성은 [리전별AWS 서비스](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)를 참조하세요. 구체적인 엔드포인트는 [서비스 엔드포인트 및 할당량](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html)을 참조하고 서비스 링크를 선택합니다.

**제품 버전**
+ [AWS Control Tower 랜딩 존](https://docs.aws.amazon.com/controltower/latest/userguide/2022-all.html#version-3.0) 버전 3.0 이상, 버전 4.0 이전
+ [AFT](https://github.com/aws-ia/terraform-aws-control_tower_account_factory) 버전 1.13.0 이상, 버전 2.0.0 이전
+ Terraform OSS 버전 1.2.0 이상, 버전 2.0.0 이전
+ [Terraform AWS Provider](https://registry.terraform.io/providers/hashicorp/aws/latest/docs)(`terraform-provider-aws`) 버전 5.11.0 이상, 버전 6.0.0 이전
+ [IPAM용 Terraform 모듈](https://github.com/aws-ia/terraform-aws-ipam)(`aws-ia/ipam/aws`) 버전 2.1.0 이상

## 아키텍처
<a name="automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft-architecture"></a>

다음 다이어그램은 이 패턴의 워크플로 및 구성 요소를 보여 줍니다.

![\[Amazon VPC IPAM IPv4 CIDR 할당을 생성하는 워크플로입니다.\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/images/pattern-img/986cfc7d-058b-4490-9029-6cd1eadd1dd2/images/f90b84dd-0420-460e-ac0f-9f22b4a9fdc4.png)


워크플로우는 다음 기본 작업으로 구성됩니다.

1. **변경 트리거** - Terraform 및 IPAM 사용자 지정에 대한 변경 사항은 GitHub 리포지토리에 커밋되고 푸시됩니다. 이 작업은 AWS CodeBuild 파이프라인을 자동으로 트리거합니다.

1. **빌드 자동화** - CodeBuild 내에서 여러 빌드 프로젝트가 트리거됩니다 AWS Step Functions.

1. **사용자 지정 적용** - Step Functions는 CodeBuild와 조정하여 Terraform 변경 사항을 계획하고 적용합니다. 이 작업은 AFT Terraform 모듈을 사용하여 AWS 판매 계정에 대한 IPAM 풀 IP 할당을 조정합니다.

## 도구
<a name="automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft-tools"></a>

**AWS 서비스**
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)는 소스 코드를 컴파일하고 유닛 테스트를 실행하며 배포할 준비가 완료된 아티팩트를 생성하는 완전 관리형 빌드 서비스입니다.
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)은 소프트웨어 릴리스의 여러 단계를 신속하게 모델링하고 구성하고 소프트웨어 변경 내용을 지속적으로 릴리스하는 데 필요한 단계를 자동화합니다.
+ [AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html)는 AWS Organizations AWS Service Catalog및를 [AWS 서비스](https://docs.aws.amazon.com/controltower/latest/userguide/integrated-services.html)포함하여 다른 여러의 기능을 오케스트레이션합니다 AWS IAM Identity Center. 권장 모범 사례에 따라 AWS 다중 계정 환경을 설정하고 관리하는 데 도움이 될 수 있습니다.
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html)는 빠르고 예측 가능하고 확장 가능한 성능을 제공하는 완전 관리형 NoSQL 데이터베이스 서비스입니다.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)는 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행하는 데 도움이 되는 컴퓨팅 서비스입니다. 필요할 때만 코드를 실행하며 자동으로 확장이 가능하므로 사용한 컴퓨팅 시간만큼만 비용을 지불합니다.
+ [AWS SDK for Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html)는 Python 애플리케이션, 라이브러리 또는 스크립트를와 통합하는 데 도움이 되는 소프트웨어 개발 키트입니다 AWS 서비스.
+ [AWS Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html)는 승인된 IT 서비스의 카탈로그를 중앙에서 관리할 수 있도록 지원합니다 AWS. 최종 사용자는 조직에서 규정한 제약에 따라, 필요에 따라 승인된 IT 서비스만 신속하게 배포할 수 있습니다.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html)는 AWS Lambda 함수 및 기타를 결합하여 비즈니스 크리티컬 애플리케이션을 구축하는 AWS 서비스 데 도움이 되는 서버리스 오케스트레이션 서비스입니다.
+ [Amazon Virtual Private Cloud(Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html)를 사용하면 정의한 가상 네트워크에서 AWS 리소스를 시작할 수 있습니다. 이 가상 네트워크는 AWS의 확장 가능한 인프라를 사용한다는 이점과 함께 고객의 자체 데이터 센터에서 운영하는 기존 네트워크와 유사합니다. Amazon VPC IP 주소 관리자(IPAM)는 AWS 워크로드의 IP 주소를 더 쉽게 계획, 추적 및 모니터링할 수 있는 VPC 기능입니다.

**기타 도구**
+ [GitHub](https://docs.github.com/)는 개발자가 코드를 생성, 저장, 관리 및 공유하는 데 사용할 수 있는 개발자 플랫폼입니다.
+ [HashiCorp Terraform](https://www.terraform.io/)은 코드형 인프라(IaC) 도구로, 클라우드 및 온프레미스 리소스를 생성하고 관리하는 데 도움이 됩니다. 여기에는 컴퓨팅 인스턴스, 스토리지 및 네트워킹과 같은 하위 수준 구성 요소와 DNS 항목 및 서비스 소프트웨어(SaaS) 기능과 같은 상위 수준 구성 요소가 포함됩니다.
+ [Python](https://www.python.org/)은 범용 컴퓨터 프로그래밍 언어입니다. 이를 사용하여 [AWS 클라우드](https://aws.amazon.com/developer/language/python/)에서 애플리케이션을 구축하고, 작업을 자동화하고, 서비스를 개발할 수 있습니다.

**코드 리포지토리**
+ 이 패턴의 코드는 GitHub [AWS Control Tower Account Factory for Terraform](https://github.com/aws-ia/terraform-aws-control_tower_account_factory) 리포지토리에서 사용할 수 있습니다.

## 모범 사례
<a name="automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft-best-practices"></a>

AFT를 배포할 때 안전하고 효율적이며 성공적인 구현을 보장하는 데 도움이 되는 모범 사례를 따르는 것이 좋습니다. AFT 구현 및 운영에 대한 주요 지침 및 권장 사항은 다음과 같습니다.
+ **입력에 대한 철저한 검토 **- 각 [입력을](https://github.com/aws-ia/terraform-aws-control_tower_account_factory) 신중하게 검토하고 이해합니다. 올바른 입력 구성은 AFT의 설정 및 작동에 매우 중요합니다.
+ **정기적인 템플릿 업데이트 **- 템플릿을 최신 AWS 기능 및 Terraform 버전으로 업데이트합니다. 정기 업데이트는 새로운 기능을 활용하고 보안을 유지하는 데 도움이 됩니다.
+ **버전 관리 **- AFT 모듈 버전을 고정하고 가능하면 테스트를 위해 별도의 AFT 배포를 사용합니다.
+ **범위** - 인프라 가드레일 및 사용자 지정을 배포할 때만 AFT를 사용합니다. 애플리케이션을 배포하는 데 사용하지 마세요.
+ **린팅 및 검증 **- AFT 파이프라인에는 린트되고 검증된 Terraform 구성이 필요합니다. 구성을 AFT 리포지토리로 푸시하기 전에 lint, validate 및 test를 실행합니다.
+ **Terraform 모듈** - 재사용 가능한 Terraform 코드를 모듈로 빌드하고 조직의 요구 사항에 맞게 항상 Terraform 및 AWS 공급자 버전을 지정합니다.

## 에픽
<a name="automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft-epics"></a>

### AWS 환경 설정 및 구성
<a name="set-up-and-configure-your-aws-environment"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 배포 AWS Control Tower. |  AWS 환경에 AWS Control Tower 를 설정하고 구성하여의 중앙 집중식 관리 및 거버넌스를 보장합니다 AWS 계정. 자세한 내용은 AWS Control Tower 설명서의 [시작하기 AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/getting-started-with-control-tower.html)를 참조하세요. | 클라우드 관리자 | 
|  AWS Control Tower Account Factory for Terraform(AFT)을 배포합니다. | 새로운 전용 AFT 관리 계정에서 AFT를 설정합니다. 자세한 내용은 AWS Control Tower 설명서의 [Configure 및 AWS Control Tower Account Factory for Terraform](https://docs.aws.amazon.com/controltower/latest/userguide/aft-getting-started.html#aft-configure-and-launch)을 참조하세요. | 클라우드 관리자 | 
| 배포 후 AFT를 완료합니다. | AFT 인프라 배포가 완료되면 AWS Control Tower 설명서의 [배포 후 단계의 단계를](https://docs.aws.amazon.com/controltower/latest/userguide/aft-post-deployment.html) 완료합니다. | 클라우드 관리자 | 

### IPAM 생성
<a name="create-ipam"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| IPAM 관리자를 위임합니다. |  AWS 조직의 IPAM 관리자 계정을 위임하려면 다음 단계를 사용합니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft.html)또는를 사용하여 다음 명령을 AWS CLI 실행할 수 있습니다.<pre>aws ec2 enable-ipam-organization-admin-account \<br />    --delegated-admin-account-id 012345678901</pre>자세한 내용은 Amazon VPC 설명서[의 IPAM을 AWS 조직의 계정과 통합](https://docs.aws.amazon.com/vpc/latest/ipam/enable-integ-ipam.html) 및 AWS CLI 명령 참조의 [enable-ipam-organization-admin-account](https://docs.aws.amazon.com/cli/latest/reference/ec2/enable-ipam-organization-admin-account.html)를 참조하세요. IPAM을 계속 사용하려면 위임된 관리자 계정에 로그인해야 합니다. 다음 단계에서 지정된 SSO 프로파일 또는 AWS 환경 변수를 사용하여 해당 계정에 로그인하고 IPAM 최상위 및 리전 풀을 생성할 수 있는 권한을 부여할 수 있어야 합니다. | 관리자 | 
| IPAM 최상위 및 리전 풀을 생성합니다. | 이 패턴의 GitHub 리포지토리에는 IPAM 최상위 풀 및 리전 풀을 생성하는 데 사용할 수 있는 Terraform 템플릿이 포함되어 있습니다. 그런 다음 AWS Resource Access Manager ()를 사용하여 조직, 조직 단위(OU) AWS 계정또는 기타 리소스와 풀을 공유할 수 있습니다AWS RAM.다음 단계를 사용합니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft.html)생성 후 출력되는 리소스 풀 ID를 기록해 둡니다. 계정 요청을 제출할 때 ID가 필요합니다. 리소스 풀 ID를 잊어버린 경우 나중에에서 가져올 수 있습니다 AWS Management Console. 생성된 풀의 CIDRs이 작업 리전의 다른 풀과 겹치지 않도록 해야 합니다. CIDR 없이도 풀을 생성할 수 있지만 CIDR을 프로비저닝하기 전까지는 할당에 대해 풀을 사용할 수 없습니다. 풀을 편집하여 언제든지 풀에 CIDR을 추가할 수 있습니다. | 관리자 | 

### IPAM을 AFT와 통합
<a name="integrate-ipam-with-aft"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 계정 사용자 지정 생성을 시작합니다. | 새 계정 사용자 지정을 시작하려면 터미널에서 다음 명령을 실행합니다.<pre># Default name for customization repo<br />cd aft-account-customizations # Replace with your actual repo name if different than the default<br />mkdir -p APG-AFT-IPAM/terraform # Replace APG-AFT-IPAM with your desired customization name<br />cd APG-AFT-IPAM/terraform</pre> | DevOps 엔지니어 | 
| `aft-providers.jinja` 파일을 생성합니다. | 사용할 Terraform 백엔드 및 공급자를 지정하는 동적 코드를 `aft-providers.jinja` 파일에 추가합니다.다음 단계를 사용합니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft.html) | DevOps 엔지니어 | 
| `backend.jinja` 파일을 생성합니다. | 사용할 Terraform 백엔드 및 공급자를 지정하는 동적 코드를 `backend.jinja` 파일에 추가합니다.다음 단계를 사용합니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft.html) | DevOps 엔지니어 | 
| `main.tf` 파일을 생성합니다. | 새 `main.tf` 파일을 생성하고 AWS Systems Manager (`aws_ssm`)에서 두 값을 검색하고 VPC를 생성하는 두 개의 데이터 소스를 정의하는 코드를 추가합니다.다음 단계를 사용합니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft.html) | DevOps 엔지니어 | 
| `variables.tf` 파일을 생성합니다. | Terraform 모듈에서 사용하는 변수를 선언하는 `variables.tf` 파일을 생성합니다.다음 단계를 사용합니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft.html) | DevOps 엔지니어 | 
| `terraform.tfvars` 파일을 생성합니다. | `terraform.tfvars` 파일에 전달되는 변수의 값을 정의하는 `main.tf` 파일을 생성합니다.다음 단계를 사용합니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft.html) | DevOps 엔지니어 | 
| `outputs.tf` 파일을 생성합니다. | CodeBuild에서 일부 값을 노출하는 새 `outputs.tf` 파일을 생성합니다.다음 단계를 사용합니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft.html) | DevOps 엔지니어 | 
| 사용자 지정을 커밋합니다. | 계정 사용자 지정 리포지토리에 새 사용자 지정을 커밋하려면 다음 명령을 실행합니다.<pre># Assumes you are still in the /terraform directory<br />cd .. # Skip if you are in the account customization root directory (APG-AFT-IPAM)<br />git add .<br />git commit -m "APG customization"<br />git push origin</pre> | DevOps 엔지니어 | 
| 사용자 지정을 적용합니다. | 새로 생성된 계정 사용자 지정으로 새 계정을 요청하는 `account-requests.tf` 파일에 코드를 추가합니다. 사용자 지정 필드는 올바른 IPAM 할당 IPv4 CIDR을 사용하여 VPC를 생성하는 데 필요한 Systems Manager 파라미터를 판매 계정에 생성합니다.다음 단계를 사용합니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft.html) | DevOps | 
| 사용자 지정을 검증합니다. | 새로 판매된 계정에 로그인하고 사용자 지정이 성공적으로 적용되었는지 확인합니다.다음 단계를 사용합니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft.html) | DevOps 엔지니어 | 

## 문제 해결
<a name="automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft-troubleshooting"></a>


| 문제 | Solution | 
| --- | --- | 
|  부적절한 권한으로 인해 리소스 생성 또는 관리에 오류가 발생합니다. |  Step Functions, CodeBuild 및 배포와 관련된 기타 서비스에 연결된 AWS Identity and Access Management (IAM) 역할 및 정책을 검토합니다. 필요한 권한이 있는지 확인합니다. 권한 문제가 있는 경우 IAM 정책을 조정하여 필요한 액세스 권한을 부여합니다. | 
|  배포 중에 할당 AWS 서비스 량에 도달합니다. |  파이프라인을 배포하기 전에 Amazon Simple Storage Service(Amazon S3) 버킷, IAM 역할 및 AWS Lambda 함수와 같은 리소스의 할당 AWS 서비스 량을 확인합니다. 필요한 경우 할당량 증가를 요청합니다. 자세한 정보는 *AWS 일반 참조*의 [AWS 서비스 할당량](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)을 참조하세요. | 

## 관련 리소스
<a name="automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft-resources"></a>

**AWS 서비스 설명서**
+ [AWS Control Tower 사용 설명서](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html)
+ [IPAM 작동 방식](https://docs.aws.amazon.com/vpc/latest/ipam/how-it-works-ipam.html)
+ [IAM의 보안 모범 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)
+ [AWS 서비스 할당량](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)

**기타 리소스**
+ [Terraform AWS 공급자 설명서](https://registry.terraform.io/providers/hashicorp/aws/latest/docs)