他ドメインからELBへのルーティング方法
概要
他のサービスでドメインを管理されていたけれど、AWSと併用して使うことになりその移行を実施したのでまとめました。
ELBとWEBサーバ間はひとまずHTTPで通信させるもとのとする。
ドメイン例
移行前:www.hogehoge.com
移行後:www.tk-sugar.com
やったこと
- CNAMEの設定
- 証明証の差し替え
- nginx.confの書き換え
CNAMEの設定
元々使用していたドメイン管理サービスでDNSレコードの追加を実施。
www.hogehoge.com
に対してレコードを設定する。
レコードの登録が完了しwww.hogehoge.com
へアクセスするとwww.tk-sugar.com
へルーティングされるようになる。
イメージはこんな感じ
ホスト名 | 種別 | 内容 |
---|---|---|
www.hogehoge.com | CNAME | www.tk-sugar.com |
証明証の入れ替え
元々リバースプロキシに設定されてあった証明書をCertificate Managerから登録。
本来は新規にELBを立てたり、Route53を設定しなければならないが、今回は既存で存在していたものを流用する形で設定する。
(実際は少し設定変えたりしましたが、今回は割愛)
また、中間証明書が設定されていた場合は証明書チェーン
を設定してやらないとうまくインポートできません。
証明証の登録完了後、該当するELBの443ポートに対して証明書を割り当てます。
※ ELBから振り分けさせたサーバをターゲットさせておくことも忘れずに
あとはhttps通信でアクセスできるか確認しましょう。
nginx.confの書き換え
メンテナンスページの出力用設定
maintainance.htm
が存在するなら503
を返してメンテナンスページを表示するだけの簡単な仕組みです。
それ以外なら自分で設定したページが出力されます。
メンテナスページとの切り替えは
mv maintainance.htm maintainance.html
などで簡単に実施できます。
server { listen 80; 省略 error_page 500 501 502 503 504 /var/www/html/error/maintainance.htm; set $maintenance false; if ( -f /var/www/html/error/maintainance.htm) { set $maintenance true; } location / { if ($maintenance = true) { return 503; } proxy_pass http://localhost/; proxy_redirect default; }
参考URL
【初心者向け】ELBにSSL証明書をインストールする | Developers.IO
SSL Termination(ELB)でアプリ(EC2)がHTTPSのチェックを行えない場合 | cloudpack.media
Nginxでメンテナンスページに編集なしで即時切り替える方法 - Qiita