翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Terraform を使用して AWS で階層型のマルチリージョン IPAM アーキテクチャを作成する
Amazon Web Services、Donny Schreiber
概要
IP Address Manager (IPAM) はネットワーク管理における重要なコンポーネントであり、組織がクラウドインフラストラクチャをスケールするにつれて、その複雑性は増加します。適切な IPAM が欠けている状態では、組織は IP アドレスの競合やアドレススペースの浪費、複雑なトラブルシューティングのリスクにさらされ、停止やアプリケーションのダウンタイムにつながる可能性があります。このパターンは、HashiCorp Terraform を使用して AWS エンタープライズ環境に包括的な IPAM ソリューションを実装する方法を示しています。これにより、組織は組織内のすべての AWS アカウント で一元化された IP アドレス管理を容易にする階層型のマルチリージョン IPAM アーキテクチャを作成できますAWS。
このパターンは、最上位プール、リージョンプール、ビジネスユニットプール、環境固有のプールという高度な 4 層プール階層を持つ Amazon VPC IP Address Manager の実装に活用できます。この構造により、適切な IP アドレスガバナンスをサポートし、組織内の適切なチームに IP 管理を委任できるようになります。このソリューションは AWS Resource Access Manager (AWS RAM) を使用して、IP Address Manager プールを組織全体でシームレスに共有します。 は IPAM 仕様を AWS RAM 一元化および標準化します。この仕様は、チームがすべてのマネージドアカウントで構築できます。
このパターンを活用することで、以下の操作が可能です。
、ビジネスユニット AWS リージョン、環境間の IP アドレスの割り当てを自動化します。
プログラム検証により、組織のネットワークポリシーを適用します。
業務ニーズに合わせてネットワークのインフラストラクチャを効率的にスケールします。
IP アドレススペースを一元管理することで、運用上のオーバーヘッドを削減します。
セルフサービス CIDR 範囲の割り当てにより、クラウドネイティブワークロードのデプロイを高速化します。
ポリシーベースの制御と検証を実施することで、アドレスの競合を防ぎます。
前提条件と制限
前提条件
組織として管理される AWS アカウント 1 つ以上の AWS Organizations。
IP Address Manager の委任管理者として機能するネットワークハブまたはネットワーク管理アカウント。
インストール済み
の Terraform、バージョン 1.5.0 以降。 AWS Terraform のプロバイダー、設定
済み。 AWS Identity and Access Management (IAM) で設定された IP Address Manager、AWS RAM、および Virtual Private Cloud (VPC) を管理するためのアクセス許可。 VPCs
制限事項
IP Address Manager には Service Quotas が適用されます。プールのデフォルトの Service Quotas は、スコープあたり 50 です。このデプロイを 6 つのリージョン、2 つのビジネスユニット、4 つの環境で実行すると、67 のプールが作成されます。したがって、クォータの引き上げが必要になる場合があります。
リソースの割り当て後に IP Address Manager プールを変更または削除すると、依存関係の問題が発生する可能性があります。プールを削除するには、最初に割り当てを解除する必要があります。
IP Address Manager では、リソースのモニタリングでリソースの変更が反映されるのにわずかな遅延が発生する可能性があります。この遅延は約 20 分です。
IP Address Manager は、異なるスコープにわたって IP アドレスの一意性を自動的に適用することはできません。
カスタムタグは 「AWS tagging best practices」に従って作成してください。例えば、各キーは一意である必要があり、
aws:で始めることはできません。IP Address Manager を組織外のアカウントと統合する際には、必ず「考慮事項と制限」をご確認ください。
アーキテクチャ
ターゲットアーキテクチャ
IP Address Manager の設定とプール階層
ターゲットアーキテクチャの理論コンストラクトを以下の図に示します。スコープは、IP Address Manager の最上位コンテナです。それぞれのスコープは、単一ネットワークの IP アドレススペースを表します。プールとは、スコープ内の連続した IP アドレス範囲 (または CIDR 範囲) のコレクションです。プールを使用すると、ルーティングとセキュリティのニーズに応じて IP アドレスを整理できます。この図は、最上位プール、リージョンプール、ビジネスユニットプール、環境プールの 4 つの階層レベルのプールを示しています。

このソリューションは、IP Address Manager プールの明確な階層を確立します。
最上位プールには、
10.176.0.0/12などの組織の IP アドレススペース全体が含まれます。リージョンプールは、
us-east-1に対しての10.176.0.0/15といった、リージョン固有の割り当てを行う際に機能します。ビジネスユニットプールは、各 内のドメイン固有の割り当てです AWS リージョン。例えば、
us-east-1リージョンの財務ビジネスユニットでは10.176.0.0/16を保有している場合があります。環境プールは、さまざまな環境に対する目的固有の割り当てです。例えば、
us-east-1リージョンの財務ビジネスユニットでは、本番環境用に10.176.0.0/18を保有している場合があります。
このデプロイトポロジは、一元化された制御を維持しながら、IP Address Manager リソースを地理的に分散します。以下はその機能です。
IP Address Manager は 1 つのプライマリにデプロイされます AWS リージョン。
追加のリージョンは、IP Address Manager がリソースを管理できる運用リージョンとして登録されます。
各運用リージョンは、最上位プールから専用アドレスプールを受け取ります。
すべての運用リージョンのリソースは、プライマリリージョンの IP Address Manager を通じて一元管理されます。
各リージョンプールには、リソースの適切な割り当てに役立つロケールプロパティがリージョンに関連付けられています。
高度な CIDR 範囲の検証
このソリューションは、無効な設定のデプロイを防ぐように設計されています。Terraform を介してプールをデプロイすると、Terraform 計画フェーズ中に以下が検証されます。
すべての環境 CIDR 範囲が親ビジネスユニットの CIDR 範囲に含まれていることを検証します
すべてのビジネスユニット CIDR 範囲が親リージョンの CIDR 範囲内に含まれていることを確認します
すべてのリージョンの CIDR 範囲が最上位 CIDR 範囲に含まれていることを確認します
同じ階層レベル内で重複する CIDR 範囲をチェックします
環境とそれぞれのビジネスユニットの適切なマッピングを検証します
CIDR 範囲の割り当て
次の図は、開発者または管理者が新規 VPC を作成し、プールレベルから IP アドレスを割り当てる手法のサンプルを示しています。

この図表は、次のワークフローを示しています:
開発者または管理者は AWS マネジメントコンソール、、 AWS CLI、またはInfrastructure as Code (IaC) を通じて、
AY3環境プールで次に使用可能な CIDR 範囲をリクエストします。IP Address Manager は、そのプールで次に使用可能な CIDR 範囲を
AY3-4VPC に割り当てます。この CIDR 範囲は使用できなくなりました。
自動化とスケール
このソリューションは、次のようにスケーラビリティを実現するように設計されています。
リージョン拡張 – リージョンプールエントリを追加して Terraform 設定を拡張することで、新しいリージョンを追加します。
ビジネスユニットの成長 – BU 設定マップに追加することで、新しいビジネスユニットをサポートします。
環境の柔軟性 – 組織のニーズに基づいて、開発や本番環境などのさまざまな環境タイプを設定します。
マルチアカウントサポート – を通じて組織内のすべてのアカウント間でプールを共有します AWS RAM。
自動 VPC プロビジョニング – VPC プロビジョニングワークフローと統合して、CIDR 範囲の割り当てを自動化します。
階層構造では、次のようなさまざまな委任と制御のスケールも許可されます。
ネットワーク管理者は、最上位プールとリージョンプールを管理する場合があります。
ビジネスユニットの IT チームは、それぞれのプールの管理を委任している可能性があります。
アプリケーションチームは、指定された環境プールの IP アドレスを使用する場合があります。
注記
このソリューションを AWS Control Tower Account Factory for Terraform (AFT) と統合することもできます。詳しくは、本パターンの「追加情報」セクションの「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 Address Manager は Amazon VPC の機能です。 AWS ワークロードの IP アドレスを計画、追跡、モニタリングするのに役立ちます。
その他のツール
HashiCorp Terraform
は、コードを使用してクラウドインフラストラクチャとリソースをプロビジョニングして管理するのを支援する Infrastructure as Code (IaC) ツールです。
コードリポジトリ
このパターンのコードは、GitHub の「Sample Terraform Implementation for Hierarchical IPAM on AWS
ルートモジュール – デプロイオーケストレーション変数と入力変数。
IPAM モジュール – このパターンで説明されているアーキテクチャのコア実装。
タグモジュール – すべてのリソースに標準化されたタグ。
ベストプラクティス
ネットワークの計画時は、以下のベストプラクティスを参照してください。
最初に計画する – デプロイ前に IP アドレススペースを慎重に計画します。詳しくは「IP アドレスのプロビジョニング計画」をご確認ください。
CIDR 範囲の重複を避ける – 各レベルの CIDR 範囲が重複しないようにしてください。
バッファスペースを確保する – 増加に対応できるよう、CIDR 範囲は常に広めに割り当てるようにしましょう。
IP アドレス割り当てのドキュメント – IP アドレス割り当て戦略のドキュメントを管理します。
デプロイにおけるベストプラクティスを以下からご確認ください。
非本番環境から始める – まず非本番環境にデプロイします。
Terraform 状態管理を活用する – リモート状態ストレージとロックを実装します。詳しくは Terraform ドキュメントの「State storage and locking
」をご確認ください。 バージョン管理の実装 – Terraform コードのバージョンをすべて管理します。
CI/CD 統合の実装 – 反復可能なデプロイには、継続的インテグレーションと継続的デリバリー (CI/CD) パイプラインを使用します。
オペレーションにおいては以下のベストプラクティスを参考にしてください。
自動インポートを有効にする – 既存のリソースを自動的に検出してインポートするように IP Address Manager プールを設定します。「IPAM プールを編集する」に記載の手順に従って、自動インポートを有効にします。
IP アドレス使用率のモニタリング – IP アドレス使用率のしきい値のアラームを設定します。詳しくは「Amazon CloudWatch で IPAM をモニタリングする」をご確認ください。
定期的な監査 — IP アドレスの使用状況とコンプライアンスを定期的に監査します。詳しくは「IPAM での IP アドレス使用状況の追跡」をご確認ください。
使用していない割り当てを削除する – リソースが廃止された際には IP アドレス割り当てを解放しましょう。詳しくは「プールから CIDR のプロビジョニングを解除するには」をご確認ください。
セキュリティ面では以下のベストプラクティスを参考にしてください。
最小特権を実装する – 必要最低限のアクセス権を付与した IAM ロールを使用します。詳しくは「IAM でのセキュリティのベストプラクティス」および「IPAM での Identity and Access Management」をご確認ください。
サービスコントロールポリシーを使用する – サービスコントロールポリシー (SCP) を実装して、組織で IP Address Manager の使用を強制します。詳しくは「SCP を使用して VPC 作成に IPAM の使用を強制する」をご確認ください。
リソース共有の制御 – で IP Address Manager リソース共有の範囲を慎重に管理します AWS RAM。詳細については、「 を使用して IPAM プールを共有する AWS RAM」を参照してください。
タグ付けを強制する – IP Address Manager に関連するすべてのリソースに必須のタグ付けを実装します。詳しくは「追加情報」セクションの「タグ付け戦略」をご確認ください。
エピック
| タスク | 説明 | 必要なスキル |
|---|---|---|
AWS Organizations 機能を有効にします。 | AWS Organizations ですべての機能が有効になっていることを確認します。手順については、 AWS Organizations ドキュメントの「 を使用して組織のすべての機能を有効にする AWS Organizations」を参照してください。 | AWS 管理者 |
でリソース共有を有効にします AWS RAM。 | を使用して AWS CLI、次のコマンドを入力して、組織の AWS RAM リソース共有を有効にします。
詳細については、 AWS RAM ドキュメントの「 内でリソース共有を有効にする AWS Organizations」を参照してください。 | AWS 管理者 |
IP Address Manager の管理者を指定します。 | 組織の管理アカウントから、 を使用して AWS CLI次のコマンドを入力します。ここで、
注記通常、ネットワークまたはネットワークハブアカウントは、IP Address Manager の委任管理者として使用されます。 詳細については、「IP Address Manager ドキュメント」の「Integrate IPAM with accounts in an AWS Organization」を参照してください。 | AWS 管理者 |
| タスク | 説明 | 必要なスキル |
|---|---|---|
ネットワークアーキテクチャを定義します。 | リージョン、ビジネスユニット、環境の CIDR 範囲など、ネットワークアーキテクチャを定義して文書化します。詳しくは IP Address Manager ドキュメントの「IP アドレスのプロビジョニング計画」をご確認ください。 | ネットワークエンジニア |
リポジトリのクローン作成 |
| DevOps エンジニア |
変数を設定します。 |
| ネットワークエンジニア、Terraform |
IP Address Manager リソースをデプロイします。 |
| Terraform |
デプロイを検証する。 |
| AWS 全般、ネットワークエンジニア |
| タスク | 説明 | 必要なスキル |
|---|---|---|
VPC を作成します。 | Amazon VPC ドキュメントの「VPC を作成する」の手順に従ってください。VPC の CIDR 範囲を選択するステップに到達したら、リージョン、ビジネスユニット、環境プールのいずれかから利用可能な範囲を割り当てます。 | AWS 全般、ネットワーク管理者、ネットワークエンジニア |
CIDR 範囲の割り当てを検証します。 |
| AWS 全般、ネットワーク管理者、ネットワークエンジニア |
IP Address Manager をモニタリングします。 | IP Address Manager リソースの割り当てに関連するモニタリングとアラームを設定します。手順について、詳しくは IP Address Manager ドキュメントの「Amazon CloudWatch で IPAM をモニタリングする」および「リソースごとに CIDR の使用状況をモニタリングする」をご確認ください。 | AWS 全般 |
IP Address Manager の使用を強制します。 | 組織内のメンバーが VPC を作成するときに IP Address Manager を使用すること AWS Organizations を要求するサービスコントロールポリシー (SCP) を に作成します。手順については IP Address Manager ドキュメントの「SCP を使用して VPC 作成に IPAM の使用を強制する」を参照してください。 | 一般的な AWS、AWS 管理者 |
トラブルシューティング
| 問題 | ソリューション |
|---|---|
Terraform が失敗し、「IP Address Manager リソースが見つかりません」という表示が出る | IP Address Manager 管理者アカウントが適切に委任され、 AWS プロバイダーがそのアカウントに認証されていることを確認します。 |
CIDR 範囲の割り当てが失敗する | リクエストされた CIDR 範囲が IP Address Manager プールの使用可能な範囲内に収まり、既存の割り当てと重複していないことを確認します。 |
AWS RAM 問題の共有 | Organization でリソース共有が有効になっていることを確認します AWS 。正しいプリンシパルである組織の Amazon リソースネーム (ARN) が AWS RAM 共有で使用されていることを確認します。 |
プール階層の検証エラー | 子プール CIDR 範囲が親プール CIDR 範囲内に適切に含まれており、兄弟プールと重複していないことを確認します。 |
IP Address Manager のクォータ制限を超過した | IP Address Manager プールのクォータ引き上げをリクエストしてください。詳細については、「Service Quotas ユーザーガイド」の「クォータの引き上げのリクエスト」を参照してください。 |
関連リソース
AWS のサービス ドキュメント
AWS ブログ投稿
動画とチュートリアル
追加情報
AFT との統合
このソリューションを AWS Control Tower Account Factory for Terraform (AFT) と統合して、新しくプロビジョニングされたアカウントが適切なネットワーク設定を自動的に受信するようにできます。この IPAM ソリューションをネットワークハブアカウントにデプロイすることで、AFT を介して作成された新アカウントが、共有の IP Address Manager プールを VPC 作成時に参照できるようになります。
次のコードサンプルは、Parameter Store を使用したアカウントカスタマイズでの AFT AWS Systems Manager 統合を示しています。
# 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 リソースに自動的に適用されます。これにより、安定したガバナンスとコスト配分、リソース管理を実現します。