AWS Cloud Practitioner から見た Azure Fundamentals(AZ-900)

本記事は、*AWS Certified Cloud Practitioner* である筆者が *Microsoft Certified: Azure Fundamentals(AZ-900)* を受験して合格した体験から気づいたことなどを綴ったものです。
主に記憶の範囲、および、試験の同意事項等に反しない範囲で、両者の違いに焦点を当てて記載しています。
# 認定資格の比較
|項目|Azure Fundmentals|AWS Cloud Practitioner|
|:-:|:--|:--|
|受験対象|クラウドベースのソリューションやサービスを使い始めたばかりの方や、Azureの初心者の方を対象としています。|・非IT系で、AWSクラウドのキャリアを模索している方<br>・営業/マーケティングビジネスアナリストのロールで、AWSクラウドについてステークホルダーや顧客とより効果的にコミュニケーションを図りたい方<br>・オンプレミスITまたはクラウドのロールに就いているが、AWSクラウドは初めてであり、ロールベースのAWS認定に取り組む前に入門書が必要な方|
|学習内容(評価されるスキル)|・クラウドの概念に関する説明<br>・Azureのアーキテクチャとサービスについて説明する<br>・Azureの管理とガバナンスについて説明する|・AWSクラウドのTサービスおよびその用途のベーシックな知識<br>・AWSのコアサービスとユースケース、課金、料金モデル、セキュリティコンセプト、クラウドがビジネスに与える影響についての知識がある|

* 表中の内容は下記より引用  
  * [Azure Fundamentals:受験対象](https://learn.microsoft.com/ja-jp/certifications/exams/az-900/)  
  * [Azure Fundamentals:学習内容](https://learn.microsoft.com/ja-jp/certifications/azure-fundamentals/)  
  * [Cloud Practitioner:受験対象、学習内容](https://aws.amazon.com/jp/certification/certified-cloud-practitioner/)  
### 所感
* 両者とも初心者や非IT人材を含む人など、エントリレベルの人を対象としているようだ。ただし、エントリレベルに限ってはいない。
* Azureの方は非IT系人材についての言及は見られないが、IT系でないと全く理解できないような内容ではなさそうだ。
* 両者ともクラウドという普遍的な概念の導入から始まり、その後各プラットフォームやサービスに特化した事項を学習する流れで、自然に概要を掴めるように構成されている。
# 試験の実施方法の比較
|項目|Azure Fundamentals|AWS Cloud Practitioner|
|:-:|:--|:--|
|学習教材|MS-Learnにてラーニングパスが用意されている|AWS Skill Builderにて公式問題集や<br>オンデマンドビデオコースなどが用意されている|
|試験形式|試験サンドボックスにアクセスすることで<br>実際の試験に近い画面操作を訓練できる|サンプル問題で出題形式を知ることができる|
### 所感
* どちらも最低限のものは用意されており、追加で問題集などを購入することで学習を補助できる。
  * ただし、どちらもコンテンツの値段はexpensive...
* Azure Fundamentalsの試験は画面操作を伴うので、試験サンドボックスなどで慣れておく方がいい。
# 学習内容の比較
筆者が明確に差分を認識したり、特別に注意して学習する必要がありそうだと感じた観点で列挙します。この項目は所感も各項目ごとに記載します。
* クラウドの概念全般については大きな差はないので、より差分に時間配分を重くして学習すれば効率的に学習できる。
  * クラウドコンピューティングとは何かといったような普遍的な知識や概念については、Azure/AWS のどちらかを先に学んでおけば「理解が難しい」というようなことはないと思える。
  * ただし、微妙に異なる定義をしているので両者の差分をしっかり認識することが点を取りこぼさないためには重要になる。
  * 例）  
    |項目|Azure|AWS|
    |:-:|:--|:--|
    |定義|インターネット経由でコンピューティングサービスを提供する。|インターネットを経由したクラウドサービスプラットフォームを介し、従量制料金で処理能力、データベースストレージ、アプリケーションなどのITリソースをオンデマンドで提供します。|
    |共有(共同)責任モデル|クラウドサービスモデルのタイプと関連付けて説明される。<br>IaaSなら物理層はMicrosoft、それ以外は顧客の責任、という形で図示されている。|クラウドサービスモデルごとの違いは後で説明され、まずはリソースの種類を分類することによって説明される。<br>リージョンやグローバルインフラストラクチャーなどはAWS、データやOSは顧客の責任、という形で図示される。|
    * Microsoft:共同責任モデル
      ![Microsoft による共同責任モデルの図](https://learn.microsoft.com/ja-jp/azure/security/fundamentals/media/shared-responsibility/shared-responsibility.svg)
      ※[MS-Learn クラウドにおける共同責任](https://learn.microsoft.com/ja-jp/azure/security/fundamentals/shared-responsibility)より引用
    * AWS:責任共有モデル
      ![AWS による責任共有モデルの図](https://d1.awsstatic.com/security-center/Shared_Responsibility_Model_V2_JP.a4acd9721218c9d7d4ab5083c349e706e8ad300d.jpeg)
      ※[AWS 責任共有モデル](https://aws.amazon.com/jp/compliance/shared-responsibility-model/)より引用
* セキュリティ
  * 両者ともIAMやネットワークセキュリティグループなど基本的な要素や概念は共通している。
  * Azure Fundamentals では Active Directory(AD) が密接に関わってくるため、これが明確な差分となる。
  * Azure Fundamentals ではゼロトラストをベースとしており、これに関連付けた多層防御という説明がなされるため、最新のトレンドに合わせた考え方になっている。
    * 最新の AWS Cloud Practitioner では同じような考えになっているかもしれない。
* ストレージサービス
  * Azure Storage Account という考え方は Azure にしかない。
    * しかも Azure Storage Account は IaaS である(参考リンク:[MS-Lean Q&A](https://learn.microsoft.com/en-us/answers/questions/221143/azure-storage-account-is-iaas-or-paas))
  * サービス例）
    |サービスタイプ|Azure|AWS|
    |---|---|---|
    |オブジェクトストレージ|Azure Blob Storage|Amazon S3|
    |ファイルストレージ|Azure File Storage|Amazon EFS|
    |ディスクストレージ|Azure Disk Storage|Amazon EBS|
  * オブジェクトストレージのアクセスレベル
    * 頻度や保存期間によってアクセスレベルが設定されており、その設定を適切に設定することで費用を最適化できるオプションが用意されている点は両者とも同じ。
    * Azure Blob Storage をアーカイブ層として使用した場合、データを利用する前に `rehydrate` する必要がある点が Azure に特殊な考え方
      * `rehydrate` とは英語で `元に戻す、再水和する` などの意味の言葉
      * 転じて、アーカイブしているデータをもう一度利用できるように戻すことを `rehydrate` と言うようになったのではないかと推測
* コンピューティングサービス
  * サービス例)
    |サービスタイプ|Azure|AWS|
    |:-:|:--|:--|
    |仮想マシン|Virtual Machine|Amazon EC2|
    |サーバレスコンピューティング|Azure Functions|AWS Lambda|
  * FaaS の扱い
    * Azure Functions は FaaS というクラウドサービスモデルではなく、PaaS の一種として捉えている
    * AWS Lambda は PaaS であるという説明はなかったような気がする(記憶が曖昧です...)
      * でも、実際はプラットフォームの管理はAWSが責任を持ち、利用者はアプリケーションコードに責任を持つので PaaS
* コスト
  * OpEx(Operating Expenditure) と CapEx(Capital Expenditure) という用語は AWS には出てこなかった。
  * ただし、概念としては登場している。
    > AWS では、大半のクラウドサービスについて従量制料金を適用しています。AWS では必要な個々のサービスにのみ、サービスを使用する期間だけお支払いいただき、長期契約や複雑なライセンスは必要ありません。  
    > 従量制料金とすることで、予算を過剰に計上することなく、変化するビジネスニーズに容易に適応でき、変化にすばやく対応できるようになります。

    ※[AWS の料金](https://aws.amazon.com/jp/pricing/?aws-products-pricing.sort-by=item.additionalFields.productNameLowercase&aws-products-pricing.sort-order=asc&awsf.Free%20Tier%20Type=*all&awsf.tech-category=*all)より引用
  * Azure Fundamentals では、 CapEx を OpEx に変換することができるという切り口での解釈があり、筆者としては目新しく感じた。
    * これは事業戦略上の理由や事業のステージに応じて、同じコストをかける場合でもOpExとして計上するかCapExとして計上するかを戦略的に決定できるということであり、この柔軟性はクラウドの特長だと思う。
# まとめ
* 全体的な所感として、普遍的な知識や概念についてはどちらもそれほど大きな差はないが、個別サービスの部分などは新たに学習する必要があるので、結局それなりに時間を掛ける必要はありそう。
# (参考)学習時に使用したコンテンツ
最後に学習時に使用したコンテンツを記載しておきます。  
学習については次のものを活用し、練習用評価やアプリで80%程度以上獲得できるようになるまで学習しました。
* MS-Learn の AZ-900 向けラーニングパス
  * [Microsoft Azure の基礎: クラウドの概念について説明する](https://learn.microsoft.com/ja-jp/training/paths/microsoft-azure-fundamentals-describe-cloud-concepts/)
  * [Azure の基礎: Azure のアーキテクチャとサービスについて説明する](https://learn.microsoft.com/ja-jp/training/paths/azure-fundamentals-describe-azure-architecture-services/)
  * [Azure の基礎: Azure の管理とガバナンスについて説明する](https://learn.microsoft.com/ja-jp/training/paths/describe-azure-management-governance/)
* [試験の説明ページにある無料の練習用評価](https://learn.microsoft.com/ja-jp/certifications/exams/az-900/)
* 学習用 Android アプリ (ABC e-learning)