Amazon Virtual Private Cloud (VPC) は AWS での IP アドレス管理を簡素化する IP Address Manager (IPAM) を発表

# はじめに

https://aws.amazon.com/jp/about-aws/whats-new/2021/12/amazon-virtual-private-cloud-vpc-announces-ip-address-manager-ipam/

> Amazon VPC IP Address Manager (IPAM) は AWS ワークロードの IP アドレスの計画、追跡、モニタリングを簡単にする新しい機能です。IPAM の自動ワークフローにより、ネットワーク管理者はより効率的に IP アドレスを管理することができます。
> 
> VPC IPAM により、ルーティングやセキュリティーのニーズに基づいて **IP アドレスを簡単に整理**し、**IP の割り当てを管理するためのシンプルなビジネスルールを設定することができます。**IPAM を使って、VPC への IP アドレスの割り当てを自動化することにより、保守が困難で時間のかかるスプレッドシートベースのアプリケーションや自社開発の IP プランニングアプリケーションを使用する必要がなくなります。このオートメーションは、数秒で VPC に IP アドレスを割り当てられるようにすることによって、新しいアプリケーションの導入または既存のアプリケーションの成長の遅れを解消するのに役立ちます。
> 
> また、IPAM は AWS アカウント、Amazon VPC、ルーティングドメインやセキュリティードメインを含む重要な **IP アドレス情報を自動的に追跡するため、IP アドレスを手動で追跡したり、帳簿に記録したりする必要がありません。**これにより、IP 割り当て中のエラーの可能性が低減されます。
> 
> また、IP アドレスの活用についてアラームを設定し、可視化することにより、IP アドレスの問題を積極的に解決することができます。IPAM は IP アドレスのモニタリングデータを自動的に保持します (最大3年間)。この履歴データを使って、ネットワークセキュリティーやルーティングポリシーの遡及的分析や監査を行うことができます。
> 
> IPAM は統一されたオペレーションビューを提供し、AWS Resource Access Manager と AWS Organizations を使って、AWS リージョンとお客様のアカウント全体の IP アドレスを管理することができます。統一されたオペレーションビューはあらゆる IP アドレスに関連する情報の単一の真の情報源として使用することができるため、IPAM は IP 利用率の追跡、トラブルシューティング、監査などの日常的な IP アドレス管理アクティビティーをより効率的に、より速く実行するのに役立ちます。
> 
> Amazon VPC IPAM は、通常、アフリカ (ケープタウン)、アジアパシフィック (香港)、アジアパシフィック (ムンバイ)、アジアパシフィック (大阪)、アジアパシフィック (シドニー)、アジアパシフィック (東京)、アジアパシフィック (ソウル)、アジアパシフィック (シンガポール)、カナダ (中部)、欧州 (ダブリン)、欧州 (フランクフルト)、欧州 (ロンドン)、欧州 (ミラノ)、欧州 (パリ)、欧州 (ストックホルム)、中東 (バーレーン)、南米 (サンパウロ)、米国西部 (北カリフォルニア)、米国東部 (バージニア北部)、米国東部 (オハイオ) および 米国西部 (オレゴン) の各 AWS リージョンでご利用いただけます。 
> 
> IPAM の詳細については、IPAM ドキュメントまたはアナウンスメントブログをご覧ください。**IPAM の価格については、Amazon VPC 料金**をご覧ください。

の記事内容確認です。

# 要するに

IPAMを使えば、IPアドレスの管理[^1] が楽になるよ :blush:

# これまでは

IPアドレス(CIDR)設計後、割り当てたIPアドレス範囲に沿ってIPアドレスの払い出し＆解放を運用者が頑張って管理していた :expressionless: 

https://www.startpassion.life/entry/2019/01/04/211408

とか

https://www.1josys.com/archives/12498252.html

のように。

# IPAMを使うと

- 割り当てるIPアドレスにルールを設定できる
    - ネットマスクの最小/最大長
    - タグ付け要件
- ルールに従ってIPアドレスの割り当てが自動で行える
- IPアドレスの追跡[^2]ができる


# 料金は

https://aws.amazon.com/jp/vpc/pricing/

に記載。

> IP アドレスマネージャー (IPAM) を使用して管理するアクティブな IP アドレスごとに 1 時間単位の料金をお支払いいただきます。

確認時点[^3]では1IPアドレスあたり `0.00027USD/hour` でした。[^4]

# やってみた

https://docs.aws.amazon.com/ja_jp/vpc/latest/ipam/getting-started-ipam.html

に沿って確認してみました。

## 概念と用語

まず IPAM を使用するにあたり押さえておく用語があります。

- スコープ
    - 単一ネットワークのIPスペースを表す。
    - スコープを使用することでIPアドレスの重複や競合を引き起こすことなくIPアドレスを再利用できる。

- プライベートスコープ
    - すべてのプライベートスペースを指す。

- パブリックスコープ
    - すべてのパブリックスペースを指す。

- **プール ← 一番重要**
    - IPアドレス範囲（またはCIDR）のこと。
    - 用途に応じてプールを分割して使用します。リージョンごと、環境ごと、アプリごと etc

## IPアドレス設計

ここは楽になりません。これまで同様に切り方を検討します。公式を参考に以下のような構成を想定します。

![20220128.drawio (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/bf07cef4-7797-a160-8e50-425af9f5625a.png)

- トップレベルとして`10.0.0.0/8`のIPアドレス範囲が存在
    - リージョン1として `10.0.0.0/16`
        - リージョン1開発用 `10.0.0.0/24`
        - リージョン1本番用  `10.0.10.0/24`
    - リージョン2として `10.10.0.0/16`
        - リージョン2開発用 `10.10.0.0/24`
        - リージョン2本番用  `10.10.10.0/24`

設計したIPアドレス範囲でスコープを作成します。

## スコープを作成する

今回はこの部分のみ作成してみました。
![20220128-Copy of Page-1.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/6b1aec4e-c22c-be3f-5f11-ebff149c98b9.png)

作成後のイメージはこんな感じ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/fb7e5ec3-4334-8a76-27e2-52b4a2720529.png)

各プールが階層構造で表現されています。

トップレベルプールを選択すると
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/6f0329a5-1f1c-7731-918d-6a214ef686a5.png)

プールの詳細
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/9e6e63f7-9488-0835-d0d6-f5e8f599c282.png)

モニタリング
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/5aeacc49-e792-dc1b-cf06-6dcb20d86173.png)

CIDR
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/64c0af9e-cf1e-65ec-33e1-92ec1c8e36ef.png)

割り振り[^5]
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/67b1d0bf-89ad-6bc6-fe6c-4fb5a9898429.png)

リソース
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/31c3d27f-51be-fa19-bac4-b10e3318cfb0.png)

コンプライアンス
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/70292a60-5adb-0028-4460-df440b285e77.png)

リソース共有
![リソース共有.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/f15feca2-b6aa-e682-2b35-9327446a3eb0.png)

タグ
![タグ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/4f88b947-5784-aebe-3a15-1988c688bf4e.png)


が確認できます。

## VPCを作成し開発プールのCIDRを割り当ててみる

VPCを作成する際に、 IPv4 CIDR ブロックの選択欄で `IPAM 割り当ての IPv4 CIDR ブロック - 新規` を選択して、開発プールを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/323c4b5c-a68d-bd7f-7693-e102c16890a7.png)

ネットマスクを `/25~` を指定して作成してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/93f7aea6-3e0d-0355-618b-30f55f6c5522.png)

VPC作成後、IPAMを開いて開発プールを選択してみると
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/72002073-6d32-2a21-b66d-283b38a25c2c.png)

256個あった開発プールのうち、128個割り当てられているのが確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/5d02ae96-1861-d113-d7b6-cfa2ea9778b7.png)

開発プールの利用可能なIPは残り128個であるのが分かりますね。

# まとめ

さらっとですが IPAM を触ってみました。作成したIPアドレス範囲に従い管理するイメージが少しでも湧けば良いかと思います。

現在帳簿で管理していて実態とドキュメントが乖離していて疲弊している人。管理対象がVPCへのIPアドレス範囲の払い出しまでの人は採用してみると幸せになれるかもしれません。

ただ、VPC **内** に割り当てたIPアドレス[^6]は管理できないので、管理したいとなった場合、また管理簿が誕生し辛みになりそう......

# 参考

https://docs.aws.amazon.com/ja_jp/vpc/latest/ipam/what-it-is-ipam.html

[^1]: IPアドレスの割り当てや割り当てるIPアドレスのルール設定、IPアドレスの追跡
[^2]: 割り当ての履歴の確認 
[^3]: 2022/01/28
[^4]: 東京リージョン
[^5]: 配下のプール情報
[^6]: サブネットなど