Multi-AZ構成でWebサーバーを起動する
Multi-AZ構成でWebサーバーを起動する
前回までで、ELBと2台のEC2インスタンスを使ったMulti-AZ構成を作成しましたので、EC2インスタンスでWebサーバーを起動させます。
EC2のセキュリティグループでHTTP通信を許可する
EC2ダッシュボードにて、app1のセキュリティグループのインバウンドルールにHTTPを追加しておきます。app2も同様に設定しておきます。
この設定を行う目的は、ELB→EC2方向の通信でHTTP通信を許可するためです。この設定を行わないと、ELBからapp1/app2へHTTPトラフィックも流れませんし、ポート80番を使ったヘルスチェックもできません。
ELBのヘルスチェックの様子を確認する
EC2ダッシュボードより、ターゲットグループを選択します。
作成したターゲットグループ"test-tgt"を確認すると、ステータスが"unhealthy"となっており、説明の欄が"Health checks failed"となっています。
ELBが行うターゲットグループ配下のEC2インスタンスに対する死活監視がNGとなっています。
ヘルスチェックに使用しているポートは80番ですし、先程EC2インスタンスのセキュリティグループでインバウンド通信を許可しているのにも関わらずNGとなっています。
この事象が起きている理由は、EC2インスタンスでWebサーバーが起動していないからです。
Webサーバー(Nginx)を起動する
Webサーバーを起動するために、EC2インスタンスにログインする必要する必要があります。
ここで、AWS Session Managerを使うことを考えたのですが、色々調べてみるとパブリックサブネットに置かれたEC2にしかログインできないようですね。。
前回同様、一時的にElastic IPを付与する(一時的にPrivate Subnetでなくなる)方法で実施してみます。作業後にはElastic IPは関連付けを解除・開放しておきましょう。
2つのEC2インスタンスにElastic IPを割り当て、SSHログインを行います。
具体的なSSH接続の手順は過去記事を参照してください。
2つのEC2インスタンスにそれぞれログインし、Nginxをスタートさせます。
EC2ダッシュボードに戻り、ターゲットグループ"test-tgt"のヘルスチェックの様子を確認すると、2つのEC2インスタンスのステータスが"healthy"となっていることが分かります。
Webコンテンツが表示されることを確認する
ブラウザのアドレス欄に、以下のように入力します。
http://(ELBのDNS名)/index.html
無事にコンテンツが表示されました。
Amazon Web Services エンタープライズ基盤設計の基本
- 作者: 堀内康弘,三浦美緒
- 出版社/メーカー: 日経BP
- 発売日: 2018/10/04
- メディア: 単行本
- この商品を含むブログを見る