こんにちは、サイオステクノロジーの佐藤 陽です。
先日、MSの資格である Azure Cosmos DB Developer Specialty に認定されました!
久々にMSの試験を受けて合格したので、また合格体験記の方を書いていきたいと思います。
以前の合格体験記はこちら。
はじめに
以前の合格体験記の際にも書いたのですが
試験の内容に関して詳細に記載すると Microsoft から怒られてしまい、資格剥奪されてしまうとのことです。
そのため非常にふんわりした内容の記事になりますが、その点ご了承ください。
Cosmos DB Developer Specialtyとは
Azureが提供するNoSQL型のデータベースであるCosmosDBに特化した資格になります。
これまで受けてきた資格(Solutions Architect Expertや、Developer Associate等)は複数のリソースに関する問題が出題されていましたが
今回認定を受けたCosmos DB Developer Specialtyに関しては、CosmosDBのみが対象となっています。
さらに言えばCosmosDBの中でもCore SQLのアカウントだけが対象となっています。
そしてこの認定を受けるためには、DP-420の試験に合格する必要があります。
受験理由
なぜDP-420の受験をしたかに関してですが
- NoSQLを用いたアプリケーション開発経験が無く、体系的な知識を身につけたかった
- 最近AI関連でも多くCosmosDBなどが取り上げられるようになった
の2点があります。
アプリケーション開発
これまでWebアプリの開発色々と行ってきましたが、いずれもRDBを用いたものが多かったです。
NoSQLに関して何となくの知識はありましたが、実際に手を動かして作業できるレベルではありませんでした。
しかし今後の開発において、NoSQLを使ったアプリ開発を行うことは容易に想像できました。
色々と変化が激しい世の中において、非構造化データを扱う場面が多くなることは間違いないと思ったのです。
もちろんRDBを使う場面も多くあるかと思うのですが、どちらを採用するべきかを判断するためにも
NoSQLであるCosmosDBの知識をしっかり身に着けておきたいと思いました。
受験してみて実際どうだったかというと、体系的な知識を身に着けることが出来ました。
パーティション分割の考え方や、マルチリージョンの考え方など、基本的な知識を得ることが出来ました。
まだまだアプリにとって最適な設計が出来るか…と言われたら知識が不足しているとは思いますが
有識者から指摘やアドバイスなどが頂けたら、その内容を理解して自ら反映することはできるくらいにはなったかなと思います。
AI関連
CosmosDBはAIを活用したアプリケーション活用にも多く使われるようになりました。
最近ではベクトル検索や、ハイブリット検索の機能も追加され、RAGの構築などでも採用されるケースが多く見られます。
そのため、今後より活用が進んで行くだろうと思い、このあたりの知識習得をしていきたいと思いました。
こちらに関して実際どうだったかというと、AI関連の機能に関しては現段階(2025年1月)においては試験の対象外となっており、試験においても全く出題されませんでした。
一応公式ドキュメントなどは一通り読んで知識は入れましたが、資格取得を通して…といった意味ではあまり効果はありませんでした。
このあたりはまた独自でキャッチアップの方を進めていきたいと思います。
試験概要
先程も述べたように、CosmosDB特化型の試験です。
CosmosDBの構造の理解から、設計ポイント、実装時のコードレベルの問題まで幅広く出題されます。
特に
- パーティション分割
- インデックスの構築
- マルチリージョンに対する読み書き
といった所は基本的な部分であり、なおかつ最重要事項であると思いました。
逆にここら辺の本質を理解していれば、あとはこれらの知識脳応用で乗り切れるんじゃないかなという印象です。
あとは他サービスとの連携部分で、SynapseやData Factoryとの連携部分も問われることが多かったです。
ここら辺の他サービスの知識がなかったので、自分は知識を詰め込んで乗り切りました…。
学習コンテンツ
MS公式
鉄板ですが、MSの公式ドキュメントです。
結構分かりづらいことが言われているMS公式でしたが、今回のCosmosDBに関していえば割とスラスラ読めました。
あとは今回の試験がCosmosDBだけであるため、読む場所が一か所にまとまってるのもいいですね。
ただ、公式ドキュメントとMSLearnに知識が散らばっていたので、双方を照らし合わせながら読むと理解が捗るかと思います。
Udemy
Udemyにも本試験に特化した講座がありました。
Microsoft Azure Cosmos DB Exam Guide [Hands-on]
こちらのUdemyの講座ですが、非常に分かりやすかったです。
ほとんど知識がない自分が一通り見たことで、CosmosDBの基本的な部分は理解できました。
ただ、一方で試験を合格するには内容が不足しています。
そのため、このUdemyの講座を一通り見て概要をつかんだ後、公式ドキュメントなどを利用して知識を補完する必要があるかと思います。
その他
試験勉強しているときに、ちょうどMS Ignite2024が開催されました。
そして、Igniteの中で以下のセッションがありました。
Cosmic efficiency: mastering performance and cost in Azure Cosmos DB | BRK194
Igniteなので非常に高いレベルの内容なのかな?と思われますが、とても基本的なところから説明してくれています。
どれくらい易しいかというとRU(Request Unit)とは何か?といった所から紹介してくれています。
CosmosDBを絶賛勉強中だった自分にはとてもタイムリーで、非常に刺さる内容でした。
あとはこちらの御成門プログラマーさんの記事でも紹介されていた
畠山さんのCosomosDBのセッションも非常に分かりやすかったのでお勧めです。
おわりに
今回はCosmos DB Developer Specialtyの合格体験記を書きました。
今回の受験を通してCosmos DBの基礎部分が分かったとともに、設計の難しさ・面白さが垣間見えた気がします。
これからアプリを開発していくうえで、ベストなCosmosDBの設計が出来るよう引き続きキャッチアップを続けていきたいと思います。
アウトプット
勉強していく過程でアウトプットした記事になります。
まだ途中までしか書けていないので引き続き書いていきたいと思います。
【Azure】CosmosDBにおけるRU入門ガイド【初心者向け】
https://tech-lab.sios.jp/archives/44424
【Azure】CosmosDBにおけるパーティション入門ガイド【初心者向け】
https://tech-lab.sios.jp/archives/44573
【Azure】CosmosDBにおけるインデックス入門ガイド【初心者向け】
https://tech-lab.sios.jp/archives/45014