AWS認定データベース専門知識(DBS)を、ほぼぶっつけ本番で取得したやったことまとめ

# はじめに
AWS認定データベース専門知識(DBS)について、受験者数の絶対数が少ないのか試験対策に関する参考記事の投稿が少なく情報収集に苦労しました。

今回、ほぼぶっつけ本番で取得できた試験準備のコツなどについてまとめてみました。データベース専門知識に関わるAWS関連サービスのイメージを掴んでいただければ幸いです。


# 本記事の主な対象者
- AWS認定の他の試験区分は取得済みで、データベース専門知識の受験を検討している方
- 取得に向けて有効な学習方法などの情報収集したい方

# 筆者のAWS認定履歴

|AWS認定  |取得日  |
|---|---|---|
|ソリューションアーキテクト - アソシエイト  |2018-05-13|
|デベロッパー - アソシエイト  |2018-06-03|
|SysOpsアドミニストレーター - アソシエイト | 2018-06-10|
|ソリューションアーキテクト - プロフェッショナル  |2018-07-29|
|DevOpsエンジニア - プロフェッショナル  |2018-08-26|
|ビッグデータ専門知識  |2019-08-25|
|セキュリティ専門知識  |2019-12-08|
|機械学習専門知識  |2020-02-23|
|高度なネットワーキング専門知識  |2020-06-20|
|データベース専門知識  |2020-07-04|

正確には、ぶっつけ本番ではないのですが、[高度なネットワーキング専門知識](https://qiita.com/go_sougen/items/ed2df8131b3a2df8a0e8) の受験日からのインターバルが二週間ほど。この期間、著者の生業であるサーバサイドエンジニアの業務として、Aurora関連のタスクを遂行していました。

概要は、アクティブユーザー数が 1,000万程度の、とあるマイクロサービスのデータメンテナンス。Auroraプライマリインスタンスに加えて、リードレプリカ１台構成で、200GB程度のストレージを使用。今回のタスクは、約 2,000万件程度のレコードを１トランザクションで、JOINを駆使したUPDATE文で、一括処理するというものでした。

作業の中では、スナップショットから検証用クラスタを作成したり、良かれと思ってONにしたバックトラックのデメリットに遭遇してみたり、特定のユースケースにおけるAuroraの処理時間を検証できたり、ここで得られた知見は多々あるのですが、今回の記事の趣旨とは離れますので、またの機会があれば記事にしたいと思います。

さて、今回の受験モチベーションは、とある舞台で、次はデータベース専門知識の認定取得だよね？的な話題となりまして、ダメ元で情報収集を兼ねて受験してみたのがきっかけです。

# 今回のスコア(2020-07-04受験)
```
総合スコア: 768/1000 (ボーダー750)
```

# AWS認定データベース専門知識(DBS)について
ここからが本題となります。
まずは、以下の公式ページから試験概要の把握を行いました。

 - [AWS 認定データベース専門知識 トップページ](https://aws.amazon.com/jp/certification/certified-database-specialty/)
 - [試験ガイド](https://d1.awsstatic.com/ja_JP/training-and-certification/docs-database-specialty/AWS-Certified-Database-Specialty_Exam-Guide.pdf)

 - [サンプル問題](https://d1.awsstatic.com/ja_JP/training-and-certification/docs-database-specialty/AWS-Certified-Database-Specialty_Sample-Questions.pdf)

# 具体的な試験準備で効果があったと思えること
実際に受験をしてみて、試験対策として効果があったと思う内容について、主観的な効果度合いで順に記載します。


 - 公式の模擬試験の受験
データベース専門知識の認定は、2020年の4月に開始された比較的新しい区分です。この為、Qiita記事の投稿をはじめ、出題傾向に関する情報があまり出回っていません。また、Udemyなどのオンライン学習サイトでも、対応するコースはまだ無いようでした。
出題される範囲の当りをつける為に、公式の模擬試験の受験し、出題されそうなAWSサービスの雰囲気を掴みました。

 - RDSに関する深い理解
サンプル問題および、模擬試験の内容から考察するに、どうもRDS(Auroraを含む)が優勢のようでした。ユーザーズガイドを始めドキュメント群に目を通しました。その中で、Auroraについてとてもよくまとまっている資料がありましたのでご紹介したいと思います。

  - [Amazon Aurora - Auroraの止まらない進化とその中身](https://www.slideshare.net/AmazonWebServicesJapan/amazon-aurora-aurora)

## 抑えるべき3つのポイント
実際に認定試験を受けてみて、試験ガイドとは別軸で大きく3つのカテゴリーがあるのかなと感じました。


#### 1. 設問の多くが、RDBMSに関すること
  - 結論から言うと、AWS内外のリレーショナルデータベースの運用・AWSへの移行に関する実務経験を問われる設問が多かったような気がします。体感7割程度の設問に、このエッセンスが含まれていたなと感じました。次に、DynamoDBに関する設問も散見されました。こちらは、他の認定試験の区分で出題されているようなお約束的な内容だったような気がします。故に正しく理解が必要です。あとは、DocumentDB、Neptuneについてはユースケースを把握していれば大丈夫かと思います。少し意外だったことは、Redshiftは記憶に残る限り設問中の重要なキーワードではなかったような気がします。
  
#### 2. RDSの、データベースエンジンの違いを混同しない
  - RDSといっぱ一括りで捉えがちですが、設問では明確にデータベースエンジン(Aurora,MySQL,PostgreSQL,ORACLE,SQLServer)が指定されていることが多かった気がします。これは、パラメータグループの設定などにおいて、それぞれ特色があるのが背景なのかなと感じました。

#### 3. Auroraで、実現できることの整理
  - Auroraで実現できることについての知識を多く問われたような気がします。詳細については、先にご紹介した資料に記載されていますが、パフォーマンス検証、バックトラック、フェイルオーバー、リードレプリカ、クローン、クロスリージョン、メンテナンスウィンドウ、ゼロダウンタイムを目指す上で検討すべきこと、などなど。

# おわりに
他の認定試験の区分とは異なり、狭義のデータベースの分野についてのみ深く問われたような気がします。AuroraなどのAWSマネージドデータベースと、EC2などに構築するセルフマネージドのデータベースの両方の運用経験がある方であれば、差異の部分の消去法で、ある程度の正答率は高められる部分はあるのではないかと感じました。
今後受験を検討される方の一助になれば幸いです。

#### 著者関連リンク
 - [AWS認定ビッグデータ専門知識(BDS)を、１ヶ月の準備期間で取得した試験準備やったことまとめ](https://qiita.com/go_sougen/items/bfdf5e5d1c6c57ca6141)
 - [AWS認定セキュリティ専門知識(SCS)を、１年の空白期間を経て取得したやったことまとめ](https://qiita.com/go_sougen/items/7a96d2358ffc5eceb960)
 - [AWS認定機械学習専門知識(MLS)を、２ヶ月の集中期間で取得したやったことまとめ](https://qiita.com/go_sougen/items/6a813eac0b2208e43bfb)
 - [AWS認定高度なネットワーキング専門知識(ANS)を、３ヶ月のハンズオン期間を経て取得したやったことまとめ](https://qiita.com/go_sougen/items/ed2df8131b3a2df8a0e8)
 - [AWS認定Alexaスキルビルダー専門知識(AXS)を、ツンデレメイドスキルを作りながら取得したやったことまとめ](https://qiita.com/go_sougen/items/7a78bac3f6a9300901c9)
 - [AWS 認定クラウドプラクティショナー(CLF)を、これまでの振り返りを兼ねて取得したやったことまとめ](https://qiita.com/go_sougen/items/5b5ac0e59fd67e1181ed)