CDP:IP Poolingパターン

提供:AWS-CloudDesignPattern
移動: 案内, 検索
寄贈したアーキテクト

接続許可済みIPアドレスのプール

目次

解決したい課題

 セキュリティ上の理由や、接続制限を行うために、接続元のIPアドレスを制限しているケースがある。

 例えば、携帯キャリアに対してメールを送信する際に、事前に登録しておいたIPアドレスからしか送信を受け付けようにしているケースや、指定のネットワーク宛てのサービスで接続元を制限しているようなケースなどだ。

 クラウドでサーバーを起動する場合はグローバルIPアドレスが付与されるが、多くの場合、指定したグローバルIPアドレスを付与できない。そのため、サービス元に毎回登録する必要が出てくるが、登録が手動だったり何かしらの処理手順が必要だったりする場合、クラウドの柔軟なリソース調達のメリットを得にくくなる。

クラウドでの解決/パターンの説明

 事前に必要な分のグローバルIPアドレスを確保し、接続先に登録しておく。サーバーの変更や増減があった場合、利用可能なIPアドレスプールから使用できるものを探し、サーバーに割り当てる。 サーバーへのグローバルIPの割り当ては、サーバー自体にこの処理を入れ、起動時に自身に割り当てるようにしておくことで、オートスケーリング時に自動的に実行できる。

実装

  • ElasticIPアドレスを必要な数だけ取得する。
  • 取得したElasticIPをテキストファイルに列挙して、IPアドレスリストとしてS3に保存する。
  • EC2をオートスケーリングで起動する。起動の際、IPアドレスリストのパスをタグにセットする。
  • 起動したEC2インスタンスの初期化スクリプトで、タグに設定されたパスを基に、S3からIPアドレスリストを取得する。
  • 自分のインスタンスのリージョンにあるElasticIPの中で、未使用のものの一覧を取得する。
  • IPアドレスリスト内にあり、未使用のElasticIPを自身のインスタンスにひもづける。

構造

6wNg0ISJczU5Pz1m-AE90D.png

利点

  • オートスケーリングでサーバーが増減した場合も、指定のElasticIPのリストに入っているEIPを利用できる。
  • 設定ファイルはS3に入っているため、IPアドレス数などの設定変更は容易に行える。また、S3へのアクセスパスなどの設定は、Cloud DIパターンを利用して柔軟に変更できる。

注意点

  • EC2インスタンスにひもづけていないElasticIPアドレスは、課金対象となる。
  • VPCのプライベートネットワーク内ではAPIを利用できないため、インターネットへの直接アクセス、もしくはNAT経由でアクセスできるインスタンスでパターンを実装する必要がある。

その他

個人用ツール
名前空間
変種
操作
CDPメニュー
ツールボックス