クイズの説明
Step 5「サービスメッシュを導入する」で学んだ内容の理解度を確認します。全8問、80%(7問)以上正解で合格です。
問題
Q1. サービスメッシュの主な役割はどれですか?
- A) アプリケーションのビジネスロジックを管理する
- B) サービス間通信の制御・セキュリティ・可観測性をインフラ層で提供する
- C) データベースの接続プーリングを管理する
- D) CI/CDパイプラインの自動化
答えを見る
正解: B
サービスメッシュはサービス間通信に関する横断的関心事(トラフィック制御、mTLS、リトライ、可観測性)をアプリケーションコードから分離し、インフラ層(サイドカープロキシ)で提供します。ビジネスロジックはアプリケーション側の責務です。
Q2. Istioのアーキテクチャで「データプレーン」を担うコンポーネントはどれですか?
- A) Istiod
- B) Envoy Proxy
- C) Kubernetes API Server
- D) Prometheus
答えを見る
正解: B
Envoy Proxyがデータプレーンとして各Pod にサイドカーとしてデプロイされ、実際のトラフィック処理を行います。Istiodはコントロールプレーンとして設定の配布や証明書管理を担当します。
Q3. カナリアデプロイメントの説明として正しいものはどれですか?
- A) 全トラフィックを新バージョンに一度に切り替える
- B) 新バージョンにトラフィックの一部(例: 5%)を段階的に振り分ける
- C) 2つのバージョンを同時に稼働させ、ユーザーの選択で切り替える
- D) テスト環境でのみ新バージョンを検証する
答えを見る
正解: B
カナリアデプロイは新バージョンに少量のトラフィック(5-10%)を振り分け、問題がないことを確認しながら段階的に比率を上げていく手法です。「炭鉱のカナリア」が由来で、小さなリスクで本番環境の問題を早期発見できます。
Q4. サーキットブレーカーが「Open」状態になる条件はどれですか?
- A) 全てのリクエストが成功した時
- B) 連続したリクエストの失敗率が閾値を超えた時
- C) サーバーのCPU使用率が100%に達した時
- D) ネットワーク帯域が上限に達した時
答えを見る
正解: B
サーキットブレーカーは連続した失敗率が閾値(例: 50%)を超えると「Open」状態に遷移し、以降のリクエストを即座に拒否します。一定時間後に「Half-Open」状態で少量のリクエストを試行し、成功すれば「Closed」に戻ります。障害の連鎖を防ぐパターンです。
Q5. mTLS(Mutual TLS)の特徴はどれですか?
- A) サーバー側のみが証明書を提示する
- B) クライアントとサーバーの双方が証明書を提示し、相互認証を行う
- C) 通信は暗号化するが認証は行わない
- D) IPアドレスベースのアクセス制御を行う
答えを見る
正解: B
mTLS(Mutual TLS)はクライアントとサーバーの双方が証明書を提示し、相互に認証を行います。Istioでは全サービス間通信に自動的にmTLSを適用でき、ゼロトラストセキュリティの基盤となります。証明書のローテーションもIstioが自動管理します。
Q6. サービスディスカバリの目的はどれですか?
- A) サービスのソースコードを検索する
- B) サービスのIPアドレスやポートを動的に解決し、通信先を特定する
- C) サービスのログを集約する
- D) サービスのデプロイバージョンを管理する
答えを見る
正解: B
サービスディスカバリは、動的に変化するサービスインスタンスのネットワーク位置(IP、ポート)を解決する仕組みです。Kubernetesでは DNS ベースの発見(Service名による名前解決)が標準で、Istioではさらに高度なルーティングルールを適用できます。
Q7. Envoyのロードバランシングアルゴリズムで「Least Connections」の動作はどれですか?
- A) ランダムにバックエンドを選択する
- B) ラウンドロビンで順番に振り分ける
- C) アクティブな接続数が最も少ないバックエンドに振り分ける
- D) レスポンスタイムが最も短いバックエンドを選択する
答えを見る
正解: C
Least Connectionsはアクティブな接続数が最も少ないバックエンドインスタンスにリクエストを振り分けます。処理時間が不均一なサービスに適しており、重い処理中のインスタンスを避けて負荷を均等に分散します。
Q8. サービスメッシュ導入の最大のトレードオフはどれですか?
- A) コードの書き換えが必要
- B) サイドカープロキシによるレイテンシ増加とリソースオーバーヘッド
- C) 特定のプログラミング言語に限定される
- D) オンプレミスでは使用できない
答えを見る
正解: B
サービスメッシュの最大のトレードオフは、各Podにサイドカープロキシが追加されることによるレイテンシ増加(1-3ms程度)とメモリ/CPU消費の増加です。サービス数が増えると全体のリソースオーバーヘッドが大きくなります。コード変更は最小限で、言語非依存です。
結果
7問以上正解の場合
合格です。 サービスメッシュの概念と実践を理解しています。
「サービスメッシュでインフラ層の課題を解決できるようになったな。いよいよ移行計画を総まとめしよう」 — 佐藤CTO
6問以下の場合
もう少し復習しましょう。
- Q1-Q2を間違えた場合 → Step 5-1「サービスメッシュ入門」を復習
- Q3-Q4を間違えた場合 → Step 5-3「トラフィック管理」を復習
- Q5-Q8を間違えた場合 → Step 5-2/5-4「Istio/Envoyとサービスディスカバリ」を復習