Scribble at 2021-09-03 21:58:22 Last modified: 2021-09-09 11:59:57

添付画像

AWS でウェブサイトを運用するという与件が増えてきたため、手始めに「ソリューション・アーキテクト(アソシエイト)」という AWS の入門レベルに該当する資格のテキストを一読して概略を掴み、会社のアカウントで1ヶ月ほど好き勝手に(最初の12ヶ月は無料枠もあるので)インスタンスを組んだりして使っていた。もちろん、以前の記事で書いたように Lightsail でワンストップに組めば楽だったのだが、その後にあれやこれやと与件が追加されて、恐らくサイトの公開時には、アクセスの大半はスマートフォンから来る想定ではあるものの、1日で数十万のアクセスが予定されるため、Lightsail 版の CloudFront では無理(というかアマゾンに怒られる規模のアクセス)だと判断して、上記のようなデプロイメントに変更した。さきほど全ての設定が終わって、ヘッダの "x-cache: Hit from cloudfront" も確認して作業を終えたところだ。それに、アクセスの合計だけならともかく、LINE やメルマガなどで一斉にユーザへイベントの URL を配信するのだから、短時間に大量のリクエストを処理する必要もある。これは本式の CloudFront を使ったほうがいいだろう。

上記のうち、ロード・バランサからオリジン側の Lightsail 内部については、ロード・バランサに紐付けていた SSL 証明書を破棄すること(というかロード・バランサごと削除して、ロード・バランサだけ組み直した)と、Lightsail 内部での DNS ゾーンを破棄したことだけで、後は何も手を付けていない。ここからの手順は、(1) Route53 にホストを設定、(2) ドメインはムームードメインで取得しているため、ムームードメインでネームサーバを Lightsail の NS ホスト名から Route53 の NS ホスト名へ変更、(3) Amazon Certificate Manager で SSL 証明書を申請、DNS 認証に必要な CNAME レコードを Route53 に追加(Zone Apex とワイルドカードの両方で証明書をとる)、 (4) CloudFront でオリジンを Lightsail のロード・バランサがもつパブリックなドメイン名として設定し、SSL 証明書の指定、それから alternate domains に Zone Apex とワイルドカードのドメインを指定して、ディストリビューションを作成する、(5) 最後に Route53 へ戻って Zone Apex と幾つかのサブドメインについて Alias もしくは CNAME を CloudFront に対して設定して終わり。Route53 に行ったり来たりするので、やや面倒だ。それから、CloudFront のディストリビューションと SSL 証明書の紐付けでは、両者を必ず北部バージニア・リージョン(us-east-1)で作成しないといけないという注意点がある。それ以外は東京か大阪リージョンで大丈夫だろう(ただし大阪リージョンの Lightsail は CloudFront をサポートしてなかったはずなので、東京リージョンが無難だと思う)。

以上で、なんだかんだして30分くらいはかかる。CloudFront は全てのリージョンに反映させるまでの時間がかかるため、設定が完了しても安定してアクセスできるまで1時間くらいは見たほうがよいのだろう(もちろん「DNSの浸透」というインチキ話とは関係ない)。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook