3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【30日でAWSをマスターするハンズオン問題集】Day5: S3 の基本的な用途と静的サイトウェブホスティングを構築しよう

Last updated at Posted at 2025-11-30

概要

こちらの投稿は2025 Japan AWS Jr.Championsの有志メンバーで作成した『30日間で主要AWSサービスを構築できるようになる』をテーマにした初学者向けのハンズオン問題集のDAY3になります!
問題集の趣旨や作成に至るまでの経緯は以下の記事をご覧いただければと思います。
https://qiita.com/satosato_kozakana/items/446971c2deca7e27d0aa

項目 内容
所要時間 約1時間
メインサービス Amazon S3, Amazon CloudFront
学べること S3 の基礎知識, 静的ウェブサイトホスティングの構築方法
想定費用 0円(※格納するファイル容量、実行回数により課金が発生する可能性はあります)

参考:リソースの課金体系については以下を参照ください。

課題内容

  1. データの保管およびライフサイクル管理を行う。
  2. S3のみで静的ウェブサイトホスティングをしよう。
  3. https接続で静的ホスティングサイトホスティングをしよう。

アーキテクチャ図

13-s3-029

実装機能

  • Amazon S3 内の全てのオブジェクトが1日後に削除されるようにします。
  • Amazon S3 のみでHTMLで作成された静的ウェブサイトをブラウザで表示できます。
  • https接続でHTMLで作成された静的ウェブサイトをブラウザで表示できます。

💡 実装のヒント

S3 のライフサイクルポリシー

S3 は格納しているオブジェクトに対して、保管期間を設定することができます。
ストレージクラスの変更・オブジェクトの削除を実現するために適切なライフサイクルポリシーを設定してください。

静的ウェブサイトの実装方法

S3 内にHTMLファイルを配置し、静的ウェブサイトホスティングを有効化することで簡単に実装できます。https 接続の要件がある場合は Amazon S3 のみでは実装できないためAmazon CloudFront のディストリビューションの作成も必要となります。

完成後のチェックポイント

  • 1日後に S3 内に保管したオブジェクトがすべて削除されている。(削除や移行のタイミングは、
    協定世界時(UTC) で0時のため日本では午前9時になりますので確認する時間は注意してください。)
  • https://...../index.html で想定通りのホームページが表示される。

使用資材

HTMLファイル(オリジナルで作成も可)

 静的ウェブサイトホスティングに関する課題では、以下にあるHTMLファイルを利用してください。

HTMLファイル

🔗 リファレンスリンク

解答・構築手順(クリックで開く)

解答と構築手順を見る

ステップ1:S3 へのファイル格納

  1. AWS マネジメントコンソールを開く
  2. 「S3」→「汎用バケット」を選択
    13-s3-001
  3. 「バケットを作成」を選択
  4. 以下の設定値を選択し、「バケットを作成」をクリック
    • バケットタイプ:汎用
    • バケット名:handson-s3-xxxx(好きなバケット名を記載)
    • 既存のバケットから設定をコピー:選択なし
    • オブジェクト所有者:ACL無効
    • このバケットのブロックパブリックアクセス設定:パブリックアクセスをすべてブロックのチェックを外す
    • バケットのバージョニング:無効にする
    • タグ:設定なし
    • 暗号化タイプ: Amazon S3 マネージドキーを使用したサーバ側の暗号化( SSE-S3 )
    • バケットキー:有効にする
    • 詳細設定:デフォルトのまま
      13-s3-002
      13-s3-003
      13-s3-004
      13-s3-005
      13-s3-006
      13-s3-007
      13-s3-008
  5. 作成したバケットをクリックし、アップロードを選択
    13-s3-009
  6. 「ファイルを追加」をクリックし、格納したいファイルを選択
    13-s3-010
  7. 「管理」をクリックし、「ライフサイクル設定」より「ライフサイクルルールを作成する」をクリック
    13-s3-011
  8. 以下の設定値を選択し、ルールの作成をクリック
    • ライフサイクルルール名:1日後に削除(好きな名前を記載)
    • ルールスコープを選択:バケット内のすべてのオブジェクトに適用
    • オブジェクトタグ:設定なし
    • オブジェクトサイズ:設定なし
    • ライフサイクルルールのアクション:「オブジェクトの現行バージョンを有効切れにする」を選択
    • オブジェクト作成後の日数:1
      13-s3-012
      13-s3-013
      13-s3-014

ステップ2:Amazon S3 のみでの静的ウェブサイトホスティング

  1. ステップ1の1~6の方法で、index.htmlファイルを Amazon S3 にアップロードする
  2. 「アクセス許可」の「バケットポリシー」の編集をクリック
  3. 以下のバケットポリシーを貼り付けし、「変更の保存」をクリック
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::handson-s3-xxxx/*"
        }
    ]
}

13-s3-016
4. バケットのプロパティを選択し、「静的ウェブサイトホスティング」の「編集」をクリック
13-s3-017
5. 以下の設定値を選択し、「変更の保存」をクリック
- 静的ウェブサイトホスティング:有効にする
- ホスティングタイプ:静的ウェブサイトをホストする
- インデックスドキュメント:index.html
- エラードキュメント:設定なし
- リダイレクトルール:設定なし
13-s3-018
13-s3-019
6. 「プロパティ」の「静的ウェブサイトホスティング」のバケットウェブサイトエンドポイントに記載されているURLをクリック
13-s3-020
7. ホームページを閲覧できる
13-s3-021

ステップ3:httpsによる静的ウェブサイトホスティング

  1. 「Amazon CloudFront」→「 CloudFront ディストリビューションを作成」をクリック
  2. 以下の設定値を選択して、「 Next 」をクリック
    • Distribution name: handson-cloudfront-xxxx(好きな名前を記載)
    • Description:handson用 (記載は任意)
    • Distribution type: Single website or app
    • Domain:設定なし
    • Tags:設定なし
      13-s3-022
      13-s3-023
  3. 以下の設定値を選択して、「 Next 」をクリック
    • Origin Type: Amazon S3
    • s3 origin:ステップ2でindex.htmlを格納したバケット名を選択
    • Origin path:設定なし
    • オリジン設定: Use recommended orign settings
    • Cache settings:Use recommended cache settings tailored to servings S3 content
      13-s3-024
      13-s3-025
  4. 以下の設定値を選択して、「 Next 」をクリック
    -Web Application Firewall(WAF):セキュリティ保護を有効にしないでください
    13-s3-026
  5. 内容を確認し、「Create distrubution」をクリック
  6. 作成したディストリビューションの「ID」をクリック
  7. 「 https:://「ディストリビューションドメイン名」/index.html 」でブラウザで開く
    13-s3-027
    13-s3-028

片付け(リソース削除)

  • Amazon S3 を削除
  • Amazon CloudFront を削除

ステップ1 Amazon S3 を削除

  1. S3のページを開き、作成したバケットを選択し「空にする」をクリックしバケット内のファイルをすべて削除する。
    13-s3-030

注意:バケット内が空でないと Amazon S3 は削除できないので、バケット内のファイルを削除してからバケットを削除してください。

  1. 作成したバケットを選択し「削除」をクリックしバケットを完全に削除する。

ステップ2 Amazon CloudFront を削除

  1. CloudFront のページを開き作成したディストリビューションを選択して、「無効」をクリックする。
    13-s3-031
  2. 無効化が完了したら、ディストリビューションを選択して、「削除」をクリックする。

注意:最終更新日が「デプロイ」の状態だと削除できないため、日付が表示されるまで待つ必要があります。
13-s3-032
13-s3-033

本日のまとめ

この課題では Amazon S3 について、ファイルの保管や管理・静的ウェブサイトホスティングが身につきます。次回は応用編として Amazon Route53 を利用して独自ドメインの静的ウェブサイトにも挑戦してみましょう!

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?