type
status
date
slug
summary
tags
category
icon
password
理論
静的アセットとは、ウェブサイトやアプリケーションで使用される変更されない、または頻繁に変更されないファイルを指します。これらのファイルは、通常、ユーザーに提供されるコンテンツであり、動的な処理を伴わない、単純な形式のデータです。以下は、静的アセットの例です:
- 画像ファイル(JPEG、PNG、GIFなど)
- CSSファイル(スタイルシート)
- JavaScriptファイル
- フォントファイル
- HTMLファイル
- 動画ファイル(MP4など)
これらのファイルは通常、ウェブサーバーやCDN(コンテンツ配信ネットワーク)を通じて配信され、ウェブページの見た目やインタラクティブ性を提供します。静的アセットは、リクエストごとに変更されることなく、通常そのまま配信されます。
- クロスリージョンレプリケーション(Cross-Region Replication):Amazon S3でクロスリージョンレプリケーション(CRR)を構成することで、
us-east-1
のS3バケットから別のリージョンのS3バケットへオブジェクトを自動的にレプリケートできます。これにより、主リージョン(us-east-1)で障害が発生した場合でも、他のリージョンからデータをアクセスできるようになり、高可用性と災害復旧が確保されます。
- CloudFrontのオリジングループ(Origin Group):CloudFrontでは、複数のS3バケットをオリジンとして設定することができます。CloudFrontは、利用可能なオリジンを自動的に選択します。例えば、1つのリージョンのS3バケットが利用できなくなった場合、CloudFrontは自動的に他のリージョンのS3バケットに切り替えます。これにより、ユーザーが静的コンテンツにアクセスする際に、障害時にも自動でフェイルオーバーが行われ、高可用性が向上します。
実践
参照元:

以下は、オリジンアクセスアイデンティティ(OAI)を使用して、Amazon S3 オリジンを東京とオレゴンリージョンに構成するためのハンズオン記事のサンプルです。これにより、クロスリージョンレプリケーションを使用して、可用性の高い構成を実現します。
オリジンアクセスアイデンティティ(OAI)を使ったクロスリージョンS3オリジン構成のハンズオン
目標
本ハンズオンでは、AWSのオリジンアクセスアイデンティティ(OAI)を使用して、東京リージョンとオレゴンリージョンにS3オリジンを作成し、クロスリージョンレプリケーション(CRR)でコンテンツを同期します。これにより、片方のリージョンで障害が発生した場合でも、もう片方のリージョンからコンテンツを公開し続けることができます。
前提条件
- AWSアカウントがあること
- AWS管理コンソールにアクセスできること
- 東京リージョンとオレゴンリージョンにS3バケットを作成する権限があること
ステップ 1: 東京リージョンにS3バケットを作成
- AWS管理コンソールにログインし、東京リージョン(
ap-northeast-1
)に移動します。
- 「S3」を選択し、「バケットを作成」ボタンをクリックします。
- バケット名を入力します(例:
my-content-bucket-tokyo
)。
- 必要に応じて設定を調整し、「作成」をクリックします。
ステップ 2: オレゴンリージョンにS3バケットを作成
- オレゴンリージョン(
us-west-2
)に移動します。
- 同様に、「S3」を選択し、「バケットを作成」ボタンをクリックします。
- バケット名を入力します(例:
my-content-bucket-oregon
)。
- 必要に応じて設定を調整し、「作成」をクリックします。
ステップ 3: クロスリージョンレプリケーション(CRR)の設定
- 東京リージョンのS3バケットに移動し、「管理」タブを選択します。
- 「レプリケーションルール」を設定します。
- 「レプリケーション元バケット」として東京リージョンのバケットを選択し、レプリケーション先バケットとしてオレゴンリージョンのバケットを選択します。
- 必要な設定(オブジェクトのコピーなど)を選択し、レプリケーションを有効にします。
ステップ 4: CloudFrontディストリビューションの作成
- 東京リージョンのS3バケットに対して、CloudFrontディストリビューションを作成します。
- オリジンタイプとして「S3」を選択し、オリジンアクセスアイデンティティ(OAI)を選択します。
- これにより、東京リージョンのS3バケットのコンテンツがCloudFrontを通じて公開されます。
- オリジングループを作成、オレゴンリージョンのS3バケットもCloudFrontのオリジンとして追加することができます。
ステップ 5: レプリケーションの確認
- 東京リージョンのS3バケットにファイルをアップロードします。
- オレゴンリージョンのS3バケットにも自動的にレプリケーションされていることを確認します。
- CloudFront経由でコンテンツが両リージョンから配信されているか、URLで確認します。
ステップ 6: フェイルオーバーのテスト
- 東京リージョンで問題が発生した場合、オレゴンリージョンのS3バケットからコンテンツが引き続き配信されることを確認します。
- CloudFrontのオリジンを切り替える設定が行われていれば、オレゴンリージョンのコンテンツが自動的に配信されます。
まとめ
このハンズオンで、オリジンアクセスアイデンティティ(OAI)を使ったS3オリジン構成を東京とオレゴンリージョンに作成し、クロスリージョンレプリケーションを使用してコンテンツの可用性を高めました。障害発生時には、もう片方のリージョンからコンテンツが継続的に公開される構成が実現できました。

一問道場
問題 36
トピック 1
ある企業のソリューションアーキテクトが、AWS 上で実行されているウェブアプリケーションを確認しています。このアプリケーションは、us-east-1 リージョンにある Amazon S3 バケット内の静的アセットを参照しています。企業は、複数の AWS リージョン間でのレジリエンシー(回復力)を必要としています。企業はすでに、別のリージョンに S3 バケットを作成しています。
最小限の運用オーバーヘッドでこの要件を満たすソリューションはどれですか?
A.
アプリケーションを構成して、各オブジェクトを両方の S3 バケットに書き込むようにします。
Amazon Route 53 のパブリックホストゾーンを設定し、S3 バケットごとに加重ルーティングポリシーを使用したレコードセットを作成します。
アプリケーションを構成して、Route 53 の DNS 名を使用してオブジェクトを参照します。
B.
AWS Lambda 関数を作成して、us-east-1 の S3 バケットから別のリージョンの S3 バケットにオブジェクトをコピーします。
us-east-1 の S3 バケットにオブジェクトが書き込まれるたびに Lambda 関数を呼び出します。
2 つの S3 バケットをオリジンとして含む Amazon CloudFront のオリジングループを設定します。
C.
us-east-1 の S3 バケットでレプリケーションを構成し、オブジェクトを別のリージョンの S3 バケットにレプリケートします。
2 つの S3 バケットをオリジンとして含む Amazon CloudFront のオリジングループを設定します。
D.
us-east-1 の S3 バケットでレプリケーションを構成し、オブジェクトを別のリージョンの S3 バケットにレプリケートします。
フェイルオーバーが必要な場合、アプリケーションコードを更新して、別のリージョンの S3 バケットからオブジェクトをロードするようにします。
解説
この問題では、AWS 上で複数リージョン間でのレジリエンシーを確保する方法を問うています。
各選択肢の解説:
- A: 静的アセットを手動で両方の S3 バケットに書き込み、DNS でルーティングする方法は運用負担が大きく、最適ではありません。
- B: Lambda でオブジェクトをコピーする方法は複雑でスケーラビリティに欠けます。
- C (正解): クロスリージョンレプリケーションを使い、CloudFront のオリジングループを設定することで、レジリエンシーを確保し、運用負担を最小限にできます。
- D: レプリケーション後にアプリケーションコードを変更する必要があり、手動の介入が増えて運用が複雑になります。
結論:
最適な解決策は C の方法です。
- 作者:みなみ
- 链接:https://tangly1024.com/資格勉強/166d7ae8-88e2-80cf-87bf-cff04c064893
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章