AWS面接の質問
文責 Aaron Cao · 更新

AWSの面接で試されるのは、サービスカタログを暗唱できるかどうかではなく、実際に本番環境でサービスを運用した経験があるかどうかだ。VPCネットワーキング、IAM、ストレージクラス、高可用性に関する基本的な質問に加え、コストや障害、移行についてのシナリオ問題も出題される。そこではサービス名そのものよりも、思考のプロセスが重視される。
AWSの面接官は実際に何を見ているのか?
サービス一覧を読んでも、面接がどんなものになるのかはまだ見えてこない。そのギャップはごく普通のことであり、このセクションはそれを埋めるためにある。AWSの面接ラウンドは、あなたが何かの名前を言えるかどうかではなく、実際にそれを運用したことがあるかどうかを見極めるために設計されている。
そのパターンは追加質問で表れる。面接官がどのサービスを使うかを尋ね、あなたは正しく答える。次に来るのは、なぜ別のサービスではないのかという質問だ。実際にそのワークロードを運用した経験がある人は、請求書や障害、移行の経験から答えを導き出す。ドキュメントを読んだだけの人はそこで言葉に詰まる。AWSの面接を決めるのは、最初の質問ではなく、この二番目の質問だ。
繰り返し登場するラウンドは三種類ある。ネットワーキング、アイデンティティ、ストレージ、コンピューティングについての基礎ラウンド、制約条件のもとで何かを設計するシナリオ・設計ラウンド、そして症状を提示されて何を確認するかを問われるトラブルシューティングラウンドだ。求められる深さは経験年数に応じて上がっていくが、全体の形は変わらない。他の職種やトピック別の質問集は面接質問ハブにまとめてある。
AWSでよく聞かれる基本的な質問とは?
以下は、AWSの面接で繰り返し登場する基礎的な質問を、ラウンドが実際に構成されやすい形でグループ分けしたものだ。
ネットワーキングとVPC
- VPCとは何か?パブリックサブネットとプライベートサブネットはどう違うか?
- NATゲートウェイが必要になるのはどんなときで、どんなコストがかかるか?
- セキュリティグループとネットワークACLはどう違うか?
- 二つのVPCをどのように接続するか?ピアリングが適さないのはどんなときか?
アイデンティティとセキュリティ
- IAMのロール、ポリシー、ユーザーの違いを説明し、それぞれをいつ使うかを述べよ。
- EC2インスタンスは、鍵を保存せずにどうやって認証情報を取得するのか?
- 実際のポリシーにおいて、最小権限の原則はどのような形で表れるか?
- AWSでシークレットをどのようにローテーションし、監査するのか?
ストレージとデータベース
- S3のストレージクラスを比較し、それぞれをいつ使うかを説明せよ。
- EBSとインスタンスストアの違いは何か?
- RDSではなくDynamoDBを選ぶのはどんなときで、その代わりに何を諦めることになるか?
- リードレプリカとマルチAZ構成はどう違うか?
コンピューティングと可用性
- Auto Scalingグループを説明し、どの指標に基づいてスケールさせるかを述べよ。
- Lambdaが誤った選択になるのはどんなときか?
- アベイラビリティーゾーンとリージョンの違いは何か?
- アベイラビリティーゾーン全体が失われた場合に備えて、どのように設計するか?
シナリオ問題にはどう答えるべきか?
シナリオ問題は、暗記できる正解が存在しないからこそ、候補者の差が最も出る部分だ。典型的な出題例は次のとおりだ。
- 月額の請求額が倍になったのに、トラフィックは増えていない。どうやって原因を突き止めるか?
- 一回のリクエストでは扱いきれないほど大きなファイルに対応するアップロードパイプラインを設計せよ。
- あるサービスが、特定のアベイラビリティーゾーンでだけ遅くなっている。まず何を確認するか?
- オンプレミスのデータベースを、ダウンタイムを最小限に抑えてAWSに移行する。その手順を説明してほしい。
- このアーキテクチャをリージョン規模の障害に耐えられるようにするにはどう設計するか、またそれにはどんなコストがかかるか?
毎回同じ順序で答えるとよい。まず自分が重要だと考える制約条件を言い直し、次に自分の前提を声に出し、サービスを選び、最後に自分が受け入れたトレードオフを名指しする。面接官が本当に聞いているのはこの最後のトレードオフの一文であり、それがその選択の代償を理解しているかどうかを証明するからだ。
中規模企業のプラットフォーム職に応募したあるバックエンドエンジニアが、アップロードパイプラインの設計を求められた。彼女はすぐにS3の名前を挙げるのではなく、まずアップロードがユーザー向けかどうか、ファイルはどれくらいの大きさになりうるかを尋ねた。そのうえでマルチパートアップロードを伴う署名付きURLの方式を選び、アプリケーションサーバー経由でルーティングする案は却下したと説明した。それではスループットがスケーリング上の問題になってしまうからだ。サービスの選択自体はありふれたものだったが、記憶に残ったのはその推論の過程だった。
どのように練習すればよいか?
質問リストを読むことは練習にならない。AWSの面接でよくある失敗パターンは、答えを知っているのに、それを構造のない独り言のように話してしまうことであり、これは実際に声に出して話してみて初めて明らかになる。
上のリストを一つずつ声に出して練習し、制約・前提・選択・トレードオフという四段階の順序を必ず守るようにする。いくつか録音して聞き返し、自分の答えが構造を失う瞬間を確認するとよい。同じ質問セットを模擬面接として実施すれば、追加質問という要素も加わる。これは一人では練習できない部分であり、AWSの面接官が最も重視する部分でもある。
はっきりさせておくべき限界が一つある。AWSの選考の中には、リアルタイムの会話ではなく、自動化された、録画される、あるいは監督付きの評価であるものも存在する。そうした形式は、SubcueAIを含むどんなライブアシスタントの対象外だ。そこで役に立つのは事前の準備だけであり、どの形式がどのように扱われるかは面接形式のハブで説明している。