アプリケーションエンジニアのための Azure Solutions Architect Expert ロードマップ

仕事でレガシーと向き合う日々のため、リスキルの一環としておよそ４か月で **Microsoft Certified: Azure Solutions Architect Expert** を取得したので、ここまでのロードマップをまとめます。

----

## なぜAzureか？

Microsoft Azure認定資格を選択した理由です。
個人的にも環境的にも色々とあるのですが、特に重要なファクターはこんな感じでしょう。

----

### シェア

クラウドプロバイダのシェア２位であり、さらなる拡大が見込まれるから

![Cloud Provider Market Share Trend](https://image.itmedia.co.jp/news/articles/2102/08/l_mt1626333_PK02-01.jpg)

AzureはActive DirectoryやMS Officeとの連携やオンプレミスとのハイブリッドクラウドなど、既存のビジネスやシステム資産のリフト＆シフトに強みを発揮します。Microsoftらしい囲い込み戦略ですね。

----

### ドキュメント

公式の学習ドキュメントが充実していて、学習にコストがかからないから

https://docs.microsoft.com/ja-jp/learn/azure/

Microsoft Learnでは、認定資格に対する体系的なラーニングパスが用意されていて学習範囲が明確です。ラーニングパスでは知識ベースだけでなくSandboxやLaboを利用して基本的な機能を実機確認でき、無料で学習できる範囲がとても広いです。

AWS Certified Solutions Architect Associate を取得する際は私も黒本を買って学習しましたが、合格体験記を読んでいてもかなりの人が参考書を購入しているようなので、これが不要なのは大きいですね。

----

### 更新

認定資格の更新に再受験が不要で、更新にコストがかからないから

https://docs.microsoft.com/ja-jp/learn/certifications/renew-your-microsoft-certification

再受験の代わりに無料のアセスメントに合格する必要がありますが、合格するまで何度でも受けられます。

AWS認定は研修についてきた無料バウチャーで取得したのですが、更新には50% OFFとはいえ受験料が必要なので更新するかと言われると、、、資格ビジネスではなく、継続的に学んでもらうことでその先のビジネスを期待するMicrosoftの姿勢は良いですね。

----

## Azure Solutions Architect Expert ロードマップ

本題です。
アプリケーションエンジニアが Azure Solutions Architect Expert を取得するまでのロードマップを策定します。

----

### 策定した人

ソフトウェアアーキテクチャのスペシャリスト（つまりアプリケーションエンジニア）です。
ハード？ネットワーク？Kubernetes？はー知らね知らね。

とはいえ、アプリ以外にも例えば以下のようなことはできます。

* Jenkinsはなんとなく使える。
* Vagrant、Dockerはなんとなく使える。
* Githubでライブラリ開発したり、なんとなくCI/CD組んでる。
* 気づけばDevOpsなアジャイル開発はなんとなくやっている。

事前に AWS Certified Solutions Architect Associate を取得したり、Alexaスキル作ったり（公開はしていない）、なんとなくクラウドっぽいことはしていますが、あくまでクラウド初学者という前提です。

----

### ロードマップの指針

ロードマップの指針は以下のとおりです。

* Azure Solutions Architect Expert 一点突破に拘らず、知識の蓄積を重視する
* 可能な限り、Azure Solutions Architect Expert 取得の難易度を下げる
* 得意なことを優先し、楽しくやってモチベーションを維持する

----

### 認定資格を理解する

戦略を決めるために、まずは認定資格を理解します。

----

#### カテゴリ

Azure認定の全体像を確認します。

https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4wyqh
![Upskill with Azure certifications](https://docs.microsoft.com/en-us/learn/certifications/posts/images/understanding-azure-poster.png)

「インフラ」「アプリ」「データと分析」が光の三原色のように重なり、「セキュリティ」がそれらを囲みます。そして **目的の Azure Solutions Architect Expert は三原色のド真ん中にあります。**

----

#### レベル

認定資格のレベル感を確認します。

https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE2PjDI
![](https://www.microsoftpartnercommunity.com/t5/image/serverpage/image-id/11398iF473A52B311A6ECF/image-size/large?v=v2&px=999)

Fundamentals、Role-Based、Specialityの３階層に分類され、Role-BasedはさらにAssociateとExpertに分類されます。 **Fundamentals（初級）・Associate（中級）・Expert（上級）と理解すれば概ね正しいです。**

----

#### 試験範囲

Azure Solutions Architect Expert の試験範囲を確認します。

https://docs.microsoft.com/ja-jp/learn/certifications/azure-solutions-architect/

必ず「評価されるスキル」を確認することをお勧めします。より詳細な要件はPDFに記載されているので、Google翻訳して目を通しておくと良いでしょう。

Azure Solutions Architect Expert の「評価されるスキル」から、 **AI、IoT、データサイエンスなどのスペシャリティな要素は範囲外** なことが分かります。今回は各認定資格の試験範囲も確認して、依存関係を理解しています。

----

### 取得すべき認定資格

ロードマップに含める認定資格を列挙します。

* ロードマップに三原色を含めます。もちろんセキュリティで囲むことも忘れてはいけません。
* 初学者はいきなりユニークモンスターを討伐してはいけません。ザコで経験を積みましょう。
* 範囲外の認定資格は忘れましょう。ご縁があればまた再会できます。

| Certification | Exams | Level | Category | Necessity |
|---|---|---|---|---|
| Azure Fundamentals | AZ-900 | Fundamentals | 全体 | 〇 |
| Azure Data Fundamentals | DP-900 | Fundamentals | データと分析 | 〇 |
| Security, Compliance, and Identity Fundamentals | SC-900 | Fundamentals | セキュリティ | △ |
| Azure Administrator Associate | AZ-104 | Associate | インフラ | 〇 |
| Azure Developer Associate | AZ-204 | Associate | アプリ | 〇 |
| Azure Database Administrator Associate | DP-300 | Associate | データと分析 | × |
| Azure Security Engineer Associate | AZ-500 | Associate | セキュリティ | 〇 |
| DevOps Engineer Expert | AZ-400 | Expert | インフラ／アプリ | ※ |
| Azure Solutions Architect Expert | AZ-303,304 | Expert | 全体 | 〇 |

※ DevOps Engineer Expert は必要はありませんが、過程で取得しやすいので含めます。

----

#### 認定資格の依存関係

認定資格（試験）の依存関係はだいたいこんな感じになります。
赤い線は知識的な依存を示し、黄色い線は前提資格としての依存を示します。

![Road Map](https://raw.githubusercontent.com/yoshikawaa/images/master/azure-solutions-architect-expert/flow.jpg)

知識的な依存関係は各認定資格の「評価されるスキル」から独断と偏見で決めています。細かく見ればもう少し複雑になるので、ある程度単純化しています。

Azureに限りませんが、資格試験に挑戦するにあたっては必ず試験範囲を確認すべきです。特に最新技術の資格はバージョンアップを繰り返し、書籍やネットで解説されていることやサンプル問題がすぐ古くなります。

----

### 今回のロードマップ

完成したロードマップはこちら。

```
AZ-900 > DP-900 > AZ-204 > AZ-104 > AZ-400 > (SC-900) > AZ-500 > AZ-303 > AZ-304
```

* 得意分野のAZ-204（開発者）とAZ-400（DevOps）は、可能な限り早いタイミングで取得しています。
**セオリーで言えばAZ-204ではなくAZ-104（管理者）から取得していくべき** です。しかし私ははっきり言えばインフラなんてつまらなくて苦手です。フルスタックエンジニアなんて丸投げの言い換えです。苦手なことから入ってペースを掴む前にモチベーションが失速することだけは、避けなければなりません。

* 必要性の薄いDP-300 はスルーしました。
これは **AZ-303における点数配分でデータベースの占める割合が非常に少なかった** ためです。学習に割ける時間が少ないため、DP-300を経ることによる多少の点数アップよりも、その他の知識がFIFOすることによる点数ダウンのほうが深刻な可能性があると判断しました。

----

## ロードマップの解説

ここからは、ロードマップにおける各試験（認定資格）を解説していきます。

各試験の難易度を★で評価しますが、あくまで私の特性とロードマップにおける評価で、一般的な難易度ではありません。

----

### AZ-900（Azure Fundamentals）★★☆☆☆

まずはAZ-900で、クラウドプラットフォームの概要、Azureで提供されるサービスの全体像を掴みます。

それなりの年数のエンジニアだと初級資格を取るのは恥ずかしいと思われる方もいるかもしれませんが、Microsoftの認定資格はロールベースです。 **Azure全体を見通すエントリポイントはAZ-900（ザコ）かAZ-303,304（ラスボス）しかない** ので、スルーは自殺行為です。

難しくはないですが、なるべく丁寧に学習しておくことをお勧めします。試験対策だけで雑に済ませると、以降の試験で苦労します。

----

### DP-900（Azure Data Fundamentals）★☆☆☆☆

次にDP-900で、データストレージやデータ分析の全体像を掴みます。

アプリケーションエンジニアとしてはアプリとデータベースは必須科目なので、概ね素直に受け入れやすいです。StorageやSQL Databaseのように以降の試験に当然の顔をして頻出するものから、Cosmos DBやData Factoryのようにアバン先生よろしく終盤まで登場しないものもあり、後でまた復習することになります。

----

### AZ-204（Azure Developer Associate）★★★★☆

ここからAssociateに入り、難易度が跳ね上がります。
ロールベースのため、概要的な知識だけではなく具体的なオプションや手順が問われるようになります。

AZ-204では、以降の試験で頻出するApp ServiceやFunctions・Logic Apps、さらにコンテナ化を通じて、Azureを利用した開発やデプロイの感覚を掴むことができます。

一般的にAZ-204は難所らしいですが、それでもAZ-204から入ることにはメリットがあります。それは、AZ-204がプラットフォームよりも **アプリケーションの実装に焦点を当てている** ことです。アプリケーションエンジニアとしては馴染みのある分野で、今までの経験を活かしやすいです。

当然ながら、MicrosoftなのでC#またはそれに準じた言語の開発経験があると入りやすいかと思います。

----

### AZ-104（Azure Administrator Associate）★★★☆☆

AZ‐204でAssociateの感覚を掴んだら、そろそろ苦手なプラットフォームに踏み込みます。

AZ-104はロードマップにおける知識の核です。
知識的にもコンピューティング、ストレージ、ネットワーク、監視とバックアップ、セキュリティやガバナンスと非常に広くなりますし、ポータルやAzure PowerShell/CLIで具体的なセッティングを行なうプラットフォーマーの実務能力が問われます。

決して難易度が高いわけではないと思いますが、 **量が多いので期間をとって計画的に学習していくことをお勧めします。** ここをクリアする頃には、獲得した知識量に充実感が芽生えているかもしれません。

----

### AZ-400（DevOps Engineer Expert）★★★☆☆

ここで寄り道してAZ-400を取得します。

AZ-400では開発プロセスを構築しプロジェクトを推進する力を問われます。
GithubやAzure DevOpsを利用したCI/CDを理解し、SREのような開発者としての姿勢を学びます。他の試験では基本的にAzure製品について学習しますが、 **AZ-400はラーニングパスからして一般的な開発プロセスやツールを中心に構成されており、** かなり毛色が違います。

私は経験値からそれほど難しくは感じませんでしたが、人によってはかなり難しく感じるかもしれません。

話が逸れますが、個人的に最も有意義だったのはAZ-400でした。
技術的な問題しか見ないアーキテクト（笑）や開発全体を下請けに丸投げしコストを丸呑みするPM（笑）、トレーサビリティ皆無なプロダクトを作り逃げする開発者たち（笑）など、開発プロセスを理解しない人々によりレガシーシステム化の悲劇が繰り返されてきました。特殊な例を除いて、私は最も大切なのはプロダクトではなくプロセスを構築することだと思っています。

さて、この寄り道はスルーしても良いのですが、 **２つの大きな意味があります。**

* AZ-104（管理者）、AZ-500（セキュリティ）ともに重厚長大なので、息切れを防止する。
* AssociateとExpertにレベル感の違いを実感し、射程圏内であることを理解できる。

----

### SC-900（Security, Compliance, and Identity Fundamentals）★★☆☆☆

寄り道から復帰し、セキュリティに入ります。

最短ルートを目指す場合、SC-900は基本的にはスルー推奨です。

SC-900ではプラットフォームセキュリティの基礎的な理解から、AzureおよびMS 365のセキュリティとコンプライアンスを学習します。 **今回のロードマップではMS 365は完全にノイズなので、学習しないほうが良い** とさえ言えます。ただ、Azureのプラットフォームセキュリティについては綺麗にまとまっているので、AZ-500の前哨戦としてピックアップして学習するのはお勧めです。

----

### AZ-500（Azure Security Engineer Associate）★★★★☆

ロードマップ後半の難所、AZ-500です。

AZ-500で扱うActive Directoryはそれだけで一冊執筆できるほどのボリュームなのと、オンプレミス連携の側面も非常に強いため、 **実感として理解するのがとても難しかったです。** ここまではラーニングパス中心の学習で問題ありませんでしたが、AZ-500はある程度リファレンス中心の学習に切り替えています。

また、セキュリティはAzureサービスに適用されるため、前提としてAZ-104やAZ-204を理解していないと話にならない部分があります。初学者としては、ここでの理解度がロードマップの成否を握るのではないかと思います。

----

### AZ-303（Azure Solutions Architect Expert/1）★☆☆☆☆

本丸その１です。

ここまでのロードマップで炎の剣（AZ-204）、霞の鎧（AZ-104）、力の盾（AZ-500）が揃ったので、恐れることはありません。「評価されるスキル」を見ると９割近くがこれらの試験範囲と被っており、またAZ-303は技術編のため必然的にAssociateと似通ったスキルセットになると思われます。

AZ-303とAZ-304の順序に正解はありませんが、ロードマップを短期間に駆け抜ける場合はAZ-303からの受験に優位性を感じます。

----

### AZ-304（Azure Solutions Architect Expert/2）★★☆☆☆

本末その２です。

AZ-304はデザイン編のため、AZ-303とはかなり問われるスキルの毛色が違います。また「評価されるスキル」を見るとAZ-303では登場しないサービスについても問われることが分かります。この試験のラーニングパスだけでなく、 **改めてロードマップで登場したサービスの概要を振り返ると良いでしょう。**

----

## まとめ

ロードマップ策定により、計画的に知識を蓄積して無理なく Azure Solutions Architect Expert を取得することができました。

Associateで急に試験自体の難易度が上がってちょっと挫けそうになりましたが、 Developer から取り組むことによりニガテ意識を持たずに続けられたのが良かったです。もちろん人によってはセオリー通り Administrator から取り組むほうが良いと思います。

----

### 実績

参考までに、ロードマップに基づいた私の取得実績を記しておきます。

* 2021/06 : AZ-900（Azure Fundamentals）
* 2021/06 : DP-900（Azure Data Fundamentals）
* 2021/06 : AZ-204（Azure Developer Associate）
* 2021/07 : AZ-104（Azure Administrator Associate）
* 2021/08 : AZ-400（DevOps Engineer Expert）
* 2021/08 : SC-900（Security, Compliance, and Identity Fundamentals）
* 2021/08 : AZ-500（Azure Security Engineer Associate）
* 2021/09 : AZ-303（Azure Solutions Architect Expert/1）
* 2021/09 : AZ-304（Azure Solutions Architect Expert/2）

学習はラーニングパスとオンライン問題集で、研修などは受講していません。

----

### 補足

* Azure Solutions Architect Expert が改訂されています。既に取得した認定資格は更新により保持されますが、これから挑戦される方や挑戦中の方は意識する必要がありそうです。
    - 2021/11/16 AZ-305 が追加 -> Azure Administrator Associate (AZ-104) + AZ-305 で認定
    - 2022/3/31 AZ-303 + AZ-304 が廃止

* 新たに Azure Network Engineer Associate (AZ-700) や Azure Cosmos DB Developer Specialty (DP-420) が追加されるなど、新規認定資格の体系が少しずつ変わっていくので、ロードマップも少しずつ見直していく必要がありそうです。