こんにちは、ちはらです。
今回は、AWS Resource Access ManagerでVPCを共有している環境におけるEC2 Instance Connect エンドポイント(以下EICE)のクォータについてまとめています。
EC2 Instance Connect エンドポイントとは
EICEとは、踏み台サーバを使用したり、VPCがインターネットに直接接続したりする必要がなく、インターネットからインスタンスに安全に接続するためのエンドポイントサービスです。
主に以下のようなメリットが存在します。
- パブリックIPv4アドレスを設定することなく、インスタンスに接続が可能
- IGW経由のインターネット接続が不要
- IAMポリシーとアクセス許可でアクセス制限の設定が可能
- 基本的にコストがかからない(異なるAZ間のデータ転送にのみコストが発生)
EICEクォータ
EICEには以下のクォータが設けられています。
いずれのクォータも引き上げは不可です。
- AWS アカウント ごとの AWS リージョン あたりの EC2 Instance Connect Endpoint の最大数:5
- VPC あたりの EC2 Instance Connect Endpoint の最大数:1
- サブネットあたりの EC2 Instance Connect Endpoint の最大数:1
- EC2 Instance Connect Endpoint あたりの同時接続の最大数:20
今回の話の中で重要になってくるクォータがVPC あたりの EC2 Instance Connect Endpoint の最大数とサブネットあたりの EC2 Instance Connect Endpoint の最大数です。
実行環境
管理アカウントと利用者アカウントは同じAWS Organizationsに存在しており、
管理アカウントで作成したVPCをAWS RAMで利用者アカウントと共有している環境です。
VPC Share環境におけるEICEのクォータ
ドキュメントには1つのVPCやサブネットにつき1つのEICEしか作成ができないと記載されているので、
今回のようなVPC Share環境では1つのEICEしか作成できないというのが正しい挙動だといえます。
しかし、コンソール上で操作を行うと管理アカウントにEICEが存在している状態でも利用者アカウントにもEICEが作成できてしまうというのが現状です。(2025.03.01時点)
以下に実際のキャプチャを示します。
【各アカウントID】
管理アカウント:XXXX-XXXX-3505
利用者アカウント:XXXX-XXXX-2336
①管理アカウントと利用者アカウントでサブネットが共有されていることを確認
②管理アカウント上でEICEを作成
サブネットID:subnet-○○○bde
③利用者アカウント上でEICEを作成
サブネットID:subnet-○○○bde
※別アカウントのEICEを表示することはできないので、別ブラウザで管理アカウントと利用者アカウントにログインし、それぞれのEICEを表示している画面も置いておきます。
各アカウントに1つずつのEICEは作成できてしまいますが、
2つ目のEICEはクォータのエラーが表示され、作成することはできません。
このように、VPC Share環境において、1つのアカウントでEICEが作成されているからといって、他のアカウントで同じVPC・サブネット上にEICEが作成できないという訳ではないので注意が必要です。
さいごに
私がドキュメントを確認した範囲では1つのVPC・サブネットに複数のEICEが作成できるケースは記載がなかったので、しばらくしたら今回のようなケースは発生しないようにアップデートされる可能性もあると思います。
ですが、現在は実際に複数のEICEが作成できることが確認できているので、EICEの作成に制限をかけたい場合は注意が必要です。