type
status
date
slug
summary
tags
category
icon
password
书籍
 

理論

サーバーレスアーキテクチャとイベント駆動型デザインのベストプラクティス


1. ファイルストレージの選択

  • Amazon S3:
    • ネイティブなイベント通知機能(オブジェクト作成時のトリガー)を持つ。
    • S3イベント通知をAWS LambdaやAmazon SQSに連携可能。
    • 高い耐久性と可用性を持ち、データ処理アーキテクチャに適している。
  • Amazon EFS:
    • ファイルシステムとして柔軟性は高いが、イベント通知機能がない。
    • 高頻度のポーリングが必要になるため、S3より管理コストが高くなる場合がある。

2. AWS Lambdaの活用

  • 特性:
    • サーバーレスで管理不要。最大15分の実行時間制限。
    • 短時間のロジックやトリガー処理(例: コンテナ選択ロジック)に最適。
  • 活用シナリオ:
    • S3イベント通知でトリガーされ、処理タスク(AWS Fargateなど)を動的に起動。

3. AWS Fargateの役割

  • 用途:
    • 長時間のコンテナベースのデータ処理(最大4時間)。
    • インフラ管理不要でスケーラブルなコンテナ運用が可能。
  • ユースケース:
    • AWS Lambdaで処理しきれない長時間のデータ処理を担当。

4. イベント駆動型アーキテクチャ

  • イベント通知:
    • S3イベント通知でLambdaをトリガー。
    • LambdaがFargateタスクを起動し、必要なコンテナイメージで処理を開始。
  • 利点:
    • リアルタイム性の高い処理。
    • ポーリングを排除し、運用コストを削減。

まとめ

  • S3 + Lambda + Fargateは、柔軟性と効率性を兼ね備えたモダンなデータ処理アーキテクチャ。
  • これにより、サーバーレスかつスケーラブルな長時間処理を実現可能。

実践

一問道場

質問 #511

ある企業がデータ処理アプリケーションをAmazon EC2インスタンス上でホストしています。このアプリケーションは、新しくアップロードされたファイルを検出するためにAmazon Elastic File System (Amazon EFS) ファイルシステムをポーリングします。新しいファイルを検出すると、アプリケーションはファイルからデータを抽出し、ファイルを処理するための適切なDockerコンテナイメージを選択するロジックを実行します。その後、アプリケーションは適切なコンテナイメージを開始し、ファイルの場所をパラメータとして渡します。
コンテナ内で実行されるデータ処理は最大で2時間かかることがあります。処理が完了すると、コンテナ内で実行されるコードは、処理後のファイルをAmazon EFSに書き戻して終了します。
企業は、コンテナを実行しているEC2インスタンスを排除するためにアプリケーションをリファクタリングする必要があります。
この要件を満たすソリューションはどれですか?

選択肢

A. Amazon Elastic Container Service (Amazon ECS) クラスターを作成します。処理をAWS Fargateタスクとして実行するように設定します。コンテナ選択ロジックをAmazon EventBridgeルールとして抽出し、新しいファイルがEFSファイルシステムに追加されたときに適切なFargateタスクを開始するようにEventBridgeルールを構成します。
B. Amazon Elastic Container Service (Amazon ECS) クラスターを作成します。処理をAWS Fargateタスクとして実行するように設定します。コンテナ選択ロジックを更新してFargateサービスとしてコンテナ化し、適切なFargateタスクを開始するように設定します。新しいファイルがEFSファイルシステムに追加されたときにFargateサービスを呼び出すようにEFSイベント通知を構成します。
C. Amazon Elastic Container Service (Amazon ECS) クラスターを作成します。処理をAWS Fargateタスクとして実行するように設定します。コンテナ選択ロジックをAWS Lambda関数として抽出し、適切なFargateタスクを開始するようにします。ファイルアップロードのストレージをAmazon S3バケットに移行し、処理コードをAmazon S3を使用するように更新します。オブジェクトが作成されたときにLambda関数を呼び出すようにS3イベント通知を構成します。
D. 処理用のAWS Lambdaコンテナイメージを作成します。Lambda関数がこれらのコンテナイメージを使用するように設定します。コンテナ選択ロジックを抽出し、適切なLambda処理関数を呼び出す意思決定Lambda関数として実行します。ファイルアップロードのストレージをAmazon S3バケットに移行し、処理コードをAmazon S3を使用するように更新します。オブジェクトが作成されたときに意思決定Lambda関数を呼び出すようにS3イベント通知を構成します。

解説

この問題の要点は以下の通りです:
  1. EC2インスタンスの排除
      • 現在、データ処理はEC2インスタンス上で実行されていますが、これを排除する必要があります。代わりにサーバーレスまたはマネージドサービスを使用します。
  1. ファイル検出とイベント駆動型アーキテクチャ
      • ファイル検出のために現在使用されているポーリングを、イベント通知(Amazon S3やEFSイベント)に置き換える必要があります。
  1. コンテナの選択ロジックとデータ処理の実行
      • コンテナの選択ロジックを適切に実行し、ファイル処理用のDockerコンテナをトリガーする必要があります。
以下に各選択肢の分析を示します。

選択肢の分析

A. Amazon ECS + AWS Fargate + EventBridge + EFS

  • 内容:
    • Amazon ECSクラスターとAWS Fargateタスクを使用し、イベント駆動型で処理を実行。
    • コンテナ選択ロジックをAmazon EventBridgeルールとして実装。
    • EventBridgeが、EFSに新しいファイルが追加された際に適切なFargateタスクを開始。
  • 問題点:
    • EFSにはネイティブなイベント通知機能がなく、EventBridgeを直接トリガーする方法はありません。そのため、新しいファイルの検出には別途ポーリングが必要になります。
  • 評価: 不正解

B. Amazon ECS + AWS Fargate + EFSイベント通知

  • 内容:
    • Amazon ECSクラスターとAWS Fargateタスクを使用。
    • コンテナ選択ロジックをFargateサービスとしてコンテナ化。
    • 新しいファイルがEFSに追加されたときにEFSイベント通知でFargateサービスをトリガー。
  • 問題点:
    • EFSにはネイティブなイベント通知機能がありません。EFSイベント通知を直接Fargateサービスに連携させることはできません。
  • 評価: 不正解

C. Amazon ECS + AWS Fargate + S3 + Lambda

  • 内容:
    • EFSではなく、ファイルストレージをAmazon S3に移行。
    • S3イベント通知を使用して、ファイルのアップロードをトリガー。
    • コンテナ選択ロジックをAWS Lambdaで実装し、Fargateタスクを起動。
  • 利点:
    • S3にはネイティブなイベント通知機能があり、Lambdaをシームレスにトリガー可能。
    • LambdaがFargateタスクを動的に起動できるため、柔軟性が高い。
    • サーバーレスアーキテクチャで管理負荷を削減可能。
  • 評価: 正解

D. AWS Lambdaコンテナイメージ + S3 + Lambda

  • 内容:
    • Lambda関数を使用してデータ処理を実行。
    • 処理用のDockerコンテナイメージをLambdaに対応させて実行。
    • コンテナ選択ロジックを別のLambda関数として実装し、S3イベント通知でトリガー。
  • 問題点:
    • AWS Lambdaには15分の実行時間制限があり、問題文の「処理に最大2時間かかる」という要件を満たせません。
  • 評価: 不正解

正解: C


解決策の流れ

  1. ファイルストレージの移行:
      • EFSではなくAmazon S3を使用し、ファイルアップロードのイベント通知を簡素化。
  1. イベント駆動型アーキテクチャ:
      • S3イベント通知を設定し、新しいファイルがアップロードされた際にAWS Lambdaをトリガー。
  1. AWS Lambdaでのコンテナ選択:
      • Lambda関数でコンテナ選択ロジックを実行し、適切なAWS Fargateタスクを起動。
  1. AWS Fargateでデータ処理:
      • Fargateタスクで最大2時間のデータ処理を実行し、結果をS3に書き戻し。

関連知識

  • EFS vs S3:
    • EFSにはネイティブなイベント通知機能がないため、S3が推奨される。
  • AWS Lambdaの制限:
    • 実行時間は最大15分。長時間の処理には不向き。
  • AWS Fargate:
    • サーバーレスなコンテナ管理サービスで、最大4時間のタスク実行が可能。
相关文章
クラウド技術の共有 | AWS Site-to-Site
Lazy loaded image
EKSでのWordPressデプロイ:KCNA-JP試験対策 (Kubernetes実践編)
Lazy loaded image
初心者向け!コンテナ化WordPressサイト構築ガイド(超詳細版)
Lazy loaded image
EFSを活用!AWS EC2でDockerを使ったWordPressサイト構築
Lazy loaded image
529-AWS SAP AWS 「理論・実践・一問道場」VPCエンドポイント
Lazy loaded image
528-AWS SAP AWS 「理論・実践・一問道場」Migration Evaluator
Lazy loaded image
512-AWS SAP AWS 「理論・実践・一問道場」MAM510-AWS SAP AWS 「理論・実践・一問道場」タグ プレフィックス
Loading...
みなみ
みなみ
一个普通的干饭人🍚
最新发布
TOKYO自習島
2025-4-27
第1回:イントロダクション
2025-4-21
第1回:イントロダクション
2025-4-18
第1回:オリエンテーション/意思決定と会計情報
2025-4-18
建物業法の基本と免許-59問
2025-4-10
宅建士过去问速刷:小南小白陪你拿证-001
2025-4-7
公告

🎉 欢迎访问我的博客 🎉

🙏 感谢您的支持 🙏

📅 本站自 2024年9月1日 建立,致力于分享我在 IT・MBA・不动产中介 等领域的学习与实践经验,并推动 线上线下学习会 的自主开展。

📚 主要内容

💻 IT・系统与开发

  • 系统管理:Red Hat 等
  • 容器与编排:Kubernetes、OpenShift
  • 云计算:AWS、IBM Cloud
  • AI 入门:人工智能基础与实践
  • 技术笔记与考证经验

🏠 不动产 × 宅建士

  • 宅建士考试笔记

🎓 MBA 学习笔记

  • 管理学、经济学、财务分析等

🔍 快速查找内容(标签分类)

由于网站目前没有专门的设计,可能会导致查找信息不便。为了更快找到你感兴趣的内容,推荐使用以下标签功能 进行搜索!
📌 定期更新,欢迎常来看看!
📬 有任何建议或想法,也欢迎留言交流!