type
status
date
slug
summary
tags
category
icon
password
理論
EC2インスタンス、Auto Scaling、ALB、EFSの理解と最適化
1. Amazon EC2インスタンス
- クラウド上で仮想サーバーを提供
- スケーラビリティと多様なインスタンスタイプをサポート
2. Auto Scaling
- トラフィックに応じてEC2インスタンスの数を自動調整
- コスト効率を最適化し、可用性を向上
3. アプリケーションロードバランサー (ALB)
- HTTP/HTTPSトラフィックを効率的に分散
- 高度なルーティングとセキュリティ機能を提供
4. Amazon EFS
- 複数のEC2インスタンスが同時にアクセスできるスケーラブルなネットワークファイルシステム
- 高い耐障害性と自動スケーリング
5. コンテンツ配信ネットワーク (CDN)
- CloudFrontを使って、エッジロケーションからコンテンツを高速に配信
- 動画や静的コンテンツの配信に最適
6. 動画コンテンツの配信と最適化
- EFSは動画のストレージには不向き
- Amazon S3 と CloudFront の組み合わせが最適
7. コスト効率の最適化
- Auto ScalingとCloudFrontでコスト削減
- 動画コンテンツをEFSからS3に移行し、CloudFrontで配信
Amazon EFSは、主に以下のシナリオに適しています:
EFSが適している配信シナリオ
- アプリケーションデータや設定ファイルの共有 複数のEC2インスタンスが同じデータを共有する必要がある場合に最適。
- コンテンツの共有・アクセス制御 同時にアクセスする複数のインスタンスでファイル共有が必要な場合に適しています。
- 高い耐障害性とスケーラビリティ 高可用性と自動スケーリングが求められるシステムに適しています。
EFSが適していない配信シナリオ
- 大量の静的コンテンツやメディアファイルの配信 メディアファイルには、S3とCloudFrontの方が効率的です。
- 高い配信速度と低遅延が求められる場合 S3とCloudFrontを使うことで、配信速度や低遅延が改善されます。
まとめ
EFSはファイル共有やアプリケーションデータの保存に最適ですが、大量の静的コンテンツやメディアファイルの配信にはS3とCloudFrontが最適です。
実践
EFSに関連したハンズオン
CLFと静的なウェブサイトホスティングに関連したハンズオン
参照元
AWSを使用した静的ウェブサイトのホスティング - ハンズオンガイド
1. 概要
このハンズオンでは、AWSのS3バケットを使用して静的ウェブサイトをホスティングし、その後CloudFrontを経由してコンテンツを配信する方法を紹介します。本記事では、基本的なS3設定とCloudFront設定を手順ごとに解説します。なお、ドメイン取得の手順は含まれていません。
2. 使用するサービス
- Amazon S3 (Simple Storage Service):静的ウェブサイトのホスティングに使用。
- Amazon CloudFront:コンテンツを世界中に配信するためのCDN(コンテンツデリバリーネットワーク)サービス。
3. システム構成
静的なHTMLファイルをAmazon S3バケットに格納し、CloudFrontディストリビューションを作成して、インターネット上でウェブサイトを公開する構成です。
4. ハンズオン手順
4.1. S3バケットの作成
- S3コンソールにログインし、「バケットを作成」をクリック。
- リージョン選択:東京リージョン(
ap-northeast-1
)を選択。
- バケット名:一意な名前を選択(例:
my-website-bucket
)。バケット名はグローバルで一意でなければならず、命名規則に従う必要があります(3~63文字、使用可能な文字は小文字、数字、ハイフン、ドット)。
- パブリックアクセス設定:静的ウェブサイトを公開するために、パブリックアクセスのブロックを解除します。
- 「バケットを作成」をクリック。
4.2. S3バケットの設定
- バケットを選択し、「プロパティ」タブを開きます。
- 「静的ウェブサイトホスティング」の設定で「有効にする」を選択。
- インデックスドキュメントとして「
index.html
」を設定。
- 設定を保存。
4.3. アクセス許可の設定
- バケットポリシーを追加して、公開アクセスを許可します。
- 以下のバケットポリシーを設定します:
(
my-website-bucket
は実際のバケット名に置き換えてください。)4.4. HTMLファイルのアップロード
- ローカルでビデオファイルやHTMLファイルをを作成。
- 作成したビデオファイルやHTMLファイルをS3バケットにアップロード。
4.5. 静的ウェブサイトの確認
- S3バケットの「プロパティ」タブで、静的ウェブサイトのエンドポイントURLをコピー。
- ブラウザにそのURLを入力し、
index.html
が正しく表示されることを確認。
4.6. CloudFrontディストリビューションの作成
- CloudFrontコンソールに移動し、「ディストリビューションを作成」をクリック。
- オリジンドメイン名:S3バケット名を選択。
- *Origin Access Control (OAC)**を選択し、設定を進めます。
- デフォルトルートオブジェクトに「
index.html
」を指定。
- 必要な設定を行い、ディストリビューションを作成。
- 作成後、ディストリビューションが有効化されるまで数分間待機。
4.7. CloudFrontからアクセスできるか確認
- CloudFrontディストリビューションが作成されると、ドメイン名が提供されます。
- ブラウザでそのドメイン名を入力し、
index.html
が表示されることを確認。
5. リソースの削除
作成したリソースが不要になった場合、S3バケットとCloudFrontディストリビューションを削除します。削除しない場合、料金が発生する可能性があります。
このガイドを参考に、AWSで静的ウェブサイトのホスティングを行い、CloudFrontを使ってコンテンツ配信を高速化しましょう!
一問道場
問題:
- 企業は、Amazon EC2インスタンスを使用してWebフリートを展開し、ブログサイトをホストしています。
- 「Webフリート」 は、インターネット上で提供されるWebサービスの運用に必要な複数のサーバー群やリソースを一括で管理する概念を表しています。
- EC2インスタンスは、アプリケーションロードバランサー(ALB)の背後に配置され、自動スケーリンググループに設定されています。
- Webアプリケーションは、すべてのブログコンテンツを Amazon EFS ボリュームに保存しています。
- 最近、ブロガーが投稿にビデオを追加できる機能を追加し、以前の 10倍 のユーザートラフィックが発生しました。
- ピーク時 に、ユーザーがサイトにアクセスしたり、ビデオを視聴しようとした際に バッファリング や タイムアウト の問題が報告されています。
質問:
ユーザーの問題を解決するために、最もコスト効率が良く、スケーラブルな展開方法はどれですか?
選択肢:
A.
Amazon EFSの設定を再構成して、最大I/Oを有効にする
B.
ブログサイトを更新して、インスタンスストアボリュームをストレージに使用し、起動時にサイトコンテンツをボリュームにコピーし、シャットダウン時にAmazon S3にコピーする
C.
Amazon CloudFrontディストリビューションを設定し、ディストリビューションをS3バケットにポイントし、ビデオをEFSからAmazon S3に移行する
D.
すべてのサイトコンテンツに対してAmazon CloudFrontディストリビューションを設定し、ディストリビューションをALBにポイントする
解説:
最もコスト効率が良く、スケーラブルな方法を選ぶには、コンテンツ配信の最適化が重要です。特に、ビデオのような大容量のコンテンツに対して、以下のように負荷分散やキャッシュの活用が有効です:
- 選択肢A はEFSのI/O性能を最大化することを提案しますが、EFS自体は動画などの大容量データの取り扱いには限界があり、スケーラビリティには不十分です。
- 選択肢B はインスタンスストアとS3を利用していますが、データを手動で移行する手間がかかり、スケーラビリティや管理の負担が大きくなります。
- 選択肢C は、動画コンテンツをS3に移行し、CloudFrontで配信する方法です。これにより、動画の配信が高速化し、EFSの負担を減らすことができ、スケーラブルで効率的です。
- 選択肢D は、すべてのコンテンツに対してCloudFrontを使い、ALBを通じて配信する方法です。これにより、全てのコンテンツがキャッシュされて高速に配信され、ピーク時でもスムーズにユーザーにコンテンツを届けることができます。
最も適切な選択肢は
C または D です。特に、動画コンテンツの配信に関しては C が効果的です。
- 作者:みなみ
- 链接:https://tangly1024.com/資格勉強/15dd7ae8-88e2-8060-9ec6-e4bb03de83f2
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章