AWS S3の静的WebサイトをRoute53で独自ドメインURLとして公開する

AWS

こんにちはますのです。
S3バケットに登録した静的Webサイトを独自ドメインで公開する研修があったのでメモレベルで書いていきます。

今回独自ドメインは取得してRoute53に登録済の状態で開始します。登録手順については別記事参照にて。

【AWS】Route53にムームードメインで取得したドメインを登録する

また、S3を独自ドメインでhttps通信で公開する場合は「CloudFront」を利用する必要があります。
https通信としたい方は別記事で紹介しているのでそちらを参照ください。

CloudFront + S3 + Route53で独自ドメインをSSL通信(https)設定をする

コチラの手順はhttp通信でS3バケットを公開する方法となるのであしからず。

Route53にレコードを作成する

AWS管理コンソール>Route53>ホストゾーン>(対象のドメイン)>「レコードを作成」をクリック

ルーティングポリシー:シンプルルーティングを選択>「次へ」をクリック

(今回は特に負荷を考えたりしなくて良いので単純に繋がれば良いのです)

「シンプルなレコードを定義」をクリック

レコード定義を入力>「シンプルなレコードを定義」をクリック
・レコード名:(アクセスしたいURL名)
・値/トラフィックのルーティング先
 →S3ウェbサイトエンドポイントへのエイリアス
 →アジアパシフィック(東京)[ap-northeast-1]
 →s3-website-ap-northeast-1.amazonaws.com

(リージョンやS3の静的アドレスのリージョン名は環境に合わせて設定する)

最後に「レコードを作成」をクリックして登録完了となります。

S3を公開設定する

続いてS3の設定を行います。
S3のアクセス権設定をしないとRoute53でアクセスしてもS3自体がアクセスを拒否してしまいますからね。

前提:Route53で先ほど設定したレコード名とS3のバケット名は一致している必要があります
AWS管理コンソール>S3>(Route53で設定したレコード名のバケット)をクリック>プロパティをクリック>「静的ウェブサイトホスティング:編集する」をクリック
以下設定後に「変更の保存」をクリック(今回は動作確認のため細かい設定は省きます)
・静的ウェブサイトホスティング:有効にする
・インデックスドキュメント:index.html(S3に保存しているtopページのファイル)
・エラードキュメント:error.html(入力しないと保存不可なのです、データ無くても何かしら入力すれば404エラーが表示されます)
続いてバケットポリシーを設定します。
全ユーザに対して読み取り権限を許可するように「GetObject」権限を設定します。
「タブ:アクセス許可」>「バケットポリシー:編集する」をクリック
jsonコードを貼り付けて「変更の保存」をクリック

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::(バケット名)/*"
            ]
        }
    ]
}
以上の設定でS3のデータに対して「http通信」でアクセスすることが出来ます。
「http://(Route53で設定したURL)」
S3のプロパティ画面が変わっていたので、頻繁に更新される可能性があるのでご容赦くださいませ。
コチラの記事の画面レイアウトは2020/11月時点のものとなります。初期に作られた記事から更新されていない手順が多かったのでせっかくなので自分用として作ったのでした。

 

最新情報をチェックしよう!