はじめに
AZ-204(Azure Developer Associate)を5月末に取得したので、次のステップとして AZ-400(DevOps Engineer Expert)を受けてきました。
AWS・Google の DevOps 系資格はすでに持っていて、元々 SRE をやっていたので「Azure でも早めに Expert レベルを取っておきたい」という気持ちで受験を決めました。AZ-400 は Expert レベルなので、前提として AZ-104 か AZ-204 の取得が必要です。
この記事は試験前に整理したメモを、合格後に見直して書いたものです。自分用ですが、AZ-204 取得後に AZ-400 を考えている人の参考にもなれば。
結果・勉強時間
- スコア:754点(合格ライン 700点)
- 勉強時間:約15〜20時間(1週間、1日1時間ペース)
- 使用教材: Microsoft Learn + Udemy(主に Udemy)
AZ-204 との大きな違い
AZ-204 は「コードを書く」試験で、C# SDK の穴埋めやサービスの選び方が問われます。AZ-400 は「プロセスを設計する」試験で、YAML パイプラインとデプロイ戦略が中心です。
| 観点 | AZ-204 | AZ-400 |
|---|---|---|
| レベル | Associate | Expert |
| 焦点 | アプリ開発(SDK・コード) | パイプライン・自動化・プロセス |
| コード問題 | C# SDK の穴埋め | YAML パイプライン定義 |
| 主なツール | Azure SDK, CLI | Azure DevOps, GitHub Actions |
| 問われる視点 | 「どう実装するか」 | 「どう自動化・運用するか」 |
AZ-204 の知識がそのまま活きる部分 ✅
- Managed Identity / Key Vault → パイプラインのシークレット管理
- App Service Deployment Slots → Blue-Green デプロイ戦略
- ACR → パイプラインでのイメージビルド&プッシュ
- Application Insights → デプロイ後の品質監視
AZ-400 で新たに必要な知識 🆕
- Azure DevOps / GitHub Actions の YAML 構文
- ブランチ戦略(Trunk-based、Git Flow 等)
- デプロイ戦略(Blue-Green、Canary、Ring、Feature Flags)
- GitHub Advanced Security(CodeQL、Dependabot、Secret Scanning)
- DORA メトリクス
- IaC(Bicep、Terraform、ARM)
AWS との比較
AZ-400 の試験範囲は git・パイプライン系が中心なので、AWSのマネージドサービスと1対1で対応するわけではありません。ただ、概念レベルで対応付けておくと理解が早いです。
パイプライン・CI/CD ツール
| Azure | AWS | 役割 |
|---|---|---|
| Azure Pipelines | AWS CodePipeline + CodeBuild | CI/CD パイプライン |
| GitHub Actions | GitHub Actions(共通) | ワークフロー自動化 |
| Azure Repos | AWS CodeCommit | Git リポジトリ |
| Azure Artifacts | AWS CodeArtifact | パッケージ管理 |
| Azure Boards | Jira / GitHub Issues | タスク・スプリント管理 |
セキュリティスキャン
| Azure / GitHub | AWS | 役割 |
|---|---|---|
| GitHub Advanced Security(CodeQL) | Amazon CodeGuru / Inspector | 静的コード解析(SAST) |
| Dependabot | Inspector(依存関係スキャン) | 依存関係の脆弱性検出 |
| Secret Scanning | Macie(一部) | シークレット漏洩検出 |
IaC ツール
| Azure | AWS | 備考 |
|---|---|---|
| Bicep | CloudFormation | それぞれのクラウド専用 IaC |
| Terraform | Terraform | マルチクラウド対応(共通) |
| ARM テンプレート | CloudFormation(JSON) | どちらも JSON 形式で冗長 |
認証・シークレット管理
| Azure | AWS | 役割 |
|---|---|---|
| Workload Identity Federation | OIDC(IAM Roles for GitHub Actions) | シークレットレスのクラウド間認証 |
| Key Vault 連携変数グループ | Secrets Manager / Parameter Store | パイプラインのシークレット管理 |
| Managed Identity | IAM Role(EC2/Lambda 等) | リソース間のパスワードレス認証 |
AZ-400 はツールの概念よりも「どのシナリオでどれを選ぶか」が問われます。AWS 経験があれば対応付けで理解しやすいですが、Azure 固有の YAML 構文や命名規則(
environment、deployment、strategy等)は素直に覚える必要があります。
最低限押さえておきたい10項目 🔑
1. YAML パイプラインの基本構造
試験の半分以上がパイプライン関連です。構造は暗記しておくと安心です。
# Azure Pipelines
trigger:
- main
stages:
- stage: Build
jobs:
- job: BuildJob
steps:
- task: DotNetCoreCLI@2
- stage: Deploy
dependsOn: Build
jobs:
- deployment: DeployWeb
environment: 'production'
strategy:
runOnce:
deploy:
steps:
- task: AzureWebApp@1
キーワードまとめ:trigger / pool / stages / jobs / steps / deployment / environment / strategy / dependsOn / condition
2. デプロイ戦略の使い分け
| 戦略 | 概要 | 使いどころ |
|---|---|---|
| Blue-Green | 2環境を切り替え | ゼロダウンタイム・即時ロールバック |
| Canary | 少数ユーザーに先行展開 | リスク最小化 |
| Rolling | インスタンスを順次更新 | ダウンタイム最小化 |
| Ring | 内部→限定→全体と段階展開 | 大規模組織 |
| Feature Flags | 機能をフラグで制御 | デプロイとリリースの分離 |
3. シークレット管理の鉄則
- Key Vault 連携変数グループ:YAML にシークレットを直書きしない。ランタイムで取得
- Workload Identity Federation:シークレットレスで Azure に接続。最新推奨
- GitHub Secrets:リポジトリ / 環境 / 組織レベルで管理
- ログマスキングで出力変数を保護する
4. セキュリティスキャン3点セット(GitHub Advanced Security)
| ツール | 対象 |
|---|---|
| CodeQL | 静的コード解析(SAST) |
| Secret Scanning | コミットされたシークレット検出 |
| Dependabot | 依存関係の脆弱性 + 自動 PR |
5. 認証方式の使い分け
| 方式 | 用途 |
|---|---|
| Managed Identity | Azure 内リソース間。パスワードレス。推奨 |
| Service Principal | 外部ツールから Azure へのアクセス |
| Workload Identity Federation | シークレットレスでクラウド間接続。最新推奨 |
GITHUB_TOKEN |
ワークフロー内自動生成。リポジトリスコープ |
6. ブランチ戦略の使い分け
| 戦略 | 特徴 | 向いている場面 |
|---|---|---|
| Trunk-based | main に直接 / 短命ブランチ | 高頻度デプロイ、小チーム |
| Feature Branch | 機能ごとにブランチ | 中規模チーム |
| Git Flow | develop/feature/release/hotfix | リリースサイクルが長い |
7. IaC ツールの特徴
| ツール | 特徴 |
|---|---|
| Bicep | ARM の簡略構文。Azure 推奨 |
| Terraform | マルチクラウド。HCL 構文 |
| ARM テンプレート | JSON 形式。冗長だが詳細制御可 |
8. DORA メトリクス(頻出)
開発生産性の指標として頻出です。4つ全部と「良い方向」を覚えておきましょう。
| メトリクス | 意味 | 良い方向 |
|---|---|---|
| リードタイム | コミット→本番デプロイの時間 | 短い ↓ |
| デプロイ頻度 | 本番デプロイの回数 | 多い ↑ |
| MTTR | 障害→復旧の時間 | 短い ↓ |
| 変更失敗率 | デプロイ後の障害発生率 | 低い ↓ |
9. パッケージ管理
- Azure Artifacts:NuGet / npm / Maven / Python / Universal Packages
- upstream sources:公開レジストリのプロキシとして使う
- SemVer(MAJOR.MINOR.PATCH)でバージョニング
10. 問題文キーワードと答えの対応表
| 問題文のキーワード | 答え |
|---|---|
| パスワードレス接続 | Workload Identity Federation |
| ゼロダウンタイムデプロイ | Blue-Green / Slots swap |
| 段階的ロールアウト | Canary / Ring |
| デプロイとリリースを分離 | Feature Flags |
| コードの脆弱性を自動検出 | CodeQL |
| 依存関係の脆弱性 | Dependabot |
| コミットされたシークレット | Secret Scanning |
| 開発生産性の指標 | DORA メトリクス |
| 承認ゲートが必要なデプロイ | environments + approvals |
| パイプラインの再利用 | YAML テンプレート |
| 大きなバイナリファイル | Git LFS |
| 巨大リポジトリの高速化 | Scalar |
おわりに
AZ-204 を持っていれば、差分で必要なのは Azure DevOps / GitHub Actions の YAML 構文とデプロイ戦略の使い分けが中心です。元 SRE なので概念は慣れていましたが、Azure 固有の YAML キーワードは素直に手を動かして覚えました。
試験の感想:
- AWS・Google DevOps 試験と比べると、YAML の穴埋め問題が多くて実践的な印象
- 「どのシナリオでどのツールを選ぶか」の判断問題が多い
- パイプラインが全体の 50% 超なので、ここを落とすと他で挽回できない
- GitHub Advanced Security(CodeQL / Dependabot / Secret Scanning)は3つセットで覚えると楽
参考リンク
- Microsoft Learn AZ-400
- Study guide for Exam AZ-400 - Microsoft Learn(Skills Measured: 2026年4月24日版)
注意事項:本ブログに掲載している内容は、私個人の見解であり、所属する組織の立場や戦略、意見を代表するものではありません。あくまでエンジニアとしての経験や考えを発信していますので、ご了承ください。