LoginSignup
1
1

More than 1 year has passed since last update.

独自ドメイン名でS3にホスティングした静的ウェブサイトにアクセスする方法

Posted at

目的

この記事では、ムームードメインで独自ドメインを取得して、S3にホスティングした静的ウェブサイトにアクセスする方法を記載します。

想定読者

・S3に静的ウェブサイトをホスティングさせたい方
・表題の件について、Route53でどのように設定するかを確認したい方

手順

手順としては以下を想定しております。

  1. 独自ドメインの取得
  2. S3バケットの作成
  3. 静的ホスティングサイトの有効化
  4. ウェブサイトアクセスのアクセス許可の設定
  5. Route53の設定

1. 独自ドメインの取得

独自ドメインですが、ムームドメインで取得しました。
ドメイン名をこだわらなければ1円(1年間)で取得出来ました。
https://muumuu-domain.com/
image.png

2. S3バケットの作成

S3バケットですが、Terraformで作成しました。
TerraformのソースコードはGithub上にございます。
https://github.com/tireidev/handson/blob/main/src/aws/terraform/s3/s3_bucket/s3_bucket.tf

注意点

独自ドメイン名でS3にホスティングした静的ウェブサイトにアクセスする場合、バケット名は独自ドメイン名と同じにする必要がございます。
バケット名が独自ドメイン名と異なる場合、Route53でエイリアスレコード作成時にS3エンドポイントが選択出来ません。

3. 静的ホスティングサイトの有効化

Amazon S3よりバケットを押下します。
image.png
プロパティを押下します。
image.png
静的ウェブサイトホスティングより「編集」を押下します。
image.png
静的ウェブサイトホスティングを「有効にする」に変更します。
インデックスドキュメントはS3にアップロードしたオブジェクト名「index.html」を記載します。
「変更の保存」を選択します。
image.png
image.png

4. ウェブサイトアクセスのアクセス許可の設定

ブロックパブリックアクセス (バケット設定)、S3バケットポリシーを設定します。
この設定を行わないと以下のように静的ホスティングサイトを有効化してもアクセスが拒否されてしまいます。
例) 403エラー
image.png

ブロックパブリックアクセスをすべてブロックを「オフ」に設定します。
image.png

S3バケットポリシーにて、バケットへのアクセスを許可します。

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

出典:AWSユーザーガイド.「ウェブサイトアクセスのアクセス許可の設定」. https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/WebsiteAccessPermissionsReqd.html ,(参照2022-06-12)

ここまで行うと、バケットウェブサイトエンドポイントよりS3にホスティングした静的ウェブサイトへのアクセスが可能となります。
image.png

5. Route53の設定

ダッシュボードを押下します。
image.png

「ホストゾーンの作成」を押下します。
image.png

ドメイン名を入力して、「ホストゾーンの作成」を押下します。
image.png

NSレコードとSOAレコードが作成されます。
「レコードを作成」を押下してAレコードを作成します。
image.png

レコードタイプは「A-IPv4アドレスと一部のAWSリソースにトラフィックをルーティングします。」を選択します。
トラフィックのルーティング先にて、「エイリアス」を選択します。
次に、「S3ウェブサイトエンドポイントへのエイリアス」を選択し、リージョン、S3エンドポイントを選択します。
S3エンドポイントは、S3バケット名を独自ドメインと同じにすることで選択可能となります。
ルーティングポリシーは「シンプルルーティング」を選択します。
「レコードを作成」を押下します。
image.png

Aレコードが作成されることを確認します。
NSレコードの4つのネームサーバのアドレスをムームードメイン側にも登録するためコピーします。
image.png

■ムームドメイン側の設定
image.png

image.png

注意点

ムームードメインでネームサーバ1~4を登録する際に、末尾に「.」を入れないこと。
入れてしまうとエラーが表示されネームサーバの登録に失敗します。

しばらく経過すると、独自ドメインで静的ウェブサイトにアクセスすることが可能となります。
※10分くらいでは表示されました。
image.png

1
1
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
1
1