Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Amazon S3 を活用した静的ウェブサイトによるご当地キーホルダー収集運用の改善

Amazon S3 を活用した静的ウェブサイトによるご当地キーホルダー収集運用の改善

Avatar for Harumi

Harumi

June 10, 2026

Other Decks in Technology

Transcript

  1. 5.S3 の静的ウェブサイトホスティングとは • S3バケットをWEBサーバーとして利用し、 HTML / CSS / JavaScript などの静的コンテンツを配信する機能。

    • 構築手順概要 • S3バケットに静的ファイル(HTML、CSS、JS、画像など)をアップロード • バケットの「静的ウェブサイトホスティング」を有効化 • バケットポリシーでパブリックアクセスを許可 • S3が自動的にHTTPエンドポイントを提供 (http://<bucket-name>.s3-website-<region>.amazonaws.com)
  2. 5.S3 の静的ウェブサイトホスティングとは • 主な特徴 • サーバー管理不要(フルマネージド) • 高い可用性と耐久性(99.999999999%の耐久性) • 従量課金(ストレージ

    + GETリクエスト数 + データ転送(量)) • スケーリングの心配なし • インデックスドキュメント(index.html)とエラードキュメント(404.htmlな ど)を指定可能 • 制限事項 • サーバーサイド処理は不可(PHP、Node.jsなどのバックエンド処理は動かな い) • HTTPSは直接サポートされない • 動的コンテンツの生成はできない
  3. 6.ウェブサイトを作成する • Kiro を利用して仕様駆動開発(Specモード)で作成 • 構成は一般的、最小構成のウェブサイト • index.html • style.css

    • script.js (キーホルダー収集状況の計算、テーブル描画) • data.json (キーホルダー収集状況の実データ保持ファイル) • Kiro はドキュメント添付機能(IDE)に対応。(2026/3/11) 9種類のネイティブ対応。 ⇒この新機能を利用して、もともとExcel管理していた収集状況一覧のファイ ルを取り込むことにした
  4. 6.ウェブサイトを作成する • 作成したプロジェクトは Amazon Q Developer でコードレビュー Critical, High, Medium,

    Low, Info といった区分でレビュー結果を表示 レビュー結果の解説を Chat 画面に表示 レビュー結果位置をコード上に表示
  5. 7.新たな課題 • 記事に書いてある事態要約 • S3の料金体系はストレージ料金、GETリクエスト数、データ転送(量)の3つ。 • データ転送の料金が一番高い。 • DDoS攻撃を受け、大量のデータ転送が発生。 •

    結果、約200万円の請求が届いてしまった。 • バケットポリシーでパブリックアクセスを許可している。 (= S3バケットが直接インターネットに公開されている状態) 攻撃者はバケット内のオブジェクトに対して大量のGETリクエストを送 信することができてしまう。
  6. 8.対策 ② CloudFront + OAC でウェブサイトを配信する • OACとは • CloudFrontからS3へのアクセスを安全に制御する仕組み。

    • S3バケットへの直接アクセスをブロックしつつ、CloudFront経由のアクセスだ け許可するために使う。 • CloudFront を利用することで、AWS Shield Standard が自動有効 • DDoS保護が行われる
  7. 9.そして公開へ • キーホルダーの収集状況を24時間365日、どこからでも確認できるよう になった。 • ウェブサイトなので、URLを送るだけで容易に共有ができる。 • 運用コストは月あたり 1円 程度。

    • 本人に所有状況を確認せずとも、自身で把握することができるように なった。 • キーホルダーの購入の重複を防止することができるようになった。 当初発生していた課題を解決することができた
  8. 10.学び • S3 + CloudFront を利用することで比較的安全・容易に静的なウェブ サイトが公開できることを、実際に手を動かして学ぶことができた。 • AWS のコンセプトである”ビルディングブロック”を改めて経験する

    ことができた。 (当初 S3 のみでウェブサイトを公開 → CloudFront を追加) • 自身が勉強した内容を実生活で、誰かの課題を解消させる、という経 験をすることができた。 ⇒机上での勉強止まりではなく、人の役に立てることができた ⇒この発想に至るには勉強が必要