ハンズオン資料

「構築しただけでは終わらせない。学びを言葉にして、"自分の技術"にする。」

View on GitHub

🚀 Day 1: Amazon S3 を使用して静的ウェブサイトをホスティングする

🎯 このハンズオンで学ぶこと

🏗️ 構築するシステム

動作: 匿名の挑戦宣言ページを世界に公開し、仲間と共有

📋 前提条件


🚀 Step 1: バケット作成

  1. S3コンソールにアクセス
  2. 「バケットを作成」をクリック

※ 特に指示がないところは、デフォルト値のまま進めてください。

バケット設定

パブリックアクセス設定

「バケットを作成」をクリック

🚀 Step 2: 静的ウェブサイトホスティング有効化

  1. 「プロパティ」タブを選択

  2. 一番下の「静的ウェブサイトホスティング」→「編集」

ホスティング設定

「変更を保存」をクリック

🚀 Step 3: バケットポリシー設定

  1. サンプルのbucket-policy.json の内容をコピー(下図参照)

  2. 「アクセス許可」タブを選択
  3. 「バケットポリシー」→「編集」
  4. 1でコピーした内容を、バケットポリシーの編集画面に貼り付け
  5. YOUR-BUCKET-NAMEを実際のバケット名に変更

    例: "Resource": "arn:aws:s3:::awesome-cloud-challenge-123/*"

    ⚠️ 重要: バケット名の変更を必ず行ってください。

    ⚠️ 重要: 末尾の /* を必ず付けてください。

    arn は Amazon Resource Name の略で、AWSリソースを一意に識別する名前です。

  6. 「変更の保存」をクリック

🚀 Step 4: HTMLファイルをそのままアップロードして公開を確認

HTMLファイルをダウンロード

  1. index.html」ファイルと「JumpingBallRunner-SingleFile.html」の2つの.htmlファイルをダウンロードする

    ダウンロード方法は、リンクをクリックして開いた別タブでダウンロードボタンを押す。(下図参照)

HTMLファイルをそのままアップロード

  1. 「オブジェクト」タブを選択
  2. 「アップロード」→「ファイルを追加」
  3. ダウンロードした次の2つのファイルを、内容を編集せずにアップロード:
    • index.html
    • JumpingBallRunner-SingleFile.html (ゲーム)
  4. 「アップロード」ボタンをクリック

アップロード完了後は「閉じる」をクリックします。

初回の公開を確認

  1. 「プロパティ」タブを選択
  2. 「静的ウェブサイトホスティング」セクションにある「バケットウェブサイトエンドポイント」のURLをコピー

  3. コピーしたURLをブラウザで開く
  4. ページが表示され、目標欄に[ここに各自の目標を記入してください]が表示されることを確認
  5. ページ内のゲームへのリンクも開けることを確認

🚀 Step 5: 目標を書き込んで再アップロードし、更新を確認

目標を書き込む

  1. ダウンロードしたindex.htmlを、メモ帳やVisual Studio Codeなどのテキストエディタで開く
  2. [ここに各自の目標を記入してください]を、自分の目標に書き換える

    💡 : 5年後にはフルスタックエンジニアとして世界で活躍したい!

  3. ファイルを保存する

更新したHTMLファイルを再アップロード

  1. 「オブジェクト」タブを選択
  2. 「アップロード」→「ファイルを追加」
  3. 目標を書き込んだindex.htmlを選択してアップロードする
  4. 上書きの確認が表示されたら、上書きを実行する

更新を確認

  1. Step 4で開いたウェブサイトURLを再読み込みする
  2. 書き込んだ目標が表示され、プレースホルダーが消えていることを確認
  3. ゲームへのリンクが引き続き開けることを確認
  4. URLをチャットで共有 → 講師が画面で紹介します!
  5. 🎉 あなたの挑戦宣言が世界に公開され、更新も反映されました!

📚コラム: JumpingBallRunner-SingleFile.html

このゲームは、2025年にChatGPT-5を使って制作しました。
驚きなのは、数行だけの指示でできあがります。

Prompt: Create a single-page app in a single HTML file with the following requirements:
- Name: Jumping Ball Runner
- Goal: Jump over obstacles to survive as long as possible.
- Features: Increasing speed, high score tracking, retry button, and funny sounds for actions and events.
- The UI should be colorful, with parallax scrolling backgrounds.
- The characters should look cartoonish and be fun to watch.
- The game should be enjoyable for everyone.

このプロンプトは、OpenAIの公式ページで紹介されています。
https://openai.com/index/introducing-gpt-5/

実行の都度、作られるゲームは少しつづ異なるものができます。

🎯 学習ポイント

S3の静的ウェブサイトホスティング

二重のセキュリティ構造

Step 1(パブリックアクセスブロック) = 外堀

Step 3(バケットポリシー) = 内堀

なぜこの仕組みなのか

AWSの設計思想: 「間違ってパブリック公開してしまう事故を防ぐ」

よくある事故:

  1. 開発者がバケットポリシーを間違って設定
  2. 機密データが世界中に公開される
  3. 企業が大問題になる

だからAWSは:


🚨 トラブルシューティング

403 Forbidden エラー

404 Not Found エラー

ウェブサイトにアクセスできない

エンドポイントURLが見つからない


🎊 完了!

おめでとうございます!あなたは今、以下を達成しました:

世界への発信: S3で自分のサイトを世界に公開 ✅ クラウドの体験: AWSの力を実感
セキュリティ理解: 二重の安全装置の仕組み理解
更新の体験: HTMLの変更が公開ページに反映されることを確認 ✅ 仲間との絆: 挑戦宣言の共有でクラス内の結束

🚀 次のステップ

今日の後半は、クラウドの基礎概念を学び、明日からは本格的なシステム構築に挑戦します!

🎮️ ボーナス: 息抜きタイム

あなたのサイトには、学習の合間に楽しめるJumping Ball Runnerゲームも含まれています!スペースキーでジャンプして障害物を避けるシンプルなゲームです。

💡 今日の気づきを記録しよう

これがクラウドの力。あなたの挑戦が今、世界に届きました! 🔥