

# IPAM を使用してプレフィックスリストの更新を自動化する
<a name="automate-prefix-list-updates"></a>

[マネージドプレフィックスリスト](https://docs.aws.amazon.com/vpc/latest/userguide/managed-prefix-lists.html)は、個々の IP アドレスを指定する代わりに、セキュリティグループルールとルートテーブルで参照できる CIDR ブロックのセットです。例えば、`10.1.0.0/16`、`10.2.0.0/16`、および `10.3.0.0/16` 用に個別のセキュリティグループルールを作成する代わりに、3 つの CIDR すべてを含む 1 つのプレフィックスリストを作成し、1 つのルールで参照できます。

ユーザー定義変数には次の 2 種類があります。
+ **カスタマーマネージドプレフィックスリスト**: 定義および管理する IP 範囲
+ **AWS マネージドプレフィックスリスト**: AWS サービス (S3 や CloudFront など) の IP 範囲

この IPAM 機能は、CIDR エントリをネットワークの変更と同期させることで、**カスタマーマネージドプレフィックスリスト**の管理を自動化します。

## これによって解決される問題
<a name="the-problem-this-solves"></a>

自動化しないと、ネットワークチームはインフラストラクチャが変更されたときにプレフィックスリストを手動で更新し、環境とリージョン全体で一貫したプレフィックスリストを維持するのにかなりの時間を費やします。

IPAM は、プレフィックスリストを自動的に入力するルールを作成できるようにすることで、この問題を解決します。IPAM プールから CIDR を参照するか、実際の AWS リソースに基づいてルールを作成するという 2 つのアプローチを使用できます。作成するルールは、例えば、「env=prod とタグ付けされたすべての VPC を含める」、「us-east-1 のすべてのサブネットを含める」、「アカウント 123456789 が所有するすべての Elastic IP アドレスを含める」などです。これらのリソースを追加または削除すると、IPAM は CIDR を使用して自動的にプレフィックスリストを更新します。

## 仕組み
<a name="how-it-works"></a>

プレフィックスリストに含める IP アドレスを IPAM に指示するルールを作成します。例えば、「env=prod とタグ付けされたすべての VPC CIDR を含める」などです。本番稼働用 VPC を追加または削除すると、IPAM は自動的にプレフィックスリストを更新します。

## どのような場合に使用するか
<a name="when-to-use-it"></a>
+ **セキュリティグループ**: 「env=prod とタグ付けされたすべての VPC を含める」というルールを作成すると、新しく本番稼働用 VPC を追加するときに、これらはセキュリティグループルールで自動的に許可されます
+ **マルチリージョン**: 複数のリージョンに同じ IPAM ルールをデプロイすると、CIDR エントリを手動でコピーしなくても同じプレフィックスリストが保持されます
+ **動的インフラストラクチャ**: VPC またはサブネットを作成/削除すると、手動で更新することなく、その CIDR がプレフィックスリストに自動的に追加/削除されます

## 前提条件
<a name="prerequisites"></a>

開始する前に、以下を確認してください。
+ [アドバンスト階層](https://docs.aws.amazon.com/vpc/latest/ipam/mod-ipam-tier.html)が有効になっている [IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/create-ipam.html)
+ [カスタマーマネージドプレフィックスリスト](https://docs.aws.amazon.com/vpc/latest/userguide/managed-prefix-lists.html#create-prefix-list) (またはセットアップ時に作成)
+ IPAM および EC2 プレフィックスリストオペレーションの [IAM アクセス許可](https://docs.aws.amazon.com/vpc/latest/ipam/iam-ipam.html)

## セットアップステップ
<a name="setup-steps"></a>

### ステップ 1: IPAM プレフィックスリストリゾルバーを作成する
<a name="step-1-create-ipam-prefix-list-resolver"></a>

IPAM プレフィックスリストリゾルバーを作成して、プレフィックスリストに含める CIDR を定義します。

------
#### [ AWS Management Console ]

**IPAM プレフィックスリストリゾルバーを作成するには**

1. [IPAM コンソール](https://console.aws.amazon.com/ipam/)を開きます。

1. ナビゲーションペインで、**[プレフィックスリストリゾルバー]** を選択します。

1. **[プレフィックスリストリゾルバーを作成**] をクリックします。

1. **[ステップ 1: リゾルバーの詳細を設定する]** で、以下を選択します。
   + **IPAM**: IPAM インスタンス
   + **アドレスファミリー**: IPv4 または IPv6
   + **名前タグ - オプション**: わかりやすい名前
   + **説明 - オプション**: 説明
   + **タグ**: リソースタグ

1. [**次へ**] を選択します。

1. **[ステップ 2: ルールを設定する]** で、**[ルールを追加]** を選択します。最大 99 個のルールを追加できます。
**重要**  
CIDR 選択ルールなしでプレフィックスリストリゾルバーを作成できますが、ルールを追加するまで空のバージョン (CIDR が含まれていない) が生成されます。

1. 以下のルールタイプのいずれかを選択します。
   + **静的 CIDR**: 変更されない CIDR の固定リスト (リージョン間でレプリケートされる手動リストなど)
   + **IPAM プール CIDR**: CIDR (IPAM 本番稼働用プールからのすべての CIDR など)

     このオプションを選択する場合は、以下を選択する必要があります。
     + **IPAM スコープ**: リソースを検索する IPAM スコープを選択します。
     + **条件:**
       + **プロパティ**
         + **IPAM プール ID**: リソースを含む IPAM プールを選択する
         + **CIDR** (10.24.34.0/23 など)
       + **オペレーション**: Equals/Not equals
       + **値**: 条件に一致する値
   + **スコープリソース CIDR**: IPAM スコープ内の VPC、サブネット、EIP などの AWS リソースからの CIDR

     このオプションを選択する場合は、以下を選択する必要があります。
     + **IPAM スコープ**: リソースを検索する IPAM スコープを選択します。
     + **リソースタイプ**: VPC やサブネットなどのリソースを選択します。
     + **条件**:
       + **プロパティ**:
         + リソース ID: リソースの一意の ID (vpc-1234567890abcdef0 など)
         + リソース所有者 (111122223333 など)
         + リソースリージョン (us-east-1 など)
         + リソースタグ (キー: name、値: dev-vpc-1 など)
         + CIDR (10.24.34.0/23 など)
       + **オペレーション**: Equals/Not equals
       + **値**: 条件に一致する値

1. [**次へ**] を選択します。

1. **[検証と作成]** を選択します。

------
#### [ Command line ]

このセクションのコマンドは、*AWS CLI コマンドリファレンス*に関連しています。ドキュメントには、コマンドの実行時に使用できるオプションの詳しい説明が記載されています。

次の AWS CLI コマンドを使用して、IPAM プレフィックスリストリゾルバーを作成します。
+ [create-ipam-prefix-list-resolver](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-ipam-prefix-list-resolver.html) コマンドを使用して、返されたリゾルバー ID をステップ 2 のために保存します。

------

### ステップ 2: プレフィックスリストに接続するリゾルバーターゲットを作成する
<a name="step-2-create-resolver-target"></a>

リゾルバーターゲットを作成して、リゾルバーを既存のプレフィックスリストにリンクします。ステップ 1 で返されたリゾルバー ID を使用します。

------
#### [ AWS Management Console ]

**IPAM プレフィックスリストリゾルバーターゲットを作成するには**

1. IPAM コンソールで、**[プレフィックスリストリゾルバー]** を選択します。

1. ステップ 1 で作成したリゾルバーを選択します。

1. [リゾルバーの詳細] ページで、**[ターゲット]** タブを選択します。

1. **[ターゲットの作成]** を選択します。

1. 次のようにターゲットを設定します。
   + **リージョン**: 既存のマネージドプレフィックスリストが存在するリージョン、または作成するリージョンを選択します。
   + **プレフィックスリスト**: 既存のマネージドプレフィックスリストを選択するか、新しいプレフィックスリストを作成します。

1. **[必要なバージョン]** で、次のいずれかを選択します。
   + **常に最新バージョンを追跡する**: プレフィックスリストを手動による介入なしでインフラストラクチャの変更に対して最新の状態に保つ場合は、これを選択して自動更新します。
   + **特定のバージョンを追跡する**: 予測可能で制御された更新が必要で、プレフィックスリストの変更を手動で承認する場合は、これを選択して安定性を確保します。

1. **[ターゲットの作成]** を選択します。

------
#### [ Command line ]

このセクションのコマンドは、*AWS CLI コマンドリファレンス*に関連しています。ドキュメントには、コマンドの実行時に使用できるオプションの詳しい説明が記載されています。

次の AWS CLI コマンドを使用して、IPAM プレフィックスリストリゾルバーターゲットを作成します。
+ ステップ 1 のリゾルバー ID と既存のプレフィックスリスト ID を使用して [create-ipam-prefix-list-resolver-target](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-ipam-prefix-list-resolver-target.html) コマンドを使用します。

------

IPAM は、ルールに基づいてプレフィックスリストを自動的に更新するようになりました。プレフィックスリストには、条件に一致する CIDR が入力されます。

### ステップ 3: バージョンと同期をモニタリングする
<a name="step-3-monitor-versions-synchronization"></a>

プレフィックスリストリゾルバーとターゲットを作成すると、プレフィックスリストリゾルバーはルールに基づいて CIDR バージョンを生成し、ターゲットはそれらの CIDR をリゾルバーから特定のマネージドプレフィックスリストに同期します。各バージョンは、その時点でルールに一致した CIDR のスナップショットです。バージョン番号は、インフラストラクチャの変更によって CIDR リストが変更されるたびに増加します。

**バージョンの例:**

**初期状態 (バージョン 1)**

本番環境:
+ vpc-prod-web (10.1.0.0/16) - env=prod タグ付き
+ vpc-prod-db (10.2.0.0/16) - env=prod タグ付き

リゾルバールール: env=prod とタグ付けされたすべての VPC を含める

**バージョン 1 CIDR:** 10.1.0.0/16、10.2.0.0/16

**インフラストラクチャの変更 (バージョン 2)**

新しい VPC が追加されました。
+ vpc-prod-api (10.3.0.0/16) - env=prod タグ付き

IPAM は変更を自動的に検出し、新しいバージョンを作成します。

**バージョン 2 CIDR:** 10.1.0.0/16、10.2.0.0/16、10.3.0.0/16

このセクションでは、AWS コンソールまたは AWS CLI でバージョンの作成をモニタリングし、AWS CLI で同期の成功をモニタリングする方法について説明します。

また、バージョンとプレフィックスのリストサイズの制限内に収まるように CIDR 選択ルールを再評価して調整する必要がある可能性があるため、障害メトリクスに CloudWatch アラームを設定することをお勧めします。IPAM プレフィックスリストに関連する CloudWatch メトリクスのリストについては、「[IPAM プレフィックスリストリゾルバーメトリクス](cloudwatch-ipam-ip-address-usage.md#cloudwatch-ipam-prefix-list-resolver-metrics)」を参照してください。

------
#### [ AWS Management Console ]

**作成されたバージョンを表示し、ターゲット同期をモニタリングするには**

1. IPAM コンソールで、**[プレフィックスリストリゾルバー]** を選択します。

1. ステップ 1 で作成したリゾルバーを選択します。

1. [ドメインの詳細] ページで、**[バージョン]** タブを選択します。ここでは、リゾルバーによって作成されたすべてのバージョンと、そのバージョンのすべての CIDR が表示されます。

1. リゾルバーの詳細ページで、**[モニタリング]** タブを選択します。このビューでは、[IPAM プレフィックスリストリゾルバーメトリクス](cloudwatch-ipam-ip-address-usage.md#cloudwatch-ipam-prefix-list-resolver-metrics) はグラフ形式で表示されます。
   + プレフィックスリストリゾルバーのバージョン作成の成功
   + プレフィックスリストリゾルバーのバージョン作成の失敗

1. **[モニタリング]** タブから、**[プレフィックスリストリゾルバーのバージョン作成のアラームを作成]** を選択して CloudWatch アラームを設定することもできます。アラームがメトリクスに部分的に設定された状態で CloudWatch コンソールが表示されます。アラームの作成を完了する方法の詳細については、「*Amazon CloudWatch ユーザーガイド*」の「[静的しきい値に基づいて CloudWatch アラームを作成する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ConsoleAlarms.html)」を参照してください。

------
#### [ Command line ]

このセクションのコマンドは、*AWS CLI コマンドリファレンス*に関連しています。ドキュメントには、コマンドの実行時に使用できるオプションの詳しい説明が記載されています。

バージョンと同期をモニタリングするには、次の AWS CLI コマンドを使用します。

1. [get-ipam-prefix-list-resolver-version-entries](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-ipam-prefix-list-resolver-version-entries.html) コマンドを使用して、リゾルバーによって作成された最新バージョンを表示します。

1. [describe-ipam-prefix-list-resolver-targets](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-ipam-prefix-list-resolver-targets.html) コマンドを使用して、リゾルバーのターゲット同期ステータスをモニタリングします。

モニタリングコマンドには、以下が表示されます。
+ state - 現在の同期状態 (create-complete、modify-complete など)
+ lastSyncedVersion - 最後に正常に同期されたバージョン
+ desiredVersion - 同期先のターゲットバージョン
+ stateMessage - 同期が失敗した場合のエラーの詳細

------

**重要**  
ロールバックのワークフローをサポートするために、IPAM はターゲットごとに以前の 10 個のプレフィックスリストリゾルバーバージョンのコピーを保持します。このしきい値よりも古く、7 日間参照されていないバージョンは削除されます。

### ステップ 4: (オプション) IPAM プレフィックスリストの同期を有効および無効にする
<a name="step-4-optional-enable-disable-sync"></a>

マネージドプレフィックスリストが IPAM プレフィックスリストターゲットとして設定されていて、IPAM プレフィックスリストリゾルバーターゲットにアクセスするためのアクセス許可を必要とせずにプレフィックスリストを変更する場合は、[マネージドプレフィックスリストを変更](https://docs.aws.amazon.com/vpc/latest/userguide/work-with-cust-managed-prefix-lists.html#modify-managed-prefix-list)し、IPAM プレフィックスリストリゾルバーとの同期を無効にすることができます。無効にすると、プレフィックスリスト CIDR は自動的に更新されず、変更を加えることができます。有効にすると、プレフィックスリスト CIDR は、関連付けられたリゾルバーの CIDR 選択ルールに基づいて自動的に更新されます。