IDCF ILB で Zone Apex の負荷分散を可能にする

##はじめに
 IDCFのILB（Infinite Load Balancer）では、直接 Zone Apexへの負荷分散を行う事はできません。（[参照：ILB サービス仕様](https://www.faq.idcf.jp/app/answers/detail/a_id/760/kw/ILB)）
一方、AWSのELB(Elastic Load Balancing)は、この問題をRoute 53のエイリアスレコードで解決することができます。（[参照：Amazon Route 53 開発者ガイド](https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/resource-record-sets-choosing-alias-non-alias.html)）
IDCFのILBでもZone APEXの負荷分散ができるようにしてみよう！という事で、DNSimple のエイリアスレコードを使って名前解決を試みます。
####■ Zone APEXとは？
(DNS)ゾーンAPEX(エイペックス)とは、example.jp のように www などのサブドメインを含まないドメイン名を指します。
####■ IDCFのILBでZone Apexへの負荷分散ができない理由
Zone APEXに対しては以下の理由からCNameが使えません。

 - CNAMEレコードは他のデータと共存できない
 - DNSドメインの設定では、最低でもZone apexに対してNS(ネームサーバ)レコードの指定が必要
 - よって、Zone apexに対してCNAMEをマップできない

一方、ILBをDNSに登録するには、FQDNをCNAMEに登録する必要があります。
　[参照：ILB サービス全般 | Q. DNSにはどのように登録すればよいのでしょうか？](https://www.faq.idcf.jp/app/answers/detail/a_id/622/related/1/session/L2F2LzEvdGltZS8xNTA1Nzg5Njc1L3NpZC9mVWMyMEN2THZLZjR6ZjlJdUVxWWhQQUUwT2VTSEhnRlUzVElrbFFJV3oyUjRnVXNCNElHbDBOdmV6YTlMSUw5ekI0M0U1eGhKckVtY0pRY2lEU25yZTNUdklQaHYyR2tSVGdmS0lUM1RDcGJObHBnQm1uS2c2TnclMjElMjE%3D)

このため、ILBでは直接Zone APEXの負荷分散ができない、ということになるわけです。

##やってみよう
では、早速もろもろ設定してみましょう。
###ILBによる負荷分散環境の構築
IDCF上にWebサーバー2台とILBを設置して、ロードバランシングが行えるように設定します。
設定方法等は以下サイトに丁寧に説明がありますので、割愛。
　[IDCFご利用ガイド | 高機能ロードバランサー「ILB」を活用したWebサーバーの負荷分散](https://www.idcf.jp/help/ilb/guide/ilb_manual.html)
　[ILBを使ってWebサーバーをバランシング！構成事例もご紹介](http://blog.idcf.jp/entry/ILB1)

ILBのロードバランサーを作成する際に指定したFQDNが、サーバーにアクセスするためのURLとなります。

<img width="514" alt="キャプチャ.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/105824/973593ec-0034-0cf9-d0e6-ee9d30afce33.png">

FQDNをURLに指定して、ブラウザでアクセスできることを確認しておきましょう。
ブラウザの更新行うと、それぞれのVMに振り分けされてページが切り替わることが確認できます。
<img width="399" alt="キャプチャweb1.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/105824/c2a952e6-6fec-43f2-2b1d-02bef94b1e42.png"><img width="402" alt="キャプチャweb2.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/105824/aac99acd-c976-af1c-efad-807397951130.png">



###DNSimpleでドメインとエイリアスレコードの追加
次はZone Apex（ドメイン名）でアクセスできるように、DNSの設定をしていきます。

使用するドメインを DNSimple の管理下に追加します。
DNSimpleでドメインを取得することもできますが、既にドメインを取得済みでDNSimpleをDNSサーバとして使用する場合は、下図右側の「Use domain services」をクリックし、ドメイン名を入力してDNSサービスの利用を開始します。
<img width="502" alt="キャプチャ.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/105824/e50237c0-1cf1-ac1b-b276-1f0bc7b279d0.png">

次に、DNSレコードを追加します。DNSレコードの種類に「ALIAS」を選択し、
「Alias for」にFQDNを入力します。
<img width="526" alt="キャプチャ3.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/105824/7b61ecdd-1abe-0f9c-2c84-98b4c2d3e685.png">
（あ、TTLがデフォルト値のままでしたがテストの時は短めに…。）

###ドメインのネームサーバー変更
まずはDNSinple側で、設定するべきネームサーバーを確認を確認します。

<img width="365" alt="キャプチャ7.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/105824/95fb1b01-5cf0-19d2-7e4a-4edb4cdb5b32.png">

上記のネームサーバ名を お名前.com 等のドメイン管理側に設定します。
<img width="335" alt="キャプチャ8.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/105824/8a023084-3f4d-6d92-2f4d-ca71e40b76fd.png">
###ブラウザで確認
ブラウザで Zone Apex（ドメイン名）を指定してアクセスします。
ブラウザの更新行うとページが切り替わり、Zone Apexに対してILBで負荷分散できることが確認できました。
<img width="306" alt="キャプチャ12.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/105824/2c60cadc-7b21-b261-e974-9e58b8925908.png">　<img width="307" alt="キャプチャ11.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/105824/d7642bcf-ac84-66bc-09e9-6a4f4e26cd20.png">