AWS2-5 まとめと発展内容紹介

🌐 まとめと発展内容紹介

― Route 53 での独自ドメイン設定/S3+CloudFront構成例 ―


🎯 学習目的

  • AWS Route 53 を利用して 独自ドメインを取得/設定 できるようになる
  • WordPress サイトを HTTPS+独自ドメインで運用できるようにする
  • S3+CloudFront の構成を理解し、静的コンテンツ高速配信の仕組みを把握する

第1部 Route 53での独自ドメイン設定


🧭 Route 53とは?

項目内容
サービス名AWS Route 53
役割DNS(ドメイン名管理・ルーティング)サービス
主な機能ドメイン登録/ゾーン管理/トラフィックルーティング
メリットAWSサービス(EC2/S3/CloudFront)との連携が簡単・高速

🧪 実習①:独自ドメインの登録または移管

方法1:新規取得(AWS Route53上で購入)

  1. AWSコンソール → Route 53
  2. 左メニュー → 「ドメインの登録
  3. 希望ドメインを検索(例:mycompany.jp
  4. 購入・支払い完了(※登録完了まで数分~数時間)

方法2:既存ドメイン(お名前.comなど)をRoute53に移管

  • 現在のレジストラで Auth Code(認証コード) を取得
  • Route 53 → 「ドメインの移管」 → 指示に従って設定

🧩 Hosted Zone(ホストゾーン)の作成

ドメインを管理するための“DNSレコード置き場”を作成します。

実習手順

  1. AWSコンソール → Route 53
  2. 左メニュー → 「ホストゾーン」 → 「ホストゾーンを作成」
  3. ドメイン名:example.com
  4. タイプ:パブリックホストゾーン
  5. 作成完了後、下記4つの NSレコード(ネームサーバ) が自動生成される ns-123.awsdns-45.com ns-678.awsdns-12.net ns-789.awsdns-34.org ns-890.awsdns-56.co.uk
  6. この4つのネームサーバを、ドメイン管理元(お名前.comなど)で登録変更する

🕒 ネームサーバ変更反映まで最大48時間(通常1〜3時間)


🧪 実習②:EC2へのAレコード設定

レコードタイプ内容
Aレコードドメイン名 → EC2のIPアドレス
CNAMEサブドメイン → 別名(CloudFront/S3など)

手順

  1. 作成したホストゾーンを開く
  2. 「レコードを作成」クリック
  3. 下記のように入力:
項目設定例
名前(空白またはwww
レコードタイプA – IPv4アドレス
EC2のElastic IP(例:13.114.xxx.xxx
TTL300(秒)
ルーティングポリシーシンプル
  1. 保存
  2. ブラウザで http://example.com を開く
     → WordPressサイトが表示されればOK

🧩 実習③:HTTPSリダイレクト確認

Let’s Encrypt(前章で導入)済みなら、
https://example.com でもアクセス可。
HTTPからHTTPSに自動転送されているか確認。


⚙️ よくあるDNSトラブル

症状原因対処
ドメインが開かないネームサーバ変更が未反映時間を置く/NS設定再確認
IP入力で開くがドメインで開かないAレコード未設定/Elastic IP変更Route53 Aレコード修正
HTTPSで警告証明書ドメイン不一致certbotで -d example.com -d www.example.com 再発行

第2部 S3+CloudFront構成例紹介


🌍 S3+CloudFrontとは

コンポーネント役割
S3 (Simple Storage Service)静的コンテンツ(画像、CSS、JS、HTMLなど)を保管するストレージ
CloudFrontCDN(コンテンツ配信ネットワーク)。世界中にキャッシュを分散配信
目的WordPressなどの負荷軽減・高速表示・セキュリティ強化

🧩 構成イメージ

ユーザー
   │
   ▼
CloudFront(CDN)───> キャッシュされた画像/CSS/JSを配信
   │
   ▼
S3(静的ファイル保存)  
   │
   ▼
EC2(WordPress本体:PHP/DB処理のみ)

🧪 実習④:S3バケットの作成と公開設定

1️⃣ S3バケット作成

  1. AWSコンソール → S3
  2. 「バケットを作成」
    • 名前:example-static-files
    • リージョン:EC2と同じ(例:ap-northeast-1)
    • 「すべてのパブリックアクセスをブロック」を オフ
    • 確認チェックを入れて作成

2️⃣ ファイルアップロード

例)ロゴ画像、CSSファイルなどをアップロード
/wp-content/uploads/
/wp-content/themes/yourtheme/assets/

3️⃣ バケットポリシー設定(静的サイト公開)

「アクセス許可」タブ → 「バケットポリシー」クリック
以下を貼り付け、BUCKET_NAME を置換:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PublicReadGetObject",
      "Effect": "Allow",
      "Principal": "*",
      "Action": ["s3:GetObject"],
      "Resource": ["arn:aws:s3:::example-static-files/*"]
    }
  ]
}

保存。

4️⃣ 静的サイトホスティング有効化

  1. 「プロパティ」タブ → 下部「静的ウェブサイトホスティング」
  2. 「有効化」 → インデックスドキュメントに index.html
  3. 表示される エンドポイントURL(例:
    http://example-static-files.s3-website-ap-northeast-1.amazonaws.com
    にアクセスし、表示確認。

🧪 実習⑤:CloudFrontディストリビューション作成

1️⃣ CloudFrontコンソール → 「ディストリビューション作成」

設定項目内容
オリジンドメイン名example-static-files.s3.amazonaws.com
オリジンアクセス制御 (OAC)有効化(S3への署名付きアクセス推奨)
ビヘイビアキャッシュポリシー「CachingOptimized」
HTTPS通信有効(デフォルト)
カスタムドメインstatic.example.com(Route53でCNAME登録予定)
SSL証明書ACMで発行済みの証明書(例:*.example.com)を選択
価格クラス「Price Class 200(アジア・北米・欧州)」推奨

2️⃣ デプロイ完了確認

  • ステータス「Enabled
  • ドメイン名例:d1a2b3c4d5.cloudfront.net

3️⃣ Route 53 に CNAME レコード追加

名前タイプ
static.example.comCNAMEd1a2b3c4d5.cloudfront.net

🧱 WordPressとの連携例(発展)

方法①:プラグイン(例:WP Offload Media)

  • メディアアップロード先をS3に変更
  • CloudFront経由で配信(URL自動置換)

方法②:CDN URL 直指定

wp-config.php に追加:

define('WP_CONTENT_URL', 'https://static.example.com/wp-content');

⚡ CloudFrontのメリット

効果内容
表示速度向上世界各地にキャッシュ(遅延低減)
セキュリティDDoS対策・署名付きURL
負荷分散EC2のリクエストを軽減
コスト転送料金削減(キャッシュヒット率高)

🧰 運用時のベストプラクティス

項目推奨設定
キャッシュ更新ファイル更新時にCloudFrontのInvalidationを実施
CloudFrontログS3へ配信ログ保存
HTTPS統合ACMで*.example.com証明書を発行・適用
バージョン管理/v1/style.css/v2/style.css のようにバージョンを明示

✅ チェックリスト

確認項目完了
Route 53 でホストゾーンを作成
AレコードをElastic IPに設定
独自ドメインでEC2サイト表示確認
S3バケットを作成し静的ホスティング有効化
CloudFrontディストリビューション作成
CNAMEレコードでCloudFrontと連携
HTTPSアクセス(https://static.example.com)確認

📚 まとめ

学びのポイント内容
Route 53AWS内でDNS設定が完結。独自ドメイン運用が容易
S3静的コンテンツの保存・配信に最適
CloudFrontCDNとして世界中に高速配信。WordPress負荷軽減
ACM無料のSSL証明書を発行しHTTPS運用を実現

💬 発展課題

  • CloudFront+WAF(Web Application Firewall)による防御
  • CloudFront Functions/Lambda@Edge での動的ヘッダ制御
  • S3+CloudFront+Route53 の3層構成で 完全サーバレス静的サイト 構築