GCPからAWSへの引越しメモ - Web ▲factory top


 

GCPでのhttps対応

以前の siteyamakatsu は、 コンテンツを Google Cloud Strage に置き、 https 対応には Google Load Balancer を使っていました。 このロードバランサ―は 大企業サイトに世界中からアクセスが殺到してもへっちゃらな強力なものですが、 ラインニングコストも高く siteyamakatsu には過剰スペックでした。

そこで、低コストな https 実現の方法を探し、 siteyamakatsu を Amazon Web Services に引っ越しました。 このページはその時のメモです。

 

AWSでのHosting 2023 May 22,29-31

  • ドメイン管理は引き続き Google Domains で行う
  • AWS にアカウントを作り、1年間の無料トライアルを開始 2023/04/25
AWS で https を実現するパターンはいくつもありますが、 コストを抑えることが目的なので、 CloudFront(+ACM証明書) → S3 が良いと考えました。 siteyamakatsu のコンテンツは S3 に置きます。

  • CloudFront はコンテンツ配信をする CDN(Contents Delivery Network)
  • CDN はオリジンサーバーとエッジ(キャッシュ)サーバーで構成される
  • オリジンサーバーとして EC2, S3, ELB などを使用できる

Google Load Balancer の解除 2023 Jun 1,3,6,8-10

Google Domains と Cloud DNS の関係
  • Google Domains サイトに詳細説明あり
  • Google Domains はデフォルトで GCP の Cloud DNS を使っている
  • Cloud DNS の NS, SOAレコード が Google Domain に設定されている
  • Cloud DNS に CNAME がないのは https ロードバランサ―がらみ
  • 今の IPアドレスはロードバランサから来ている
Load Balancer の構成と解除手順
  • GCP→ネットワークサービス→ロードバランシング
    • 名前 siteyamakatsu-lb これがロードバランサのビュー
    • ロードバランサ―にフロントエンド等が作られる
    • https証明書 siteyamakatsu-ssl-2
  • ロードバランシングのコンポーネント(のビュー)
    • 転送ルール siteyamakatsu-fe-http (front end)
    • ターゲット siteyamakatsu-lb-target-proxy
    • 転送ルール siteyamakatsu-fe-https
    • ターゲット siteyamakatsu-lb-target-proxy-2
    • バケット siteyamakatsu-bucket
  • GCP→ネットワークサービス→Cloud CDN
    • 静的コンテンツのキャッシュをしている
    • オリジン(バックエンド)siteyamakatsu-bucket
    • 関連付けられているロードバランサ siteyamakatsu-lb
  • 下位コンポーネントから削除していく
    • siteyamakatsu-fe-http
    • siteyamakatsu-lb-target-proxy
    • siteyamakatsu-fe-https
    • siteyamakatsu-lb-target-proxy-2
    • siteyamakatsu-ssl-2
    • siteyamakatsu-lb
    • siteyamakatsu-bucket

 

Amazon Cloud Front 2023 Jun 13-14

まず 開発者ガイド を読む。

ACM の理解 S3 上に siteyamakatsu.jp の構築と contents upload CloudFront の構築
  • これを開発者ガイドと併用して参考に
  • CloudFront コンソールから
    • ディストリビューションを作成(基本デフォルトで)
    • 代替ドメイン名には siteyamakatsu.jp に www.siteyamakatsu.jp を追加
    • http/https は Redirect HTTP to HTTPS を選択
  • キャッシュ時間の設定(デフォルトでは24時間キャッシュが保存される)
    • 「キャッシュの有効期限の管理」参照
    • キャッシュ時間を設定したいパスパターンのビヘイビア項を作成し 優先度に注意しながら追加する
    • or キャッシュ時間の短いビヘイビア項を1時的に*に適用して確認する
    • or オリジン項でヘッダー設定 ex)10秒間キャッシュ → Cache-Control: max-age=10
ACM をリクエスト
  • ハマった、、まだ DNS が Google なのでドメイン所有権が証明されない。
  • ここ を参考に ACM の以下の値を Google DNS と Cloud Domain に CNAME 設定する
      _29e6775b99177151b31816cdd694ab2c.siteyamakatsu.jp. CNAME _68e6f88f35853f6e179cc29a5bb2a2ef.ycvykntjsl.acm-validations.aws.
  • これでディストリビューションドメイン名が出来た → https://d37cw6qunvw27r.cloudfront.net
Route 53 を DNS として(のみ)設定

本来 Route 53 はドメイン登録レジストラ機能と DNS 機能を持つ。
  • デベロッパーガイド参照
      ここの 「DNS サービスとしての Amazon Route 53 の設定」参照
      移行は「Route 53 を非アクティブドメインの DNS サービスにする」も参照
      ホストゾーン siteyamakstu.jp をシンプルルーティングで作成し
      Google DNS の設定をコピー、NS, SOAレコードは乗り換えるので不要
  • ここではまだ IP 実体は Google にある
      Google Domains に4つの NS をコピー設定
      「ドメイン名を使用したトラフィックの Amazon CloudFront ....
      Google の Aレコードを削除しておく
      ウィザードでなくクイック作成で CloudFront 用の設定をする
  • ここでようやくAWS側を指すようになる
      siteyamakatsu.jp に IPv4 と IPv6 で CloudFront にレコードを作る
      www.siteyamakatsu.jp にも同様に2つの CloudFront へのレコードを作る

アクセス確認 2023 Jun 15

以下の全パターンで接続を確認。

(ブラウザのアドレスで)siteyamakatsu.jp
http://siteyamakatsu.jp
https://siteyamakatsu.jp

(ブラウザのアドレスで)siteyamakatsu.jp/index.htm
http://siteyamakatsu.jp/index.htm
https://siteyamakatsu.jp/index.htm

(ブラウザのアドレスで)www.siteyamakatsu.jp
http://www.siteyamakatsu.jp
https://www.siteyamakatsu.jp

(ブラウザのアドレスで)www.siteyamakatsu.jp/index.htm
http://www.siteyamakatsu.jp/index.htm
https://www.siteyamakatsu.jp/index.htm

以上全て Amazon S3 siteyamakatsu.jp bucket に接続された。

その後の Tips


ドメイン管理も Google Domains から移管 2024 Mar 1,4

2023年6月15日、Google で管理されている「ドメイン登録と関連する顧客アカウントが Google Domains から、米国企業 Squarespace へ譲渡されることになりました」という Google からの連絡を機に、 ドメイン管理も他に移管することにしました。

  • Google Cloud DNS, Amazon Route 53 等がドメイン名と実IPの情報を保持
    → これは既に Amazon Route 53 に変更済
  • ドメイン登録事業者が、ドメイン名の所有者等の情報管理をしている
    → これはまだ Google Domains で管理していた
  • 年間のドメイン管理費用比較
    Google Domains \4600(+税)
    譲渡先の Squarespace \8400?
    Amazon Route 53 $90(+税)
    その他 国内レジストラー \3000台から有り
    お名前.com \3124(税込)+調整金

最初は Amazon に移管しようと考えましたが料金が高いので、 値段の安さと長年の実績から お名前.com にドメイン管理を移管することにしました。
  • 送り側の作業 Whois 情報公開代行を解除、AuthCode(認証コード)取得
  • 受け側の作業 移管するドメイン入力、AuthCode 入力
  • 両者の移管申請、他に Whois公開代行しない、等の処理
  • 移管完了後 Google Cloud DNS の削除(以上1日で終了)
  • Amazon Route 53 の TXT レコード(ドメイン所有権の証明)を更新
    → と思ったがよく分からない、、
以下参考
  • お名前.com から他の登録業者へ移管する場合
  • DNS におけるリソースレコードについて 検索
    一部抜粋
    A IPv4 アドレス
    AAAA IPv6 アドレス
    NS ネームサーバー
    CNAME www CNAME example.com. など
    SOA Start of Authority ドメイン関連情報
    TXT ドメイン所有権の証明などにも使われる