しゅがーブログ

技術ネタとか書いていけたらな…

他ドメインから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