Amazon S3(Simple Storage Service)を活用した疎結合構成について
株式会社Fusic / 本田晃太郎
メンバー / バックエンドエンジニア
ツールの利用規模 |
---|
10名以下 |
ツールの利用規模 | 10名以下 |
---|
アーキテクチャ

導入の背景・解決したかった問題
導入背景
ツール導入前の課題
従来のWebアプリケーションは、フロントエンドとバックエンドが一体化した構成であり、主にEC2インスタンス上のWebサーバーがHTML、CSS、JavaScriptの配信とAPIの処理を同時に担っていました。この構成は初期導入時にはシンプルで扱いやすいという利点がありましたが、運用が進むにつれて以下のような課題が明らかになってきました。
- アプリケーション全体を再デプロイしなければ変更を反映できない不便さ
- トラフィックの増減にかかわらず、常に一定のインフラコストが発生
- パフォーマンスやレスポンスタイムの最適化が難しい
どのような状態を目指していたか
これらの課題を解決するために、Amazon S3(Simple Storage Service)を用いた静的コンテンツのホスティングを採用しました。
静的ファイルのホスティング HTML、CSS、JSといったビルド済みアセットをS3に格納。従来のWebサーバーは不要となり、静的ファイルの配信に特化した構成へと変更しました。
可用性・耐障害性の向上 S3は高い可用性と耐障害性を備えており、冗長構成や自動バックアップの仕組みが整っているため、インフラレベルの信頼性が向上しました。
選定理由
HTML、CSS、JavaScriptなどの静的ファイルを高速かつ確実に配信できるうえ、CloudFrontやRoute 53との親和性も高い。また、一般的なWebサーバーと比べて、運用・維持コストを大幅に抑えられる点も大きな利点でした。
導入の成果
改善したかった課題はどれくらい解決されたか
フロントエンドとバックエンドの分離 HTML/CSS/JSをS3で独立してホスティングする構成に移行したことで、デプロイの粒度を細かく制御できるようになり、アプリケーション全体を再ビルド・再デプロイする必要がなくなりました。
インフラ運用の簡素化 EC2でのWebサーバー管理が不要となり、OSのパッチ適用やセキュリティ設定などのインフラ保守作業が実質ゼロに。開発者の負担が軽減されました。
運用コストの最適化 従量課金制のS3に移行したことで、トラフィックが少ない時間帯の無駄な固定費を削減でき、コスト効率が向上しました。
どのような成果が得られたか
可用性と信頼性の強化 高い耐障害性を持つS3構成により、障害発生率が大幅に低下。ユーザーへの影響も最小限に抑えられています。
セキュリティの担保 パブリックアクセスのブロック設定やバケットポリシーの明示により、意図しない公開リスクを排除しつつ、安全にホスティングが可能となりました。
導入時の苦労・悩み
AWSのセキュリティ強化により、S3バケットのパブリックアクセスはデフォルトでブロックされる設定となっています。実際にバケットを公開しようとすると、バケットポリシー、オブジェクトACL、複数の設定を正確に構成する必要があり、細かい部分の修正が必要でした。
導入に向けた社内への説明
上長・チームへの説明
これまでの構成では、Webサーバー上でアプリケーションをすべて抱えていたため、スケーラビリティや運用効率に課題がありました。 今回、静的ファイルの配信をS3に切り出すことで、より高速かつ安定した配信基盤を構築したい旨を共有しました。
活用方法
よく使う機能
- 静的ウェブホスティング
- バケットポリシー設定
- ライフサイクルルールの設定
- イベント通知
ツールの良い点
- アクセス制御が柔軟:細かい権限設定が可能
- セキュリティ強い:暗号化・アクセスログに対応
- 静的ウェブホスティング対応:HTMLサイトもそのまま公開できる
ツールの課題点
- 誤設定で情報漏洩リスク:バケット公開設定ミスで、誰でもアクセスできる状態になる恐れあり
今後の展望
使ったことのない機能など積極的に採用していきたいと思っています。
株式会社Fusic / 本田晃太郎
メンバー / バックエンドエンジニア
株式会社Fusic / 本田晃太郎
メンバー / バックエンドエンジニア