AWSのALB(Application Load Balancer)を使っていて、ALBに固定のIPアドレスでアクセスしたいな、という場合があると思います。
そんな時、Global Acceleratorというサービスを使うと、簡単にALBに固定IPアドレスでアクセスできるようになります。
ALBに固定IPを追加したい場面
例えばAWSでWEBサービスの環境を構築したいとき、WEBサーバーの前にALBを配置して負荷分散や、SSL化を行うような構成はよくある構成だと思います。
こんな構成をとった場合に、単純にDNSへALBのエンドポイントを登録すればよさそうですが、ここで1つ注意が必要です。
サブドメインを使う場合は問題ないのですが、メインのドメインにALBのエンドポイントをDNSへ登録して紐づけたいという場合には注意しなければなりません。
ドメインに対してCNAMEは登録できない
正しくは、登録できないわけではなく、登録してしまうと不具合が起きてしまう可能性があります。
AWSのRoute53を使ってDNSを管理している場合は、ALBをエイリアスと呼ばれる形でドメインに対してAレコードで登録することができるので問題ないのですが、
DNSをAWS外のサービスで管理している場合に、ALBのエンドポイントを設定するにはCNAMEで登録するしかありません。
ただメインのドメインにCNAMEを登録してしまうとMXレコードなどがうまく引けなくなってしまい、メールが受信できなくなるなどの障害に繋がってしまう可能性があります。
なので、AWS外のサービスを使っていても、ALBに固定のIPが紐づいていればAレコードで登録できるので、ALBへ固定のIPアドレスを付けたい、という事になります。
ALBに固定のIPアドレスを付けるには
AWSの Global Accelerator というサービスを使う事で実現できるようになります。
Global Acceleratorとは、世界中に分散されたエッジロケーションを使ったネットワーキングサービスで、Global Acceleratorを使用すると、リクエストがクライアントから地理的に近いエッジサーバーに最初のアクセスが届き、そのあとはAWS内のネットワークを通る事でネットワークパフォーマンスが向上するというサービスです。
このGlobal Acceleratorには静的なパブリックIPアドレスが2つ付与されるので、Global Acceleratorに対してALBを紐づけることで、固定のIPアドレスに対してアクセスするとGlobal Accelerator経由でALBへ到達することができるようになります。
Global Accelerator の作り方
AWSのコンソールから、「ネットワーキングとコンテンツ配信」→「Global Accelerator」を選択。
サイドメニューから「Accelerators」→「Create accelerator」をクリックします。
「Accelerator name」に任意の名前を付けて「Next」をクリックします。
Add Listenersで80番(Http)と443番(Https)を追加して「Next」をクリックします。
Add endpoint group で80番も443番もap-northeast-1(Tokyo)を選択して「Next」をクリックします。
Add endpoints で下記の通りに選択入力して「Create Create accelerator」をクリックします。
「Endpoint type」 → Application Load Balancer
「Endpoint」 → 該当のALB
「Weight」 → 255
一覧に作成したAcceleratorが表示され「Status」がDeployedになったら使用可能です。
「Static IP addresses」に2つ固定のIPアドレスが表示されるので、このIPアドレスでALBへアクセスすることができます。
コメント