1
0

More than 1 year has passed since last update.

AWS S3 で静的サイトを公開する(SSL化まで)

Last updated at Posted at 2022-03-10

使うサービス

  • S3
  • AWS Certificate Manager(以下ACM)
  • CloudFront
  • Route53
  • ドメインレジストラ(ドメイン管理会社のこと。今回はお名前.com)

静的なサイトならこれらだけでSSL化まで出来る

独自ドメインを取得し,Route53に設定

今回は私がお名前ドットコムで取得した"suamagaumai.com"というドメインを使う
手順通りで大丈夫なのでここの説明は省略

Route53に新規でホストゾーンを作成し,
NSレコードをお名前.comのネームサーバーに登録してあげる

スクリーンショット 2022-03-10 18.44.20.png

スクリーンショット 2022-03-10 18.44.12.png

S3でバケットを作成

※バケット名は,独自ドメインの名前にすること

下記の画像の通り設定し,バケットを作成

スクリーンショット 2022-03-10 18.47.37.png

スクリーンショット 2022-03-10 18.47.58.png
スクリーンショット 2022-03-10 18.56.05.png

スクリーンショット 2022-03-10 18.56.57.png

作成したバケットにアクセスし,"アクセス許可"タブからバケットポリシーを編集
下記のように設定する

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::{バケット名}/*"
            ]
        }
    ]
}

なので,私の場合は,下記の通り

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

その後用意したindex.htmlをアップロードする

スクリーンショット 2022-03-10 21.03.15.png

今回はこのようなHTMLファイルを用意しました

スクリーンショット 2022-03-10 21.03.15.png

設定が完了していれば,プロパティタブの最下部のここのURLで,アップロードしたHTMLファイルが見れるようになる

SSL証明書の取得

HTTPS化するため,SSLの証明書を取得する
ACMで、証明書をリクエスト
※必ず米国東部 (バージニア北部) us-east-1 で取得する

スクリーンショット 2022-03-10 20.19.12.png

パブリック証明書を作成→

スクリーンショット 2022-03-10 20.22.28.png

発行した証明書にアクセスすると保留中となっているので,これをRoute53で解決
CNAMEの値を,レコードに追加

スクリーンショット 2022-03-10 20.23.31.png

スクリーンショット 2022-03-10 20.26.34.png

しばらく(私の場合は5分くらい)すると"保留中の検証"から"発行済み"に変わる
これでSSL証明書は取得完了

CloudFrontの設定

CloudFrontにアクセスし,ディストリビューションを作成

スクリーンショット 2022-03-10 20.38.45.png
このオリジンドメインをクリックすると,サジェストでS3のバケットが出てくるが,これは選択せず,

スクリーンショット 2022-03-10 19.03.13.png
S3のここのエンドポイントを貼付!

HTTPにアクセスされた際,HTTPSにリダイレクトするよう下記の通り設定
スクリーンショット 2022-03-10 20.43.36.png

"代替ドメイン名"にドメイン名,
"カスタムSSL証明書"に先ほど取得したACMの証明書を設定

スクリーンショット 2022-03-10 20.45.38.png

その他の箇所はデフォルトの設定で。

Route53でCloudFrontのディストリビューションを設定

Route53に戻って,Aレコードを追加する

スクリーンショット 2022-03-10 20.57.06.png

ここでの注意は,値の箇所はエイリアスをオンにして,
CloudFrontディストリビューションを設定すること

スクリーンショット 2022-03-10 20.57.52.png

スクリーンショット 2022-03-10 21.00.24.png

ドメイン名でアクセスできるようになりました

Route53でのCloudFrontのディストリビューションの設定は反映までに結構時間かかります10分以上かかりました

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