자습서: AWS CLI를 사용하여 IPAM 및 풀 생성 - Amazon Virtual Private Cloud

자습서: AWS CLI를 사용하여 IPAM 및 풀 생성

이 자습서의 단계를 따라 AWS CLI를 사용하여 IPAM을 생성하고, IP 주소 풀을 생성하고, IPAM 풀에서 CIDR을 사용하여 VPC를 할당합니다.

다음은 이 섹션의 단계를 따르면 생성할 수 있는 풀 구조의 계층에 대한 예입니다.

  • AWS 리전 1 및 AWS 리전 2에서 작동하는 IPAM

    • 프라이빗 범위

      • 최상위 풀

        • AWS 리전 2의 리전 풀

          • 개발 풀

            • VPC 대한 할당

참고

이 섹션에서는 IPAM을 생성합니다. 기본적으로 IPAM 하나만 생성할 수 있습니다. 자세한 내용은 IPAM의 할당량 섹션을 참조하세요. IPAM 계정을 이미 위임하고 IPAM을 생성한 경우 1단계와 2단계를 건너뛸 수 있습니다.

1단계: 조직에서 IPAM 사용 설정

이 단계는 선택 사항입니다. 조직에서 IPAM을 사용 설정하고 AWS CLI를 사용하여 위임된 IPAM을 구성하려면 이 단계를 완료하세요. IPAM 계정의 역할에 대한 자세한 내용은 AWS Organization에서 계정과 IPAM 통합 섹션을 참조하세요.

이 요청은 AWS Organizations 관리 계정에서 이루어져야 합니다. 다음 명령을 실행하는 경우 다음 작업을 허용하는 IAM 정책을 통해 역할을 사용하고 있는지 확인합니다.

  • ec2:EnableIpamOrganizationAdminAccount

  • organizations:EnableAwsServiceAccess

  • organizations:RegisterDelegatedAdministrator

  • iam:CreateServiceLinkedRole

aws ec2 enable-ipam-organization-admin-account --region us-east-1 --delegated-admin-account-id 11111111111

사용 설정이 성공했음을 나타내는 다음과 같은 출력이 표시되어야 합니다.

{ "Success": true }

2단계: IPAM 생성

이 섹션의 단계에 따라 IPAM을 생성하고 생성된 범위에 대한 추가 정보를 확인합니다. 이후 단계에서 풀을 생성하고 해당 풀에 대한 IP 주소 범위를 프로비저닝할 때 이 IPAM을 사용합니다.

참고

운영 리전 옵션에 따라 IPAM 풀을 사용할 수 있는 AWS 리전을 확인합니다. 운영 리전에 대한 자세한 내용은 IPAM 생성 섹션을 참조하세요.

AWS CLI를 사용하여 IPAM 생성
  1. 다음 명령을 실행하여 IPAM 인스턴스를 생성합니다.

    aws ec2 create-ipam --description my-ipam --region us-east-1 --operating-regions RegionName=us-west-2

    IPAM을 생성할 때 AWS는 자동으로 다음 작업을 수행합니다.

    • IPAM의 전역 고유 리소스 ID(IpamId)를 반환합니다.

    • 기본 퍼블릭 범위(PublicDefaultScopeId) 및 기본 프라이빗 범위(PrivateDefaultScopeId)를 만듭니다.

    { "Ipam": { "OwnerId": "123456789012", "IpamId": "ipam-0de83dba6694560a9", "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-0de83dba6694560a9", "PublicDefaultScopeId": "ipam-scope-02a24107598e982c5", "PrivateDefaultScopeId": "ipam-scope-065e7dfe880df679c", "ScopeCount": 2, "Description": "my-ipam", "OperatingRegions": [ { "RegionName": "us-west-2" }, { "RegionName": "us-east-1" } ], "Tags": [] } }
  2. 다음 명령을 실행하여 범위 관련 추가 정보를 확인합니다. 퍼블릭 범위는 공용 인터넷을 통해 액세스할 IP 주소를 위한 것입니다. 프라이빗 범위는 공용 인터넷을 통해 액세스하지 않을 IP 주소를 위한 것입니다.

    aws ec2 describe-ipam-scopes --region us-east-1

    출력에 사용 가능한 범위가 표시됩니다. 다음 단계에서 프라이빗 범위 ID를 사용합니다.

    { "IpamScopes": [ { "OwnerId": "123456789012", "IpamScopeId": "ipam-scope-02a24107598e982c5", "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-02a24107598e982c5", "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-0de83dba6694560a9", "IpamScopeType": "public", "IsDefault": true, "PoolCount": 0 }, { "OwnerId": "123456789012", "IpamScopeId": "ipam-scope-065e7dfe880df679c", "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-065e7dfe880df679c", "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-0de83dba6694560a9", "IpamScopeType": "private", "IsDefault": true, "PoolCount": 0 } ] }

3단계: IPv4 주소 풀 생성

이 섹션의 단계를 따르면 IPv4 주소 풀을 생성할 수 있습니다.

중요

최상위 풀의 --locale 옵션을 사용하지 않습니다. 리전 풀에서 나중에 로캘 옵션을 설정합니다. 로캘은 풀을 CIDR 할당에 사용할 수 있도록 하려는 AWS 리전입니다. 최상위 풀에서 로캘을 설정하지 않은 경우 로캘의 기본값은 None입니다. 풀에 None의 로캘이 있는 경우 모든 AWS 리전의 VPC 리소스에서는 풀을 사용할 수 없습니다. 공간을 예약하기 위해서는 풀에서 IP 주소 공간을 수동으로 할당할 수 있습니다.

AWS CLI를 사용하여 모든 AWS 리소스에 대해 IPv4 주소 풀을 생성하려면
  1. 다음 명령을 실행하여 IPv4 주소 풀을 생성합니다. 이전 단계에서 생성한 IPAM의 프라이빗 범위 ID를 사용합니다.

    aws ec2 create-ipam-pool --ipam-scope-id ipam-scope-065e7dfe880df679c --description "top-level-pool" --address-family ipv4

    출력에 풀의 create-in-progress 상태가 표시됩니다.

    { "IpamPool": { "OwnerId": "123456789012", "IpamPoolId": "ipam-pool-0008f25d7187a08d9", "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0008f25d7187a08d9", "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-065e7dfe880df679c", "IpamScopeType": "private", "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-0de83dba6694560a9", "Locale": "None", "PoolDepth": 1, "State": "create-in-progress", "Description": "top-level-pool", "AutoImport": false, "AddressFamily": "ipv4", "Tags": [] } }
  2. 출력에 create-complete의 상태가 표시될 때까지 다음 명령을 실행합니다.

    aws ec2 describe-ipam-pools

    다음 예 출력에서는 현재 상태를 보여줍니다.

    { "IpamPools": [ { "OwnerId": "123456789012", "IpamPoolId": "ipam-pool-0008f25d7187a08d9", "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0008f25d7187a08d9", "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-065e7dfe880df679c", "IpamScopeType": "private", "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-0de83dba6694560a9", "Locale": "None", "PoolDepth": 1, "State": "create-complete", "Description": "top-level-pool", "AutoImport": false, "AddressFamily": "ipv4" } ] }

4단계: 최상위 풀에 CIDR 프로비저닝

이 섹션의 단계에 따라 CIDR을 최상위 풀에 프로비저닝한 다음, CIDR이 프로비저닝되었는지 확인합니다. 자세한 내용은 풀에 CIDR 프로비저닝 단원을 참조하십시오.

AWS CLI를 사용하여 CIDR 블록을 풀에 프로비저닝하려면
  1. 다음 명령을 실행하여 CIDR을 프로비저닝합니다.

    aws ec2 provision-ipam-pool-cidr --region us-east-1 --ipam-pool-id ipam-pool-0008f25d7187a08d9 --cidr 10.0.0.0/8

    출력에서 프로비저닝 상태를 확인할 수 있습니다.

    { "IpamPoolCidr": { "Cidr": "10.0.0.0/8", "State": "pending-provision" } }
  2. 출력에 provisioned의 상태가 표시될 때까지 다음 명령을 실행합니다.

    aws ec2 get-ipam-pool-cidrs --region us-east-1 --ipam-pool-id ipam-pool-0008f25d7187a08d9

    다음 예 출력에서는 현재 상태를 보여줍니다.

    { "IpamPoolCidrs": [ { "Cidr": "10.0.0.0/8", "State": "provisioned" } ] }

5단계. 최상위 풀에서 소싱된 CIDR을 사용하여 리전 풀 생성

IPAM 풀을 생성하는 경우 풀은 기본적으로 IPAM의 AWS 리전에 속합니다. VPC를 생성하는 경우 VPC가 생성되는 풀은 VPC와 동일한 리전에 있어야 합니다. IPAM 리전 이외의 리전의 서비스에서 풀을 사용할 수 있도록 해당 풀을 생성하는 경우 --locale 옵션을 선택할 수 있습니다. 이 섹션의 단계를 따르면 다른 로캘에서 리전 풀을 생성할 수 있습니다.

AWS CLI를 사용하여 이전 풀에서 소싱된 CIDR으로 풀 생성
  1. 다음 명령을 실행하여 풀을 만들고 이전 풀에서 알려진 사용 가능한 CIDR을 사용하여 공간을 삽입합니다.

    aws ec2 create-ipam-pool --description "regional--pool" --region us-east-1 --ipam-scope-id ipam-scope-065e7dfe880df679c --source-ipam-pool-id ipam-pool-0008f25d7187a08d9 --locale us-west-2 --address-family ipv4

    출력에 생성한 풀의 ID가 표시됩니다. 다음 단계에서 이 ID를 사용합니다.

    { "IpamPool": { "OwnerId": "123456789012", "IpamPoolId": "ipam-pool-0da89c821626f1e4b", "SourceIpamPoolId": "ipam-pool-0008f25d7187a08d9", "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0da89c821626f1e4b", "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-065e7dfe880df679c", "IpamScopeType": "private", "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-0de83dba6694560a9", "Locale": "us-west-2", "PoolDepth": 2, "State": "create-in-progress", "Description": "regional--pool", "AutoImport": false, "AddressFamily": "ipv4", "Tags": [] } }
  2. 출력에 create-complete의 상태가 표시될 때까지 다음 명령을 실행합니다.

    aws ec2 describe-ipam-pools

    출력에는 IPAM에 있는 풀이 표시됩니다. 이 자습서에서 최상위 수준 풀 및 리전 풀을 만들었으므로 두 풀이 모두 표시됩니다.

    { "IpamPools": [ { "OwnerId": "123456789012", "IpamPoolId": "ipam-pool-0008f25d7187a08d9", "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0008f25d7187a08d9", "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-065e7dfe880df679c", "IpamScopeType": "private", "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-0de83dba6694560a9", "Locale": "None", "PoolDepth": 1, "State": "create-complete", "Description": "top-level-pool", "AutoImport": false, "AddressFamily": "ipv4" }, { "OwnerId": "123456789012", "IpamPoolId": "ipam-pool-0da89c821626f1e4b", "SourceIpamPoolId": "ipam-pool-0008f25d7187a08d9", "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0da89c821626f1e4b", "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-065e7dfe880df679c", "IpamScopeType": "private", "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-0de83dba6694560a9", "Locale": "us-west-2", "PoolDepth": 2, "State": "create-complete", "Description": "regional--pool", "AutoImport": false, "AddressFamily": "ipv4" } ] }

6단계: 리전 풀에 CIDR 프로비저닝

이 섹션의 단계에 따라 CIDR 블록을 풀에 할당하고 해당 블록이 성공적으로 프로비저닝되었는지 확인합니다.

AWS CLI를 사용하여 리전 풀에 CIDR 블록을 할당하려면
  1. 다음 명령을 실행하여 CIDR을 프로비저닝합니다.

    aws ec2 provision-ipam-pool-cidr --region us-east-1 --ipam-pool-id ipam-pool-0da89c821626f1e4b --cidr 10.0.0.0/16

    출력에 풀의 상태가 표시됩니다.

    { "IpamPoolCidr": { "Cidr": "10.0.0.0/16", "State": "pending-provision" } }
  2. 출력에 provisioned의 상태가 표시될 때까지 다음 명령을 실행합니다.

    aws ec2 get-ipam-pool-cidrs --region us-east-1 --ipam-pool-id ipam-pool-0da89c821626f1e4b

    다음 예 출력에서는 현재 상태를 보여줍니다.

    { "IpamPoolCidrs": [ { "Cidr": "10.0.0.0/16", "State": "provisioned" } ] }
  3. 최상위 풀을 쿼리하여 할당을 확인하려면 다음 명령을 실행합니다. 리전 풀은 최상위 풀 내의 할당으로 간주됩니다.

    aws ec2 get-ipam-pool-allocations --region us-east-1 --ipam-pool-id ipam-pool-0008f25d7187a08d9

    출력에 최상위 풀의 할당으로 리전 풀이 표시됩니다.

    { "IpamPoolAllocations": [ { "Cidr": "10.0.0.0/16", "IpamPoolAllocationId": "ipam-pool-alloc-fbd525f6c2bf4e77a75690fc2d93479a", "ResourceId": "ipam-pool-0da89c821626f1e4b", "ResourceType": "ipam-pool", "ResourceOwner": "123456789012" } ] }

7단계. 계정 간 IP 할당을 사용 설정하기 위한 RAM 공유 생성

이 단계는 선택 사항입니다. AWS Organization에서 계정과 IPAM 통합을 완료한 경우에만 이 단계를 완료할 수 있습니다.

IPAM 풀 AWS RAM 공유를 생성하는 경우 계정 간 IP 할당을 사용 설정합니다. RAM 공유는 홈 AWS 리전에서만 사용할 수 있습니다. 이 공유는 풀의 로컬 리전이 아닌 IPAM과 동일한 리전에서 생성한다는 점에 유의하세요. IPAM 리소스에 대한 모든 관리 작업은 IPAM의 홈 리전을 통해 이루어집니다. 이 자습서의 예에서는 단일 풀에 대해 단일 공유를 만들지만 단일 공유에 여러 풀을 추가할 수도 있습니다. 입력해야 하는 옵션에 대한 설명을 포함하여 자세한 내용은 AWS RAM을 사용하여 IPAM 풀 공유 섹션을 참조하세요.

다음 명령을 실행하여 리소스 공유를 생성합니다.

aws ram create-resource-share --region us-east-1 --name pool_share --resource-arns arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0dec9695bca83e606 --principals 123456

출력에 풀이 생성되었다고 표시됩니다.

{ "resourceShare": { "resourceShareArn": "arn:aws:ram:us-west-2:123456789012:resource-share/3ab63985-99d9-1cd2-7d24-75e93EXAMPLE", "name": "pool_share", "owningAccountId": "123456789012", "allowExternalPrincipals": false, "status": "ACTIVE", "creationTime": 1565295733.282, "lastUpdatedTime": 1565295733.282 } }

8단계. VPC 생성

다음 명령을 실행하여 VPC 생성하고 새로 생성된 IPAM의 풀에서 VPC로 CIDR 블록을 할당합니다.

aws ec2 create-vpc --region us-east-1 --ipv4-ipam-pool-id ipam-pool-04111dca0d960186e --cidr-block 10.0.0.0/24

출력에 VPC가 생성되었다고 표시됩니다.

{ "Vpc": { "CidrBlock": "10.0.0.0/24", "DhcpOptionsId": "dopt-19edf471", "State": "pending", "VpcId": "vpc-0983f3c454f3d8be5", "OwnerId": "123456789012", "InstanceTenancy": "default", "Ipv6CidrBlockAssociationSet": [], "CidrBlockAssociationSet": [ { "AssociationId": "vpc-cidr-assoc-00b24cc1c2EXAMPLE", "CidrBlock": "10.0.0.0/24", "CidrBlockState": { "State": "associated" } } ], "IsDefault": false } }

9단계. 정리

이번 섹션의 단계를 따르면 이 자습서에서 생성한 IPAM 리소스를 삭제할 수 있습니다.

  1. VPC를 삭제합니다.

    aws ec2 delete-vpc --vpc-id vpc-0983f3c454f3d8be5
  2. IPAM 풀 RAM 공유를 삭제합니다.

    aws ram delete-resource-share --resource-share-arn arn:aws:ram:us-west-2:123456789012:resource-share/3ab63985-99d9-1cd2-7d24-75e93EXAMPLE
  3. 리전 풀의 풀 CIDR을 프로비저닝 해제합니다.

    aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-0da89c821626f1e4b --region us-east-1
  4. 최상위 풀의 풀 CIDR을 프로비저닝 해제합니다.

    aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-0008f25d7187a08d9 --region us-east-1
  5. IPAM 삭제

    aws ec2 delete-ipam --region us-east-1