376-AWS SAP AWS 「理論・実践・一問道場」S3 ライフサイクルポリシー

 

理論

1. AWS Lambda とイベント駆動型アーキテクチャ

  • AWS Lambdaは、サーバーレスでコードを実行できるサービスです。イベント駆動型のアーキテクチャでは、S3やEventBridgeなどのサービスからトリガーされるイベントに基づいて、Lambda関数が自動的に実行されます。
  • 例えば、S3バケットに画像がアップロードされると、そのイベントがLambda関数を呼び出し、リサイズ処理を行い、結果をS3に保存します。

2. Amazon S3 とストレージクラス

  • S3 Standardは、頻繁にアクセスされるデータに最適です。画像ファイルなど、アクセス頻度が高いデータの保存に適しています。
  • *S3 Standard-IA(Infrequent Access)**は、アクセス頻度が低いデータに向いており、コストを節約するために使用されますが、アクセス頻度が高いデータには不向きです。
  • S3 Glacierは、長期間アクセスされないデータを低コストで保存できるストレージクラスであり、アーカイブ用途に使われます。

3. AWS EventBridge と S3 イベント

  • Amazon EventBridgeは、アプリケーション間でイベントを伝播させるためのサービスで、AWSサービス間やカスタムイベントソースを統合できます。S3バケットにアップロードされた画像のイベントをトリガーとして、必要な処理をLambdaで行う場合などに利用されます。
  • EventBridgeを使うことで、スケーラブルで耐障害性の高いアーキテクチャを構築することができます。

4. AWS Step Functions

  • AWS Step Functionsは、複数のAWSサービスを組み合わせて、複雑なワークフローを構築できるサービスです。複雑なエラーハンドリングや状態管理が必要な場合に使用されますが、単純な画像処理やリサイズのようなタスクには過剰かもしれません。

5. S3 ライフサイクルポリシー

  • S3ライフサイクルポリシーは、S3内のオブジェクトに対して自動的に保存期間を管理するルールを設定できます。画像を6か月後に削除またはアーカイブするなど、ストレージコストを最適化するために利用されます。

6. コスト効率とスケーラビリティ

  • スケーラビリティ: イベント駆動型のアーキテクチャ(Lambda + S3イベント)は、トラフィックの増加に対して自動的にスケールできるため、大規模な処理にも適しています。
  • コスト効率: S3ライフサイクルポリシーを活用することで、必要に応じてストレージクラスを変更し、コストを最適化できます。また、AWS LambdaやEventBridgeは、使用した分だけ課金されるため、無駄なコストを削減できます。

まとめ:

AWS Lambda、EventBridge、S3ライフサイクルポリシーを組み合わせることで、スケーラブルでコスト効率の高い画像処理システムを構築することができます。また、S3のストレージクラスやライフサイクルポリシーを利用して、データの保存コストを最適化することが可能です。

実践

一問道場

質問 #376
画像ストレージサービスを提供する会社が、顧客向けのソリューションをAWSにデプロイしようとしています。このソリューションは数百万の個人顧客によって使用されます。ソリューションは、大量の大きな画像ファイルを受け取り、それらをリサイズし、Amazon S3バケットに最大6か月間保存します。
ソリューションは、需要の大きな変動に対応する必要があります。また、企業規模で信頼性があり、失敗が発生した場合には処理ジョブを再実行できる必要があります。
この要件を最もコスト効率よく満たすソリューションはどれですか?
A. ユーザーが画像を保存した際に発生するS3イベントを処理するためにAWS Step Functionsを使用します。画像をその場でリサイズし、元のファイルをS3バケット内に置き換えるAWS Lambda関数を実行します。すべての保存された画像を6か月後に期限切れにするS3ライフサイクルポリシーを作成します。
B. ユーザーが画像をアップロードした際に発生するS3イベントを処理するためにAmazon EventBridgeを使用します。画像をその場でリサイズし、元のファイルをS3バケット内に置き換えるAWS Lambda関数を実行します。すべての保存された画像を6か月後に期限切れにするS3ライフサイクルポリシーを作成します。
C. S3イベント通知を使用して、ユーザーが画像を保存した際にAWS Lambda関数を呼び出します。このLambda関数を使用して画像をその場でリサイズし、元のファイルをS3バケットに保存します。すべての保存された画像を6か月後にS3 Standard-Infrequent Access(S3 Standard-IA)に移行するS3ライフサイクルポリシーを作成します。
D. ユーザーが画像を保存した際に発生するS3イベントを処理するためにAmazon Simple Queue Service(Amazon SQS)を使用します。画像をリサイズし、リサイズされたファイルをS3 Standard-Infrequent Access(S3 Standard-IA)を使用するS3バケットに保存するAWS Lambda関数を実行します。すべての保存された画像を6か月後にS3 Glacier Deep Archiveに移行するS3ライフサイクルポリシーを作成します。

解説

このシナリオでの要件に最も適したソリューションは B です。以下の理由で選ばれます:

要件のポイント:

  1. 大量の画像ファイルの取り扱い:
      • ソリューションは数百万の個人顧客によって使用され、スケーラビリティが必要です。
  1. 高い信頼性:
      • 失敗が発生した場合に再実行可能でなければならず、信頼性が求められます。
  1. コスト効率:
      • 画像を6か月後に期限切れにし、保存コストを削減するためにS3ライフサイクルポリシーを使用する必要があります。

解説:

  • オプションA:
    • AWS Step Functionsは非常に強力なサービスですが、画像処理のスケーリングや高い需要に対するコスト効率の点では過剰になる可能性があります。特に、Step Functionsは状態管理や複雑なワークフローを提供しますが、このシナリオでは画像処理の単純なワークフローにはオーバーエンジニアリングとなる可能性があります。
  • オプションB:
    • Amazon EventBridgeを使用することで、S3イベントを効率的にトリガーし、Lambda関数を呼び出すことができます。EventBridgeは、S3イベントをリアルタイムで処理でき、スケーラブルでコスト効率が良いです。また、S3ライフサイクルポリシーで画像を6か月後に期限切れにする設定も簡単に実行できます。この組み合わせは、高いスケーラビリティとコスト効率を提供し、必要な信頼性も確保できます。
  • オプションC:
    • S3 Standard-IAに移行するライフサイクルポリシーは、ストレージコストを削減するための方法ですが、特にリサイズ後の画像が頻繁にアクセスされる場合には不適切かもしれません。Standard-IAはアクセス頻度が低い場合に最適ですが、このケースでは頻繁なアクセスが予想されるため、標準的なS3ストレージクラス(S3 Standard)を使用する方がコスト効率が良い可能性があります。
  • オプションD:
    • SQSを使用してイベントを処理する方法は、非同期のジョブ処理には適していますが、スケーラビリティとコスト効率の面では、EventBridgeや直接Lambdaを使用した方がシンプルで効果的です。また、S3 Glacier Deep Archiveは長期間アクセスされないデータの保存に適しており、6か月後のデータをそれに移行するのは適切ではありません。頻繁にアクセスされる画像ファイルに対しては、より高頻度のアクセスが可能なストレージクラス(S3 Standard)を使用すべきです。

結論:

Bの選択肢は、スケーラビリティ、コスト効率、信頼性の面で最もバランスが取れており、このシナリオに最適です。
377-AWS SAP AWS 「理論・実践・一問道場」Compute Savings Plans375-AWS SAP AWS 「理論・実践・一問道場」仮想プライベートゲートウェイ
Loading...
minami
minami
みなみの成長 🐝
Announcement

🎉 ブログへようこそ 🎉

名前: みなみ一人会社
性別:
国籍: China 🇨🇳
政治スタンス: 民主主義支持者
完全独学で基本情報技術者をはじめ、32個の資格を仕事をしながら取得。
現在はIT会社で技術担当として働きながら、ブログ執筆や学習支援にも取り組んでいます。
独学で合格できる学習法や勉強法、試験対策を発信中!

📚 発信内容

  • 💻 IT・システム開発
  • 🏠 不動産 × 宅建士
  • 🎓 MBA 学習記録