上下にスクロールするかキーボードの上下キーを使うと、次の学習カードへ進めます。

イントロ

伸縮性と疎結合

混雑を受け止め、部品を直接つなぎすぎない

アクセスが急に増えるサービスでは、処理能力を増やすだけでなく、部品同士をゆるくつなぐことが大切です。キューは混雑のクッションになります。

定義

疎結合

教科書では
システムの部品同士を直接依存させすぎず、片方の遅れや障害が全体へ広がりにくくする設計。
言いかえると
疎結合では、処理の間にAmazon SQSのようなキューを挟みます。Auto Scalingは負荷に合わせて処理側の台数を増減します。
手順

混雑に強い処理の流れ

  1. 1

    入口で受ける

  2. 2

    キューに入れる

  3. 3

    処理台数を増やす

  4. 4

    失敗を再試行する

要点

判断の合図

問題文では、すぐ処理する必要があるか、いったんキューに逃がせるかを見る。

  1. 1

    急増負荷は伸縮で受ける

  2. 2

    非同期ならキューを検討する

  3. 3

    大きい1台より複数台で考える

図解伸縮性と疎結合の設計判断を短いラベルで整理した図
受付と処理の間にSQSを挟む図です。直接つなぎすぎないことで、混雑や一時障害の影響を小さくします。
場面
セール中に注文が一気に増える。
順に考えると
注文受付はキューへ入れ、裏側のワーカーを増やして順に処理します。受付と処理を分けるため、一時的な混雑を吸収できます。
ここが結論
すぐ処理しなくてよい仕事は、キューで切り離す候補になります。
注意

大きい1台は限界がある

確認

確認テスト

Q1

受付と後続処理を切り離し、混雑を吸収したい場合に最も近いサービスはどれですか。

まとめ

まとめ

  1. 1

    Auto Scalingは台数を伸縮する

  2. 2

    SQSは処理を切り離す

  3. 3

    疎結合は影響を広げにくい

  4. 4

    非同期処理はキューを見る