LoginSignup
0
0

【Route 53】S3バケットの静的なウェブサイトにドメインを使用してみた

Last updated at Posted at 2024-06-16

背景・目的

以前、Amazon Route53 でドメインを登録してみたでは、ドメインを登録しましたが
今回は、S3バケットの静的ウェブサイトにドメインを使用してみます。

実践

Amazon S3 バケットの静的なウェブサイトにドメインを使用するを基に試します。

ステップ 1: ドメインを作成する

Amazon Route53 でドメインを登録してみたで作成したドメインを使用します。

ステップ 2: ルートドメイン用の S3 バケットを作成する

  1. S3に移動します
  2. バケットを作成します

ステップ 3 (オプション): サブドメイン用に別の S3 バケットを作成する

サブドメイン用にステップ2と同じ手順で、S3バケットを作成します。

ステップ 4: ウェブサイトホスティング用にルートドメインのバケットを設定する

  1. ステップ2で作成したバケットを選択します
  2. 「プロパティ」タブをクリックします
  3. 静的ウェブサイトホスティングで「編集」をクリックします
  4. 静的ウェブサイトホスティングを「有効にする」を選択します
  5. 下記を入力し、「変更の保存」をクリックします
    • ホスティングタイプ:「静的ウェブサイトをホストする」
    • インデックスドキュメント:index.htmlとしました
    • エラードキュメント:error.htmlとしました
      image.png
  6. エンドポイントをメモしておきます。(あとで使用します)

ステップ 5 (オプション): ウェブサイトのリダイレクト用にサブドメインバケットを設定する

ステップ 3 (オプション): サブドメイン用に別の S3 バケットを作成するで作成したバケットに対して設定します。

  1. ステップ3で作成したバケットを選択します
  2. 「プロパティ」タブをクリックします
  3. 静的ウェブサイトホスティングで「編集」をクリックします
  4. 静的ウェブサイトホスティングを「有効にする」を選択します
  5. ホスティングタイプを「オブジェクトのリクエストをリダイレクトする」を選択します
  6. 下記を入力し、「変更の保存」をクリックします
    • ホスト名:ステップ2で作成したバケットに遷移するドメイン
    • プロトコル:http

ステップ 6: インデックスをアップロードしウェブサイトのコンテンツを作成する

  1. 下記のHTMLコードをindex.htmlとしアップロードします
    <html>
    <head>
    <title>Amazon Route 53 Getting Started</title>	
    </head>
    
    <body>
    
    <h1>Routing Internet Traffic to an Amazon S3 Bucket for Your Website</h1>
    
    <p>For more information, see 
    <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html">Getting Started with Amazon Route 53</a> 
    in the <emphasis>Amazon Route 53 Developer Guide</emphasis>.</p>
    
    </body>
    
    </html>
    
  2. errorページも作成しアップロードします
    image.png

ステップ 7: S3 のパブリックアクセスのブロック設定を編集する

パブリックアクセスのブロック設定を外します。これによりインターネットの誰でもバケットにアクセスできますので、
ご自身の責任で実施してください。

  1. S3に移動します
  2. ステップ2で作成したバケットを選択します
  3. 「アクセス許可」タブをクリックします
  4. ブロックパブリックアクセス (バケット設定)で「編集」をクリックします
  5. パブリックアクセスをすべて ブロックをオフにし「変更の保存」をクリックします
  6. ポップアップが表示されるので、「確認」をクリックします
    image.png

ステップ 8: バケットポリシーをアタッチする

  1. 「アクセス許可」タブをクリックします
  2. バケットポリシーの「編集」をクリックします
  3. 下記のバケットポリシーを貼り付けます。※your-domain-nameは適宜変更してください
    {
       "Version":"2012-10-17",
       "Statement":[{
          "Sid":"AddPerm",
          "Effect":"Allow",
          "Principal":"*",
          "Action":[
             "s3:GetObject"
          ],
          "Resource":[
             "arn:aws:s3:::your-domain-name/*"
          ]
        }]
    }
    

ステップ 9: ドメインエンドポイントをテストする

  1. エンドポイントをテストします
  2. 表示されました
    image.png

ステップ 10: ドメインの DNS トラフィックをウェブサイトバケットにルーティングする

  1. Route 53に移動します
  2. ナビゲーションペインで「ホストゾーン」をクリックします
  3. ドメインをクリックします
  4. レコードを作成をクリックします
  5. ウィザードに切り替えるをクリックします
  6. シンプルルーティングを選択し、「次へ」をクリックします
    image.png
  7. 「シンプルなレコードを定義」をクリックします
  8. ポップアップが表示されるので、下記を入力し、「シンプルなレコードを定義」をクリックします
    • レコード名:入力しない
    • レコードタイプ:A-IPv4アドレスと一部のリソースにトラフィックをルーティングします
    • 値/トラフィックのルーティング:
      • S3ウェブサイトエンドポイントへのエイリアス
      • リージョン:作成したリージョン
      • バケット名:作成したバケット名を選択します。※ リストに表示されないときは、S3ウェブサイトエンドポイントを指定する
      • ターゲットのヘルスを評価:オフ
        image.png
  9. レコードを作成をクリックします

(オプション)サブドメインのエイリアスレコードを作成する

  1. レコードを作成をクリックします
  2. シンプルルーティングを選択し、「次へ」をクリックします
  3. 「シンプルなレコードを定義」をクリックします
  4. 作成したバケット名を設定し、レコードを作成をクリックします

ステップ 11: ウェブサイトをテストする

通常

ウェブサイトが正常に動作しているか確認します

  1. 作成したレコード名でアクセスします。表示されました
    image.png

  2. エラーも表示されます
    image.png

リダイレクト

  1. 作成したレコード名でアクセスします。リダイレクトされました
  2. エラーページを指定してもリダイレクトされます

考察

今回、S3バケットの静的なウェブサイトにドメインを使用しました。S3バケットをWebホスティングとして、それほど使用したことがなかったので、最初はイメージが持てませんでしたが、最終的には理解できたと思います。
次回は、CloudFrontで試してみようと思います。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0