type
status
date
slug
summary
tags
category
icon
password
 

理論

1. トラフィックの急増に対する「弾力性」

トラフィックの急増を処理するためには、「弾力性(Elasticity)」が欠かせません。弾力性とは、システムが需要に応じてリソースを自動的に増減させる能力です。急激にトラフィックが増加したとき、リソースが不足してしまうとデータ損失が発生したり、サービスが停止したりするリスクがあります。AWSは、Auto Scalingサーバーレスなど、システムが動的にスケールする仕組みを提供しています。この弾力性が、急増するトラフィックに対する最も重要な対応策です。
  • *サーバーレス(Lambda)**は、リソースを事前に決めることなく、リクエストに応じてリソースを自動的にスケールさせることができるため、弾力性が非常に高いです。
  • *コンテナ化(ECS/Fargate)**では、コンテナの数やリソースを事前に設定しておき、トラフィック増加に応じて新たなコンテナを自動的に立ち上げることができます。

2. 非同期処理とバッファリング

デバイスが一度に送信するデータの量が予測不可能な場合、すべてのリクエストを瞬時に処理するのは不可能です。この問題を解決するために、非同期処理を採用します。非同期処理の基本的な考え方は、リクエストをその場で即時処理するのではなく、一時的にバッファしておき、処理可能なタイミングで順次処理するというものです。これにより、リクエストの急増時にもデータを失うことなく、順次処理を行うことができます。
  • SQSは、リクエストを一時的に保存する「キュー」として機能し、処理能力に応じてデータを順次取り出して処理します。これにより、大量のリクエストを適切に管理することができます。
  • LambdaFargateがこれを処理する役割を果たし、非同期でスケールしながら処理を実行します。

3. データ損失の防止(Durability)

データ損失の防止は、システム設計において最も根本的で重要な要素です。データ損失を許容しない場合、システムの可用性や信頼性が保証されません。メッセージングシステム(例:SQS)は、メッセージの耐久性(Durability)を保つために、冗長性を確保した設計が必要です。SQSではメッセージが一時的に保存され、バックエンドで処理されるまで失われることがありません。
  • SQSは、分散システムにおいて、メッセージが消失するリスクを最小化するため、メッセージの重複を避け、確実に処理されることを保証します。

4. シンプルさと管理の効率性

システム全体を管理する負荷が高いと、問題発生時の対応が遅れる可能性があります。システムをできるだけシンプルに設計し、管理の効率性を保つことが重要です。サーバーレスアーキテクチャや完全に管理されたサービスを利用することで、インフラの管理負担を減らし、運用の効率を高めることができます。
  • Lambdaのようなサーバーレス技術では、インフラの管理を完全にAWSに任せることができ、システム運営に必要なリソースのみを意識すれば良いため、システム設計がシンプルになります。

5. 適切なツールとサービスの選定

最後に、システムに適したツールやサービスを選定することが本質的です。例えば、デバイスからのデータ送信において、高いリクエスト数やスケーラビリティの要件がある場合、API Gatewayが非常に適しています。もしリクエストを非同期で効率的に処理する必要があれば、SQS + Lambdaの組み合わせが理想的です。大量のデータをリアルタイムでストリーミングする場合には、Kinesisなどを選択することが最適です。

結論

本質的には、システムの設計は以下の要素に基づいています:
  • 弾力性:リソースを自動的にスケールし、急激なトラフィック増加にも耐える能力。
  • 非同期処理:リクエストを瞬時に処理せず、バッファリングして順次処理。
  • データ損失防止:冗長性を確保し、データの耐久性を保つ。
  • シンプルさと管理効率:システムの管理負担を最小化し、運用の効率を高める。
これらの原則に基づいて、**選択肢B(API Gateway + SQS + Lambda)**が最も適した解決策であるといえます。このアーキテクチャは、スケーラビリティ、非同期処理、データ損失防止を十分に実現し、運用管理を簡素化できます。

実践

一問道場

問題 #180
トピック 1
ある会社がAWSクラウドで処理エンジンを運用しています。このエンジンは、物流センターからの環境データを処理して、持続可能性指数を計算します。会社は、ヨーロッパ全体に分散した数百万のデバイスを物流センターで運用しており、これらのデバイスはRESTful APIを通じて情報を処理エンジンに送信します。
このAPIは予測不可能なトラフィックの急増が発生します。会社は、デバイスが処理エンジンに送信するすべてのデータを処理するソリューションを実装する必要があります。データ損失は許容できません。
どのソリューションがこれらの要件を満たしますか?
A. RESTful API用にアプリケーションロードバランサー(ALB)を作成します。Amazon Simple Queue Service (Amazon SQS)キューを作成します。ALBにリスナーとターゲットグループを作成し、ターゲットとしてSQSキューを追加します。Amazon Elastic Container Service (Amazon ECS)でFargate起動タイプを使用して、キュー内のメッセージを処理するコンテナを実行します。
B. RESTful APIを実装するAmazon API Gateway HTTP APIを作成します。Amazon Simple Queue Service (Amazon SQS)キューを作成します。API Gatewayサービス統合でSQSキューを設定します。AWS Lambda関数を作成して、SQSキュー内のメッセージを処理します。
C. RESTful APIを実装するAmazon API Gateway REST APIを作成します。Auto Scalingグループ内にAmazon EC2インスタンスのフリートを作成します。API GatewayのAuto Scalingグループプロキシ統合を設定します。EC2インスタンスで受信データを処理します。
D. RESTful API用にAmazon CloudFrontディストリビューションを作成します。Amazon Kinesis Data Streamsでデータストリームを作成します。データストリームをディストリビューションのオリジンとして設定します。AWS Lambda関数を作成して、データストリーム内のデータを消費して処理します。

解説

この問題の解説は以下の通りです:
要件
  • トラフィックの急増に対応する必要がある。
  • データ損失を許容しない。
  • すべてのデータを確実に処理する必要がある。
選択肢Bが最適な理由
  • API GatewaySQSを使い、非同期処理を行い、トラフィック増加に対応。
  • Lambdaを使用して、SQSのメッセージを処理し、スケーラブルで管理が簡単。
  • SQSはデータの耐久性(データ損失なし)を保証。
他の選択肢(A, C, D)は複雑で、非同期処理やスケーラビリティ、データ損失防止の観点で効果的ではありません。
相关文章
クラウド技術の共有 | 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
181-AWS SAP AWS 「理論・実践・一問道場」トランジットゲートウェイ+RAM179-AWS SAP AWS 「理論・実践・一問道場」エラーハンドリング SQS
Loading...
みなみ
みなみ
一个普通的干饭人🍚
最新发布
02-生成AIパスポート試験対策:第2章「生成AI」
2025-2-1
01-生成AIパスポート試験対策:第1章「人口知能」
2025-2-1
究極のAWS認定 AI 実践者 AIF-C01 - 学習メモ
2025-1-27
不要再傻傻的直接买NISA啦
2025-1-27
Kubernetes、仮想マシンとコンテナの概念を超簡単に解説!
2025-1-24
529-AWS SAP AWS 「理論・実践・一問道場」VPCエンドポイント
2025-1-22
公告
🎉欢迎访问我的博客🎉
- 感谢您的支持 --
本站点于2024/09/01建立
👏主要分享IT相关主题👏
系统管理:
Redhat…
容器和编排:
Kubernetes、Openshift…
云计算:
AWS、IBM…
AI入门
以及技术笔记和考证经验
定期更新,欢迎互动。
感谢访问!
快速浏览相关标签