Terraform을 AWS 사용하여에서 계층적 다중 리전 IPAM 아키텍처 생성 - 권장 가이드

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

Terraform을 AWS 사용하여에서 계층적 다중 리전 IPAM 아키텍처 생성

Donny Schreiber, Amazon Web Services

요약

IP 주소 관리(IPAM)는 네트워크 관리의 중요한 구성 요소이며 조직이 클라우드 인프라를 확장함에 따라 점점 더 복잡해지고 있습니다. 적절한 IPAM이 없으면 조직은 IP 주소 충돌, 주소 공간 낭비, 복잡한 문제 해결로 인해 중단 및 애플리케이션 가동 중지가 발생할 위험이 있습니다. 이 패턴은 HashiCorp Terraform을 사용하여 AWS 엔터프라이즈 환경을 위한 포괄적인 IPAM 솔루션을 구현하는 방법을 보여줍니다. 이를 통해 조직은 AWS 조직의 모든 AWS 계정 에서 중앙 집중식 IP 주소 관리를 용이하게 하는 계층적 다중 리전 IPAM 아키텍처를 생성할 수 있습니다.

이 패턴은 최상위 풀, 리전 풀, 사업부 풀, 환경별 풀 등 정교한 4계층 풀 계층 구조로 Amazon VPC IP 주소 관리자를 구현하는 데 도움이 됩니다. 이 구조는 적절한 IP 주소 거버넌스를 지원하는 동시에 조직 내 적절한 팀에 IP 관리를 위임할 수 있도록 합니다. 이 솔루션은 AWS Resource Access Manager (AWS RAM)를 사용하여 조직 전체에서 IP 주소 관리자 풀을 원활하게 공유합니다.는 모든 관리형 계정에서 팀이 구축할 수 있는 IPAM 사양을 AWS RAM 분산하고 표준화합니다.

이 패턴을 사용하면 다음을 달성할 수 있습니다.

  • AWS 리전전체, 사업부 및 환경의 IP 주소 할당을 자동화합니다.

  • 프로그래밍 방식 검증을 통해 조직 네트워크 정책을 적용합니다.

  • 비즈니스 요구 사항이 진화함에 따라 네트워크 인프라를 효율적으로 확장합니다.

  • IP 주소 공간의 중앙 집중식 관리를 통해 운영 오버헤드를 줄입니다.

  • 셀프 서비스 CIDR 범위 할당을 통해 클라우드 네이티브 워크로드 배포를 가속화합니다.

  • 정책 기반 제어 및 검증을 통해 주소 충돌을 방지합니다.

사전 조건 및 제한 사항

사전 조건 

  • 조직으로 AWS 계정관리되는 하나 이상의 입니다 AWS Organizations.

  • IP Address Manager 위임된 관리자 역할을 할 네트워크 허브 또는 네트워크 관리 계정입니다.

  • AWS Command Line Interface (AWS CLI), 설치구성됨.

  • Terraform 버전 1.5.0 이상 설치

  • AWS Terraform용 공급자, 구성됨.

  • AWS Identity and Access Management (IAM)에 구성된 IP 주소 관리자AWS RAM, 및 Virtual Private Cloud(VPCs 관리할 수 있는 권한.

제한 사항

  • IP 주소 관리자에는 Service Quotas가 적용됩니다. 풀의 기본 Service Quotas는 범위당 50개입니다. 6개 리전, 2개 사업부 및 4개 환경에서이 배포를 실행하면 67개의 풀이 생성됩니다. 따라서 할당량 증가가 필요할 수 있습니다.

  • 리소스가 할당된 후 IP Address Manager 풀을 수정하거나 삭제하면 종속성 문제가 발생할 수 있습니다. 먼저 할당 및 을 해제해야만 풀을 삭제할 수 있습니다.

  • IP Address Manager에서 리소스 모니터링은 리소스 변경 사항 반영을 약간 지연시킬 수 있습니다. 이 지연은 약 20분 정도 걸릴 수 있습니다.

  • IP 주소 관리자는 다양한 범위에서 IP 주소 고유성을 자동으로 적용할 수 없습니다.

  • 사용자 지정 태그는 AWS 태깅 모범 사례를 준수해야 합니다. 예를 들어 각 키는 고유해야 하며 로 시작할 수 없습니다aws:.

  • IPAM을 조직 외부 계정과 통합할 때의 고려 사항 및 제한 사항

아키텍처

대상 아키텍처

IP Address Manager 구성 및 풀 계층 구조

다음 다이어그램은 이 구성의 아키텍처를 보여줍니다. 범위는 IP Address Manager에서 가장 높은 수준의 컨테이너입니다. 각 범위는 단일 네트워크의 IP 공간을 나타냅니다. 은 범위 내의 연속 IP 주소 범위(또는 CIDR 범위) 모음입니다. 풀을 사용하면 라우팅 및 보안 요구 사항에 따라 IP 주소를 구성할 수 있습니다. 이 다이어그램은 최상위 풀, 리전 풀, 사업부 풀 및 환경 풀의 네 가지 계층적 풀 수준을 보여줍니다.

네트워크 계정의 단일 AWS 리전에 있는 프라이빗 범위와 4가지 수준의 풀.

이 솔루션은 IP Address Manager 풀의 명확한 계층 구조를 설정합니다.

  1. 최상위 풀에는와 같은 전체 조직 IP 주소 공간이 포함됩니다10.176.0.0/12.

  2. 리전 풀은와 같은 리전별 할당10.176.0.0/15을 위한 것입니다us-east-1.

  3. 사업부 풀은 각각 내의 도메인별 할당입니다 AWS 리전. 예를 들어 us-east-1 리전의 재무 사업부에이 있을 수 있습니다10.176.0.0/16.

  4. 환경 풀은 다양한 환경에 대한 용도별 할당입니다. 예를 들어 us-east-1 리전의 재무 사업부에 프로덕션 환경에 10.176.0.0/18 대한가 있을 수 있습니다.

이 배포 토폴로지는 중앙 집중식 제어를 유지하면서 IP Address Manager 리소스를 지리적으로 분산합니다. 기능은 다음과 같습니다.

  • IP 주소 관리자는 단일 프라이머리에 배포됩니다 AWS 리전.

  • 추가 리전은 IP Address Manager가 리소스를 관리할 수 있는 운영 리전으로 등록됩니다.

  • 각 운영 리전은 최상위 풀에서 전용 주소 풀을 받습니다.

  • 모든 운영 리전의 리소스는 기본 리전의 IP 주소 관리자를 통해 중앙에서 관리됩니다.

  • 각 리전 풀에는 리소스를 올바르게 할당하는 데 도움이 되도록 해당 리전에 연결된 로캘 속성이 있습니다.

고급 CIDR 범위 검증

이 솔루션은 잘못된 구성의 배포를 방지하도록 설계되었습니다. Terraform을 통해 풀을 배포하면 Terraform 계획 단계에서 다음이 검증됩니다.

  • 모든 환경 CIDR 범위가 상위 사업부 CIDR 범위에 포함되는지 검증합니다.

  • 모든 사업부 CIDR 범위가 상위 리전 CIDR 범위에 포함되는지 확인합니다.

  • 모든 리전 CIDR 범위가 최상위 CIDR 범위에 포함되는지 확인합니다.

  • 동일한 계층 수준 내에서 CIDR 범위가 중복되는지 확인합니다.

  • 환경을 각 사업부에 적절하게 매핑하는지 검증합니다.

CIDR 범위 할당

다음 다이어그램은 개발자 또는 관리자가 새 VPCs 생성하고 풀 수준에서 IP 주소를 할당하는 방법의 예를 보여줍니다.

네트워크 계정의 단일 AWS 리전에 있는 프라이빗 범위와 4가지 수준의 풀.

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

  1. 개발자 또는 관리자는 AWS Management Console AWS CLI, 또는 코드형 인프라(IaC)를 통해 AY3 환경 풀에서 사용 가능한 다음 CIDR 범위를 요청합니다.

  2. IP Address Manager는 해당 풀에서 사용 가능한 다음 CIDR 범위를 AY3-4 VPC에 할당합니다. 이 CIDR 범위는 더 이상 사용할 수 없습니다.

자동화 및 규모 조정

이 솔루션은 다음과 같이 확장성을 위해 설계되었습니다.

  • 리전 확장 - Terraform 구성을 추가 리전 풀 항목으로 확장하여 새 리전을 추가합니다.

  • 사업부 성장 - BU 구성 맵에 새 사업부를 추가하여 지원합니다.

  • 환경 유연성 - 조직의 니즈에 따라 개발 또는 프로덕션과 같은 다양한 환경 유형을 구성합니다.

  • 다중 계정 지원 - 조직의 모든 계정에서 풀을 공유합니다 AWS RAM.

  • 자동 VPC 프로비저닝 - VPC 프로비저닝 워크플로와 통합하여 CIDR 범위 할당을 자동화합니다.

계층 구조는 다음과 같이 다양한 위임 및 제어 규모를 허용합니다.

  • 네트워크 관리자는 최상위 풀과 리전 풀을 관리할 수 있습니다.

  • 사업부 IT 팀이 각 풀에 대한 권한을 위임했을 수 있습니다.

  • 애플리케이션 팀은 지정된 환경 풀의 IP 주소를 사용할 수 있습니다.

참고

이 솔루션을 AWS Control Tower Account Factory for Terraform(AFT)과 통합할 수도 있습니다. 자세한 내용은 이 패턴의 추가 정보 섹션에 있는 프린터 플릿 상태 확인을 참조하세요.

도구

AWS 서비스

  • Amazon CloudWatch를 사용하면 AWS 리소스 및에서 실행되는 애플리케이션의 지표를 실시간으로 모니터링할 AWS 수 있습니다.

  • AWS Command Line Interface (AWS CLI)는 명령줄 셸의 명령을 AWS 서비스 통해와 상호 작용하는 데 도움이 되는 오픈 소스 도구입니다.

  • AWS Organizations는 여러을 생성하여 중앙에서 관리하는 조직 AWS 계정 으로 통합하는 데 도움이 되는 계정 관리 서비스입니다.

  • AWS Resource Access Manager (AWS RAM)를 사용하면에서 리소스를 안전하게 공유 AWS 계정 하여 운영 오버헤드를 줄이고 가시성과 감사 가능성을 제공할 수 있습니다.

  • Amazon Virtual Private Cloud(Amazon VPC)를 사용하면 정의한 가상 네트워크에서 AWS 리소스를 시작할 수 있습니다. 이 가상 네트워크는 AWS의 확장 가능한 인프라를 사용한다는 이점과 함께 고객의 자체 데이터 센터에서 운영하는 기존 네트워크와 유사합니다. IP 주소 관리자는 Amazon VPC의 기능입니다. 워크로드의 IP 주소를 계획, 추적 및 모니터링하는 데 도움이 됩니다 AWS .

기타 도구

  • HashiCorp Terraform은 코드를 사용하여 클라우드 인프라 및 리소스를 프로비저닝하고 관리하는 데 도움이 되는 코드형 인프라(IaC) 도구입니다.

코드 리포지토리

이 패턴의 코드는 GitHub의 리포지토리에 있는 계층적 IPAM을 위한 샘플 Terraform 구현 AWS 에서 사용할 수 있습니다. 리포지토리 구조에는 다음이 포함됩니다.

  • 루트 모듈 - 배포 오케스트레이션 및 입력 변수.

  • IPAM 모듈 -이 패턴에 설명된 아키텍처의 핵심 구현입니다.

  • 태그 모듈 - 모든 리소스에 대한 표준화된 태깅 방식입니다.

모범 사례

네트워크 계획의 다음 모범 사례를 고려하세요.

  • 먼저 계획 - 배포 전에 IP 주소 공간을 철저히 계획합니다. 자세한 내용은 Amazon VPC IPAM 사용 설명서의 IP 주소 프로비저닝 계획을 참조하세요.

  • CIDR 범위가 겹치지 않도록 - 각 수준의 CIDR 범위가 겹치지 않도록 합니다.

  • 버퍼 공간 예약 - 성장을 수용하는 데 즉시 필요한 것보다 더 큰 CIDR 범위를 항상 할당합니다.

  • 문서 IP 주소 할당 - IP 주소 할당 전략에 대한 문서를 유지 관리합니다.

다음 모범 사례를 고려하세요.

  • 비프로덕션으로 시작 - 먼저 비프로덕션 환경에 배포합니다.

  • Terraform 상태 관리 사용 - 원격 상태 스토리지 및 잠금을 구현합니다. 자세한 내용은 Terraform 설명서의 상태 저장 및 잠금을 참조하세요.

  • 버전 관리 구현 - 모든 Terraform 코드를 버전 관리합니다.

  • CI/CD 통합 구현 - 반복 가능한 배포를 위해 지속적 통합 및 지속적 전달(CI/CD) 파이프라인을 사용합니다.

다음 모범 사례를 고려하세요.

  • 자동 가져오기 활성화 - 기존 리소스를 자동으로 검색하고 가져오도록 IP 주소 관리자 풀을 구성합니다. IPAM 풀 편집의 지침에 따라 자동 가져오기를 켭니다.

  • IP 주소 사용률 모니터링 - IP 주소 사용률 임계값에 대한 경보를 설정합니다. 자세한 내용은 Amazon CloudWatch를 사용한 모니터링을 참조하세요.

  • 정기 감사 - IP 주소 사용 및 규정 준수를 정기적으로 감사합니다. 자세한 내용은 IPAM에서 IP 주소 사용량 추적을 참조하세요.

  • 미사용 할당 정리 - 리소스가 폐기될 때 IP 주소 할당을 해제합니다. 자세한 내용은 풀에서 CIDRs.

다음 모범 사례를 고려하세요.

  • 최소 권한 구현 - 최소 필수 권한이 있는 IAM 역할을 사용합니다. 자세한 내용은 IAM의 보안 모범 사례IPAM의 ID 및 액세스 관리를 참조하세요.

  • 서비스 제어 정책 사용 - 서비스 제어 정책(SCPs 구현하여 조직에서 IP Address Manager 사용을 적용합니다. 자세한 내용은 SCPs.

  • 리소스 공유 제어 -에서 IP Address Manager 리소스 공유의 범위를 신중하게 관리합니다 AWS RAM. 자세한 내용은 를 사용하여 IPAM 풀 공유 AWS RAM를 참조하세요.

  • 태깅 적용 - IP 주소 관리자와 관련된 모든 리소스에 필수 태깅을 구현합니다. 자세한 내용은 추가 정보 섹션의 Amazon SNS를 참조하세요.

에픽

작업설명필요한 기술

AWS Organizations 기능을 활성화합니다.

에 모든 기능이 활성화 AWS Organizations 되어 있는지 확인합니다. 지침은 AWS Organizations 설명서의 를 사용하여 조직의 모든 기능 활성화 AWS Organizations를 참조하세요.

관리자

에서 리소스 공유를 활성화합니다 AWS RAM.

를 사용하여 다음 명령을 AWS CLI입력하여 조직의 AWS RAM 리소스 공유를 활성화합니다.

aws ram enable-sharing-with-aws-organization

자세한 내용은 AWS RAM 설명서의 내에서 리소스 공유 활성화 AWS Organizations를 참조하세요.

관리자

IP 주소 관리자의 관리자를 지정합니다.

조직의 관리 계정에서를 사용하여 다음 명령을 AWS CLI입력합니다. 여기서 123456789012는 IP Address Manager를 관리할 계정의 ID입니다.

aws ec2 enable-ipam-organization-admin-account \ --delegated-admin-account-id 123456789012
참고

일반적으로 네트워크 또는 네트워크 허브 계정은 IP 주소 관리자의 위임된 관리자로 사용됩니다.

자세한 내용은 IP 주소 관리자 설명서의 AWS Organization의 계정과 IPAM 통합을 참조하세요.

관리자
작업설명필요한 기술

네트워크 아키텍처를 정의합니다.

리전, 사업부 및 환경의 CIDR 범위를 포함하여 네트워크 아키텍처를 정의하고 문서화합니다. 자세한 내용은 IP Address Manager 설명서의 IP 주소 프로비저닝 계획을 참조하세요.

네트워크 엔지니어

리포지토리를 복제합니다.

  1. 로컬 워크스테이션에서 코드 리포지토리를 복제하려면 다음 명령을 입력합니다.

    git clone https://github.com/aws-samples/sample-amazon-vpc-ipam-terraform.git
  2. 다음 명령을 입력하여 terraform 디렉터리로 이동합니다.

DevOps 엔지니어

변수를 구성합니다.

  1. terraform.tfvars 파일을 업데이트합니다.

  2. IP Address Manager 배포에 대한 변수를 구성합니다. 완료된 파일의 예는 코드 리포지토리의 terraform.tfvars.example을 참조하세요.

  3. variables.tfvars 파일을 저장하고 닫습니다.

네트워크 엔지니어, Terraform

IP Address Manager 리소스를 배포합니다.

  1. 다음 명령을 입력하여 Terraform을 초기화합니다.

    terraform init
  2. 다음 명령을 입력하여 실행 계획을 생성합니다.

    terraform plan
  3. 계획을 검토하고 생성될 리소스 및 인프라 구성 요소를 검증합니다.

  4. 다음 명령을 입력하여 존속성을 설치합니다.

    terraform apply
  5. 메시지가 표시되면 를 입력하여 배포를 확인합니다.

  6. 배포 프로세스가 완료될 때까지 기다리세요.

Terraform

배포를 검증합니다.

  1. 에 로그인 AWS 계정한 다음 IP Address Manager 콘솔을 엽니다.

  2. 탐색 창에서 Pools를 선택합니다.

  3. 풀 목록에서 구성한 풀이 생성되었는지 확인합니다.

  4. AWS RAM 콘솔을 엽니다.

  5. IP Address Manager 리소스가 공유되었는지 확인합니다. AWS RAM 설명서에서 생성한 리소스 공유 보기의 지침을 따릅니다.

일반 AWS, 네트워크 엔지니어
작업설명필요한 기술

VPC를 생성합니다.

Amazon VPC 사용 설명서의 VPC 생성 단계를 따르세요. VPC에 대한 CIDR 범위를 선택하는 단계에 도달하면 리전, 사업부 및 환경 풀 중 하나에서 사용 가능한 다음를 할당합니다.

일반 AWS, 네트워크 관리자, 네트워크 엔지니어

CIDR 범위 할당을 검증합니다.

  1. IP 주소 관리자 콘솔을 엽니다.

  2. 탐색 창에서 대시보드를 선택합니다.

  3. 대시보드에서 CIDR 범위가 생성한 VPC에 할당되었는지 확인합니다.

일반 AWS, 네트워크 관리자, 네트워크 엔지니어

IP 주소 관리자를 모니터링합니다.

IP Address Manager 리소스 할당과 관련된 모니터링 및 경보를 구성합니다. 자세한 내용과 지침은 IP Address Manager 설명서의 Amazon CloudWatch로 IPAM 모니터링리소스별 CIDR 사용량 모니터링을 참조하세요.

일반 AWS

IP 주소 관리자 사용을 적용합니다.

조직의 구성원 AWS Organizations 이 VPC를 생성할 때 IP 주소 관리자를 사용하도록 요구하는에서 서비스 제어 정책(SCP)을 생성합니다. 지침은 IP 주소 관리자 설명서의 SCPs.

일반 AWS, AWS 관리자

문제 해결

문제Solution

IP Address Manager 리소스를 찾을 수 없는 상태에서 Terraform 실패

IP Address Manager 관리자 계정이 제대로 위임되었고 AWS 공급자가 해당 계정에 인증되었는지 확인합니다.

CIDR 범위 할당 실패

요청된 CIDR 범위가 IP Address Manager 풀의 사용 가능한 범위 내에 있고 기존 할당과 겹치지 않는지 확인합니다.

AWS RAM 문제 공유

AWS 조직에 리소스 공유가 활성화되어 있는지 확인합니다. 올바른 보안 주체인 조직 Amazon 리소스 이름(ARN)이 AWS RAM 공유에 사용되는지 확인합니다.

풀 계층 구조 검증 오류

하위 풀 CIDR 범위가 상위 풀 CIDR 범위 내에 올바르게 포함되어 있고 형제 풀과 겹치지 않는지 확인합니다.

IP 주소 관리자 할당량 한도 초과

IP Address Manager 풀에 대한 할당량 증가를 요청합니다. 자세한 내용은 Service Quotas 사용 설명서할당량 증가 요청을 참조하세요.

관련 리소스

AWS 서비스 설명서

AWS 블로그 게시물

자습서 및 동영상

추가 정보

와 통합

이 솔루션을 AWS Control Tower Account Factory for Terraform(AFT)과 통합하여 새로 프로비저닝된 계정이 적절한 네트워크 구성을 자동으로 수신하도록 할 수 있습니다. 네트워크 허브 계정에이 IPAM 솔루션을 배포하면 VPCs.

다음 코드 샘플은 AWS Systems Manager Parameter Store를 사용하여 계정 사용자 지정에서 AFT 통합을 보여줍니다.

# Get the IP Address Manager pool ID from Parameter Store data "aws_ssm_parameter" "dev_ipam_pool_id" { name = "/org/network/ipam/finance/dev/pool-id" } # Create a VPC using the IP Address Manager pool resource "aws_vpc" "this" { ipv4_ipam_pool_id = data.aws_ssm_parameter.dev_ipam_pool_id.value ipv4_netmask_length = 24 tags = { Name = "aft-account-vpc" } }

태그 지정 전략

이 솔루션은 포괄적인 태깅 전략을 구현하여 리소스 관리를 용이하게 합니다. 다음 코드 샘플은 사용 방법을 보여줍니다.

# Example tag configuration module "tags" { source = "./modules/tags" # Required tags product_name = "enterprise-network" feature_name = "ipam" org_id = "finance" business_unit = "network-operations" owner = "network-team" environment = "prod" repo = "https://github.com/myorg/ipam-terraform" branch = "main" cost_center = "123456" dr_tier = "tier1" # Optional tags optional_tags = { "project" = "network-modernization" "stack_role" = "infrastructure" } }

이러한 태그는 모든 IP Address Manager 리소스에 자동으로 적용됩니다. 이를 통해 일관된 거버넌스, 비용 할당 및 리소스 관리를 용이하게 합니다.