QUIZ 30分

クイズの説明

Step 3「アーキテクチャ選択肢を比較検討しよう」の理解度を確認します。全8問、80%以上正解で合格です。


問題

Q1. Strangler Figパターンの説明として正しいものはどれですか?

  • A) モノリスを一度に全て書き換える手法
  • B) 新機能を新システムに実装し、段階的にモノリスの機能を置き換える手法
  • C) マイクロサービスを1つのモノリスに統合する手法
  • D) データベースを分割する手法
答えを見る

正解: B

Strangler Figパターンは、既存のモノリスの前にファサードを置き、新機能は新システムで実装しつつ、既存機能も段階的に移行していく手法です。リスクを最小化しながら移行できます。


Q2. イベント駆動アーキテクチャにおけるChoreographyとOrchestrationの違いとして正しいものはどれですか?

  • A) Choreographyは中央コーディネーターがあり、Orchestrationはない
  • B) Choreographyはサービスが互いのイベントに反応し、Orchestrationは中央コーディネーターが制御する
  • C) 両者は同じ概念の別名である
  • D) Choreographyは同期通信、Orchestrationは非同期通信
答えを見る

正解: B

Choreography(振り付け)では各サービスが他のサービスのイベントを購読し自律的に動作します。Orchestration(オーケストレーション)では中央のコーディネーター(オーケストレーター)がワークフロー全体を制御します。


Q3. サーバーレスアーキテクチャのコールドスタート問題について正しい説明はどれですか?

  • A) サーバーが物理的に冷却される問題
  • B) 一定時間リクエストがないとインスタンスが破棄され、次回起動時にレイテンシが増加する問題
  • C) サーバーの起動時にデータが失われる問題
  • D) サーバーレスでは発生しない問題
答えを見る

正解: B

コールドスタートは、しばらくリクエストがないとインスタンスが破棄(または凍結)され、次のリクエスト時にランタイムの初期化が必要となり、レスポンスタイムが通常より長くなる問題です。Provisioned Concurrencyなどで緩和できます。


Q4. CQRSパターンを採用すべきケースとして最も適切なのはどれですか?

  • A) 単純なCRUDアプリケーション
  • B) 読み取りと書き込みのパターンが大きく異なり、それぞれ独立してスケールしたい場合
  • C) データベースが1つしか使えない場合
  • D) チームメンバーが1人の場合
答えを見る

正解: B

CQRSは、読み取りと書き込みの要件が大きく異なる場合に有効です。例えば、書き込みは正規化されたモデルで整合性を保ちつつ、読み取りは非正規化されたビューで高速に提供するといった使い分けができます。


Q5. イベントソーシングの主なメリットとして正しいものはどれですか?

  • A) データベースのストレージ使用量が少ない
  • B) 実装がシンプルになる
  • C) すべての状態変更の完全な履歴が保持され、任意の時点の状態を再構築できる
  • D) リアルタイム処理が不要になる
答えを見る

正解: C

イベントソーシングでは、状態の変更をイベントとして記録します。現在の状態はイベントを順番に再生することで導出されます。完全な監査証跡が得られ、任意の時点の状態を再構築できるのが最大のメリットです。


Q6. Modular Monolithの特徴として正しいものはどれですか?

  • A) マイクロサービスと同じデプロイモデル
  • B) 単一のデプロイメント単位だが、内部がモジュール境界で明確に分離されている
  • C) モジュール間は必ずHTTP APIで通信する
  • D) データベースはモジュールごとに分離する必要がある
答えを見る

正解: B

Modular Monolithは、単一のアプリケーションとしてデプロイされますが、内部は明確なモジュール境界で分離されています。モジュール間はインメモリの関数呼び出しやイベントで通信し、将来的なマイクロサービス分離の準備にもなります。


Q7. Apache KafkaとRabbitMQの違いとして正しいものはどれですか?

  • A) Kafkaはメッセージを消費後に削除し、RabbitMQは保持する
  • B) Kafkaはログベースでメッセージを保持し、RabbitMQはメッセージを消費後にキューから削除する
  • C) 両者は完全に同じ機能を持つ
  • D) RabbitMQの方がスループットが高い
答えを見る

正解: B

Kafkaは分散ログとしてメッセージを保持し、コンシューマーはオフセットで読み取り位置を管理します。RabbitMQは従来のメッセージキューで、メッセージはコンシューマーに配信後にキューから削除されます。


Q8. コンテナとサーバーレスの選択基準として最も適切なのはどれですか?

  • A) 常にサーバーレスを選ぶべき
  • B) 常にコンテナを選ぶべき
  • C) 長時間実行やカスタムランタイムが必要な場合はコンテナ、イベント駆動で短時間処理の場合はサーバーレスが適している
  • D) コスト面ではコンテナが常に安い
答えを見る

正解: C

コンテナは長時間実行プロセス、カスタムランタイム、常時接続が必要な場合に適しています。サーバーレスはイベント駆動、短時間処理、変動の大きいワークロードに適しています。ハイブリッドアプローチも有効です。


結果

7問以上正解の場合

合格です。 アーキテクチャスタイルの特徴とトレードオフを理解しています。次のStep 4ではトレードオフ分析の手法を学びます。

6問以下の場合

もう少し復習しましょう。 Step 3のレッスンを読み返し、各アーキテクチャスタイルの特徴と適用場面を重点的に復習してください。