バリュードメインで取得したドメインをAWSのRoute53に登録しそのドメインにアクセスしたときにElastic Load Balancerを経由してEC2にアクセスする構成を組んでみました。最初どうやっても設定がうまくいかずに困っていましたが結果的に解決できたので、重要そうなポイントを紹介したいと思います。
Contents
バリュードメイン側にRoute53のネームサーバを登録する
まずRoute53にて使用したいドメインを登録します。するとAWSのネームサーバが表示されるのでメモっておきます。こういうやつです。
その後バリュードメインにて上記をネームサーバに登録すればOKです。こちらの画面でデフォルトで登録されているバリュードメインのネームサーバを置き換えれば問題ないです。
EC2インスタンスを作成する
今回はWebサーバとして作成します。セキュリティ設定でhttpとhttpsのアクセスを許可します。このサーバのIPアドレスをRoute53のAレコードに登録し、先ほど登録したドメインにアクセスしたときにこのサーバのドキュメントルートが表示されればRoute53の設定は問題ないという感じになります。
ELBを作成する
ALBやCLBなどありますが基本的には新しいALBを使っておけばOKです。この時使用するドメインの証明書をALBに登録できるのでインストールしておきましょう。バランサに証明書を適用しておくと各Webサーバでの証明書更新の手間が省けてとても便利です。
ELBにアクセスがあった場合の転送先は先ほど作成したEC2に設定しておきます。こうすることでいい感じにバランシング可能です。複数のEC2インスタンスを使うときはもちろんのこと、インスタンスが1つだけの場合でもELBを噛ませておくと色々便利なので設定しておくとよいでしょう。
ELBのホスト名をRoute53のAレコードのエイリアスに登録する
使用するドメインにアクセスがあったときRoute53経由でバランサに流すために、AレコードのエイリアスにELBのホスト名を登録します。こうすることでELBが良い感じにアクセスを振り分けてくれるようになります。
ドメインにアクセスできないときは
私はここの手順で大いにハマりました。Route53のAレコードにEC2のIPアドレスを登録してちゃんとページが表示されているのにも関わらず、ELBのホストを登録したときにページが表示されないのであればELBの設定を疑いましょう。問題を切り分けないとハマります。
私の場合はELBからEC2へのヘルスチェックは通っていたので、Route53からELBへのセキュリティ設定が間違っていると判断し見直したところ外部からhttpとhttpsのアクセスが許可されていないことがわかりました。AWSではセキュリティールールが設定できますが、それを正しいように修正したところ無事接続できるようになりました。
全体の構成はこんな感じに
AWSは基本的な知識がないと結構詰みますね。今回Webサーバを立ててみてよくみんなAWS使いこなしているなと感心した次第です笑