Amazon SOA-C02: サーバーレスとアプリケーション統合 — 学習ガイド

こちらの一部です: AWS SysOps Administrator Associate SOA-C02 — 学習ガイド. 検証済みの解答で練習: Amazon試験ハブ, または時間制限付き模擬試験に挑戦: ExamRoll.io.

サーバーレスとアプリケーション統合は、サーバーを管理せずにイベント駆動型アプリケーションを実行し、サービスを確実に接続することを対象とします。運用上の重要性は、コストを予測可能に保ちながら、スケーリング、レイテンシー、障害モード、最小権限アクセスを管理することにあります。この分野では、Lambdaの動作(コールドスタート、同時実行)、信頼性の高いイベント配信(EventBridge、SNS、SQS)、セキュリティ制御(実行ロールとアクセス許可)、非同期フローのオブザーバビリティに焦点を当てます。

AWS Lambdaの運用面と同時実行

Lambdaのパフォーマンスと可用性は、コールドスタート、同時実行数の上限、スロットリング制御にかかっています。コールドスタートは、Lambdaが新しい実行環境を初期化する必要がある場合に発生します。レイテンシーが重要なパスにはプロビジョニングされた同時実行 (

undefined

) を使用し、軽量なランタイムや初期化処理の少ないものを優先することで、影響を軽減します。予約された同時実行 (

undefined

) を使用して同時実行数を予約および制限し、ダウンストリームサービスを保護して関数ごとのクォータを強制します。ConcurrentExecutionsThrottles のCloudWatchメトリクスを監視します。

再試行と呼び出しモデルはモードによって異なります。同期呼び出し(API Gateway、直接のInvoke)はエラーを即座に返します。非同期呼び出し(EventBridge、SNS、S3の非同期通知)はLambdaの非同期再試行ポリシー(バックオフ付きで2回再試行)を使用し、DLQや送信先を利用できます。イベントソースマッピング(SQS、Kinesis、DynamoDBストリーム)の場合、Lambdaのポーラーはメッセージが期限切れになるか、イベントソースのリドライブポリシーがデッドレターをトリガーするまで再試行します。タイムアウトとメモリは控えめに設定し (

undefined

)、重複処理を減らすためにSQSの可視性タイムアウトを関数のタイムアウトより長く設定します(推奨:可視性 >= 関数タイムアウト * 2)。

EventBridgeによるイベント駆動型アーキテクチャ

EventBridgeは、柔軟なルーティング、スキーマレジストリ、クロスアカウント配信、再試行/DLQ設定を備えたマネージドイベントバスを提供します。ドメイン分離にはカスタムイベントバスを、SaaS統合にはパートナーイベントバスを使用します。パターンを用いてルールを作成し (

undefined

)、デッドレターと再試行設定を持つターゲットをアタッチします (ターゲットのJSONはDeadLetterConfigRetryPolicyをサポート)。スキーマレジストリを使用してイベントの形状を検出し、強制します。プロデューサーが明確に定義されている場合はスキーマを登録し、役立つ場合はコードバインディングを使用して型付きモデルを生成します。

以下が必要な場合はEventBridgeを選択します:

よりシンプルなファンアウトや保証されたキューセマンティクスが必要な場合は、直接SNS/SQSを選択します:

SNSとSQSによるメッセージング(DLQ、可視性タイムアウト)

SNSはpub/subプッシュサービスであり、SQSはプルセマンティクスを持つ耐久性のあるキューです。高信頼性の処理には、SNS -> SQS -> Lambdaパターンを優先して、取り込みと処理を分離し、再試行と可視性を制御できるようにします。SQSのリドライブポリシー (

undefined

) を設定してmaxReceiveCountを超えた後にメッセージをDLQに移動させ、早すぎる再配信を避けるために可視性タイムアウトを十分に長く設定します(推奨:可視性 >= 関数タイムアウト * 2)。FIFOの要件には、SQS FIFOまたはSNS FIFOをメッセージグループIDと共に使用して順序を保持し、重複排除IDを使用して重複を回避します。

デッドレター処理のオプションと使用場面:

べき等性は不可欠です。DynamoDBの条件付き書き込み(ConditionExpression attribute_not_exists(pk) を使用したPutItem)、TTL付きで保存されたべき等性トークン、または厳密に1回のセマンティクスのためのSQS FIFOの重複排除を使用して、べき等なハンドラを実装します。

関数のアクセス許可、ロール、最小権限

Lambdaの実行ロールと関数のリソースポリシーには最小権限を適用します。まずCloudWatch Logs用のAWSLambdaBasicExecutionRoleから始め、次にサービスに対して明示的なリソースARN(例:arn:aws:dynamodb:region:acct:table/MyTableに対するdynamodb:PutItem)を付与します。特定のARNが可能な場合は、Resource: "*"のようなワイルドカードを避けます。アクションとリソースでスコープを限定したマネージドポリシーまたはカスタムポリシーを使用し、サービスからの呼び出し許可を追加する際には条件(aws:SourceAccountaws:SourceArn)を含めます。

undefined

判断基準:

サーバーレスの可観測性とトラブルシューティング

可観測性は、メトリクス、ログ、トレース、非同期配信ステータスをカバーする必要があります。主要なCloudWatchメトリクスは、InvocationsDurationErrorsThrottlesConcurrentExecutionsIteratorAge(ストリームおよびSQSトリガー用)です。非同期の失敗を可視化するには、AsyncEventInvokeメトリクスを監視し、DeadLetterErrorsThrottlesに対してCloudWatchアラームを設定します。X-Rayトレースを有効化(aws lambda update-function-configuration --function-name MyFn --tracing-config Mode=Active)して、サービス間のエンドツーエンドのトレースを取得し、コールドスタート、ダウンストリームのレイテンシー、例外を可視化します。

構造化JSONログとCloudWatch Logs Insightsクエリを使用して、エラーパターンを迅速に発見します。べき等性チェックを実装し、相関IDをログに記録します。分散トレーシングでは、自動的なコンテキストが失われるEventBridge/SNSフローの場合、イベントペイロード内でトレースIDを明示的に伝播させます。SQSイベントソースマッピングでは、ApproximateAgeOfOldestMessageを監視し、この値が増加している場合(バックプレッシャーやスロットリングを示唆)はアラームを設定します。LambdaのThrottlesメトリクスを捕捉してアラートを出し、プロビジョニングされた同時実行の使用状況とコストのトレードオフを追跡します。

よくある落とし穴と判断基準

実践的な問題:ユースケースシナリオ

AcmePayments社は、大量の支払いイベントをEventBridge経由で受信しており、ピーク時に断続的なLambdaのスロットリングと重複処理が発生しています。同社は、信頼性の高い処理、データ損失の防止、およびDynamoDBへの下流の負荷の抑制を必要としています。

  1. EventBridgeのカスタムバスと、支払いイベントに一致するルールを作成します。ターゲット設定にDeadLetterConfigRetryPolicyを持つ耐久性のあるターゲットとして、SQS FIFOキューを追加します。
  2. ダウンストリームのキャパシティに合わせて調整されたバッチサイズと、「関数のタイムアウト * 2」以上に設定された可視性タイムアウトで、LambdaがSQSキューをポーリングするように設定します(イベントソースマッピング)。
  3. DynamoDBへの書き込みバーストを制限するために、Lambdaに予約された同時実行を設定します(aws lambda put-function-concurrency ...)。低レイテンシーが要求される場合は、小規模なプールに対してプロビジョニングされた同時実行を実装します。
  4. payment-idをキーにしたDynamoDBの条件付き書き込みを使用してべき等性を実装し、クリーンアップのためにTTL付きでべき等性レコードを保存します。
  5. X-Rayトレースと、イベントに相関IDを含む構造化ログを有効にして処理を追跡します。ApproximateAgeOfOldestMessageThrottles、およびDLQメトリクスに対してCloudWatchアラームを設定します。

論理的根拠:EventBridgeをSQSに分離することで、耐久性のあるバッファリングとリトライのセマンティクスが提供されます。予約された同時実行はダウンストリームのDynamoDBをバーストから保護し、べき等性は重複を防ぎ、トレース/アラームは障害モードに対する運用上の可視性を提供します。


データベースとキャッシング · すべてのドメイン · コスト管理とリソースタギング

これらの問題を練習する → · ExamRoll.ioで時間制限付き練習 →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

試験に合格する →

Amazonを閲覧 →

Related guides

オールインワンアクセス

1つのサブスクリプション。すべての試験。

すべてのプランで、無制限の回答検索、模擬試験、AI解説、および完全なリソースライブラリが利用可能 — 20以上の言語に対応。

月額
24.87
Just €0.83/day
すべて含まれています:
  • 無制限の回答検索
  • 無制限の模擬試験
  • AIを活用した解説
  • 完全なリソースライブラリ
  • 20以上の言語
  • 毎週のコンテンツ更新
  • 特典 & 紹介
  • 優先サポート
無料トライアルを開始

クレジットカード不要*

ベストバリュー
12ヶ月
179.87
Just €0.49/daySave 40%
すべて含まれています:
  • 無制限の回答検索
  • 無制限の模擬試験
  • AIを活用した解説
  • 完全なリソースライブラリ
  • 20以上の言語
  • 毎週のコンテンツ更新
  • 特典 & 紹介
  • 優先サポート
無料トライアルを開始

クレジットカード不要*

✓ 無料プランが含まれています · ✓ いつでもキャンセル可能 · ✓ すべてのプランで製品の全機能が利用可能