がじぇったー

お金と家電とプログラミングのブログ

【AWS】ALBのIPを固定したいのであればGlobal Acceleratorを使う

こんにちわ

がじぇったー (@hackmylife7) | Twitter

です。

仕事でAWS Global Acceleratorを使う機会があったので調べたことをまとめます。

TL;DR(要約)

  • LBの前段に置くことによりIPの固定が可能。その他細かい設定は下記を参照してください

そもそもAWS Global Acceleratorとは?

  • 下記ドキュメントの通り、AWS Global AcceleratorをALBやNLBの前段に置くことでIPを固定することができる
  • 東京リージョンで使用可能。

AWS Global Accelerator は、ローカルまたは世界中のユーザーに提供するアプリケーションの可用性とパフォーマンスを改善するサービスです。Application Load Balancer、Network Load Balancer、Amazon EC2 インスタンスなど、単一または複数の AWS リージョンのアプリケーションエンドポイントへの固定エントリポイントとして機能するスタティック IP アドレスを提供します。

AWS Global Accelerator(アプリケーションの可用性とパフォーマンスを向上)| AWS

  • AWS Global Acceleratorを作成するとEIPのようなスタティックなIPが二つ払い出される

Route53のゾーン設定でAレコードで登録することが可能

  • AWS Global Acceleratorを作成後、Route53で対象のドメインに対しAレコードを作成することができる。下記の画像のように画面から直接AWS Global Acceleratorを選択することができる

f:id:gadgeterkun:20200926163953p:plain

ログを取得することが可能

  • フローログの取得設定を有効化することにより、障害時の調査に使うことができる。デフォルトはオフなので自ら設定する必要あり。(ログはLB同様指定したS3バケットにはかれる)
  • 本番稼働中にこの作業を行っても通信が切断されたり遅延するようなことは筆者の環境だとなかった

払い出された二つのIPのうち一つのみを使用することが可能

  • 前述の通りAWS Global Accelerator を作成するとIPが二つ払い出されるが、そのうち片方のIPをRoute53のAレコードに直接記載することでも使用できる
  • その際、AWS Global Acceleratorの片方のIPに障害が起こっても自動で切り替わらないので手動でIPを入れ替える必要がある(おそらくGlobal Acceleratorの実態はALB同様EC2のようなマシンリソースが裏側にいると思われる)

通信制御はALBのSGで制御が可能

  • Global Accelerator は、接続元クライアントの IP アドレスを保持することが可能。そのため、後ろにいるALBにアタッチするSGでIP制御が可能。WAFを使用する必要はない。保持しないよう設定することも可能

監視

CloudWatchによるモニタリングが可能。メトリクスは以下を参照

Using Amazon CloudWatch with AWS Global Accelerator - AWS Global Accelerator

参考

よくある質問 - AWS Global Accelerator | AWS

Endpoints in AWS Global Accelerator - AWS Global Accelerator