2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

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 構文や命名規則(environmentdeploymentstrategy 等)は素直に覚える必要があります。

最低限押さえておきたい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つセットで覚えると楽

参考リンク

注意事項:本ブログに掲載している内容は、私個人の見解であり、所属する組織の立場や戦略、意見を代表するものではありません。あくまでエンジニアとしての経験や考えを発信していますので、ご了承ください。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?