0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

簡単AWS S3を活用した静的ウェブサイトのホスティングとHTTPS対応の完全ガイド

Posted at

概要

AWS S3を使った静的ウェブサイトホスティングは、簡単かつ低コストで実現可能なウェブサイト構築手法です。本記事では、CloudFrontやRoute 53を組み合わせてHTTPS化および独自ドメイン設定を行う具体的な手順を徹底解説します。また、運用上の注意点やトラブルシューティング方法も網羅しています。

1.AWS S3静的ウェブサイトホスティングとは

AWS S3の静的ウェブサイトホスティング機能は、HTML、CSS、JavaScriptなどの静的ファイルを配信するためのコスト効率に優れたソリューションです。

利用する理由:

  • 簡単な設定でグローバル配信が可能
  • サーバーレスで運用:サーバー管理不要
  • 自動スケーリングに対応し、アクセス量に応じて適切なパフォーマンスを提供

2. 手順詳細

Step 1: S3バケットの作成

  1. AWSコンソールでS3サービスにアクセス
  2. 「バケットの作成」をクリック
    名前:example-website(一意の名前)
    地域:任意
  3. 「パブリックアクセスをすべてブロック」のチェックを外す

バケットポリシー設定例:

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

4.「静的ウェブサイトホスティング」を有効にし、以下を入力:
インデックス文書:index.html
エラードキュメント:error.html

Step 2: CloudFrontの設定(HTTPS対応)

  1. CloudFrontディストリビューションの作成
    1.1 オリジン:
    1.1.1 オリジンタイプ:S3バケット
    1.1.2 「オリジンパス」:空白のまま
    1.2 キャッシュ動作:
    1.2.1 GET と HEAD メソッドを有効にする。
    1.2.2 キャッシュポリシー:「CachingOptimized」を選択。
  2. SSL/TLS設定
    デフォルト証明書を使用する場合:「CloudFrontが提供する証明書」を選択。
    独自ドメインを使う場合:「ACMで証明書を発行」を選択。
  3. ディストリビューションの作成

Step 3: Route 53で独自ドメインを設定

  1. ドメインを購入するか、既存のドメインを使用
  2. ホストゾーンでAレコードを追加
    レコード名:wwwまたは@
    タイプ:A - IPv4アドレス
    エイリアスターゲット:CloudFrontディストリビューションを指定

Step 4: HTMLファイルのアップロード

S3 CLIを使用してHTMLファイルをアップロード:

aws s3 cp ./index.html s3://example-website --acl public-read

静的サイトのアクセス確認:

http://example-website.s3-website-<リージョン>.amazonaws.com

CloudFrontのURLをHTTPSで確認:

https://<CloudFrontのドメイン名>

3. 注意点

  1. パブリック設定
    S3バケットはプライバシーやセキュリティリスクを考慮し、意図的に公開しない限り安全なままにしておく。
    デフォルトのパブリックブロックは慎重に外す。

  2. CloudFrontキャッシュの削除 ファイルを更新後、以下のコマンドでキャッシュをクリア:

aws cloudfront create-invalidation --distribution-id <ディストリビューションID> --paths "/*"
  1. HTTPS対応 SSL証明書をACMで発行し、CloudFrontに適用

4. トラブルシューティング

  1. 403 Forbidden
    原因:S3バケットポリシーが適切でない。
    解決:s3:GetObjectの権限を確認。
  2. ドメインが解決しない
    原因:Route 53の設定が未完了、またはDNS伝播が遅延。
    解決:設定を再確認し、最大72時間待機。

最後

AWS S3の静的ホスティングは、設定が簡単で非常に実用的です。特にCloudFrontやRoute 53と連携することで、セキュアでスケーラブルなWebサイトを構築可能です。本記事を参考にして、ぜひAWSの力を活用してください!

初心者ですので、誤りがございましたら、ご指摘をお願いいたします。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?