チュートリアル: AWS CLI を使用して IPAM とプールを作成する
このチュートリアルのステップに従って、AWS CLI を使用して IPAM を作成し、IP アドレスプールを作成して、IPAM プールの CIDR を使って VPC を割り当てます。
次に、このセクションのステップに従って作成するプール構造の階層の例を示します。
-
AWS リージョン 1、AWS リージョン 2 で運用されているIPAM
-
プライベートスコープ
-
最上位プール
-
AWS リージョン 2 のリージョンプール
-
開発プール
-
VPC の割り当て
-
-
-
-
-
注記
このセクションでは、IPAM を作成します。デフォルトでは、作成できる IPAM は 1 つだけです。詳細については、「IPAM のクォータ」を参照してください。既に IPAM アカウントを委任し、IPAM を作成済みの場合は、ステップ 1 と 2 をスキップできます。
内容
ステップ 1: 組織で IPAM を有効にする
この手順は省略可能です。このステップを実行して、AWS CLI を使用して組織で IPAM を有効にし、委任された IPAM を構成します。IPAM アカウントのロールの詳細については、IPAM を AWS Organizations 内のアカウントと統合する を参照してください。
このリクエストは、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-id11111111111
有効化に成功したことを示す次の出力が表示されます。
{
"Success": true
}
ステップ 2: IPAM を作成する
このセクションのステップに従って IPAM を作成し、作成されたスコープに関する追加情報を表示します。この IPAM は、後のステップでプールを作成し、それらのプールの IP アドレス範囲をプロビジョニングするときに使用します。
注記
運用リージョンオプションによって、IPAM プールを使用できる AWS リージョンが決まります。運用リージョンの詳細については、IPAM を作成するを参照してください。
AWS CLI を使用して IPAM を作成するには
-
次のコマンドを実行して IPAM インスタンスを作成します。
aws ec2 create-ipam --description
my-ipam
--regionus-east-1
--operating-regionsRegionName=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": [] } }
-
以下のコマンドを実行して、スコープに関連する追加情報を表示します。パブリックスコープは、パブリックインターネット経由でアクセスされる 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 アドレスプールを作成するには
-
以下のコマンドを実行して IPv4 アドレスプールを作成します。前のステップで作成した IPAM のプライベートスコープの ID を使用します。
aws ec2 create-ipam-pool --ipam-scope-id
ipam-scope-065e7dfe880df679c
--description"top-level-pool"
--address-familyipv4
出力には、プールの
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": [] } }
-
出力に
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 ブロックをプールにプロビジョニングするには
-
以下のコマンドを実行して CIDR をプロビジョニングします。
aws ec2 provision-ipam-pool-cidr --region
us-east-1
--ipam-pool-idipam-pool-0008f25d7187a08d9
--cidr10.0.0.0/8
出力では、プロビジョニングの状態を確認できます。
{ "IpamPoolCidr": { "Cidr": "10.0.0.0/8", "State": "pending-provision" } }
-
出力に
provisioned
という状態が表示されるまで、次のコマンドを実行します。aws ec2 get-ipam-pool-cidrs --region
us-east-1
--ipam-pool-idipam-pool-0008f25d7187a08d9
以下の出力の例は、正しい状態を示しています。
{ "IpamPoolCidrs": [ { "Cidr": "10.0.0.0/8", "State": "provisioned" } ] }
Step 5. 最上位プールから取得された CIDR を使用してリージョンプールを作成する
IPAM プールを作成すると、プールはデフォルトで IPAM の AWS リージョンに属します。VPC を作成するとき、VPC による取得元のプールは、VPC と同じリージョンに存在する必要があります。プールを作成するとき、--locale
オプションを使用して、IPAM のリージョン以外のリージョンのサービスでプールを使用できるようにすることが可能です。このセクションのステップに従って、別のロケールでリージョンプールを作成します。
AWS CLI を使用して、前のプールから取得された CIDR を使用してプールを作成するには
-
次のコマンドを実行して、プールを作成し、前のプールから取得された既知の使用可能な CIDR を持つスペースを挿入します。
aws ec2 create-ipam-pool --description
"regional--pool"
--regionus-east-1
--ipam-scope-idipam-scope-065e7dfe880df679c
--source-ipam-pool-idipam-pool-0008f25d7187a08d9
--localeus-west-2
--address-familyipv4
出力には、作成したプールの 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": [] } }
-
出力に
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 ブロックをリージョンプールに割り当てるには
-
以下のコマンドを実行して CIDR をプロビジョニングします。
aws ec2 provision-ipam-pool-cidr --region
us-east-1
--ipam-pool-idipam-pool-0da89c821626f1e4b
--cidr10.0.0.0/16
出力には、プールの状態が表示されます。
{ "IpamPoolCidr": { "Cidr": "10.0.0.0/16", "State": "pending-provision" } }
-
出力に
provisioned
という状態が表示されるまで、次のコマンドを実行します。aws ec2 get-ipam-pool-cidrs --region
us-east-1
--ipam-pool-idipam-pool-0da89c821626f1e4b
以下の出力の例は、正しい状態を示しています。
{ "IpamPoolCidrs": [ { "Cidr": "10.0.0.0/16", "State": "provisioned" } ] }
-
以下のコマンドを実行して、最上位プールをクエリして割り当てを表示します。リージョンプールは、最上位プール内の割り当てと見なされます。
aws ec2 get-ipam-pool-allocations --region
us-east-1
--ipam-pool-idipam-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 共有を作成する
この手順は省略可能です。このステップは、IPAM を AWS Organizations 内のアカウントと統合するを完了した場合にのみ完了できます。
IPAM プールの AWS RAM 共有を作成すると、アカウント間の IP 割り当てが有効になります。RAM 共有は、ホーム AWS リージョンでのみ使用できます。この共有は、プールのローカルリージョンではなく、IPAM と同じリージョンに作成することに注意してください。IPAM リソースに対するすべての管理操作は、IPAM のホームリージョンを通じて行われます。このチュートリアルの例では 1 つのプールに対して 1 つの共有を作成しますが、1 つの共有に複数のプールを追加できます。入力する必要があるオプションの説明など、詳細については、AWS RAM を使用して IPAM プールを共有するを参照してください。
リソース共有を作成するには、以下のコマンドを実行します。
aws ram create-resource-share --region
us-east-1
--namepool_share
--resource-arnsarn:aws:ec2::123456789012:ipam-pool/ipam-pool-0dec9695bca83e606
--principals123456
出力は、プールが作成されたことを示しています。
{
"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-idipam-pool-04111dca0d960186e
--cidr-block10.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 リソースを削除します。
-
VPC を削除します。
aws ec2 delete-vpc --vpc-id
vpc-0983f3c454f3d8be5
-
IPAM プールの RAM 共有を削除します。
aws ram delete-resource-share --resource-share-arn
arn:aws:ram:us-west-2:123456789012:resource-share/3ab63985-99d9-1cd2-7d24-75e93EXAMPLE
-
リージョンプールからプール CIDR をプロビジョニング解除します。
aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id
ipam-pool-0da89c821626f1e4b
--regionus-east-1
-
最上位プールからプール CIDR をプロビジョニング解除します。
aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id
ipam-pool-0008f25d7187a08d9
--regionus-east-1
-
IPAM を削除します。
aws ec2 delete-ipam --region
us-east-1