AWS認定 データベース - 専門知識 に合格したので

# はじめに

AWS認定 データベース - 専門知識 (DBS-C01) に合格しました。
本試験は2024年4月29日に廃止が発表されていますが必要に迫られ（後述）、今更ですが再取得しました。
合格までにやったこと、試験に向けてのポイントなどを書いていきます。


# 2024 Japan AWS All Certifications Engineers のために

AWS認定を全部（現行の１２個）取得したAPNパートナー技術者向けに表彰制度があります。
https://aws.amazon.com/jp/blogs/psa/2024-japan-aws-all-certifications-engineers-criteria/
この応募クライテリアに
`対象の AWS 認定資格は申し込み時点で有効、且つ審査期間である 2024 年 4 月 30 日まで有効である必要があります。`
とあります。
つまり4月29日に廃止される本認定試験ですが、4月30日まで認定が有効である必要がありますから、今更ですが取得しなければならなかったのです。


# どんな試験なのか

AWSのデータベースに関連したAWSのサービスとデータベース自体に関する試験です。
AWS上のデータベースに限らず、オンプレミスのデータベースからの移行関連も多く、それ故にデータベースのパラメータや設定等についても問われ、AWSの知識だけでは厳しいです。


# 受験までにやったこと

巷には試験対策書籍やUdemy等の有料コンテンツが売られていますが使いませんでした。
AWS公式ドキュメントとAWS Skill Builderの無料コンテンツだけで合格できます。

- AWS Skill Builder で学ぶ

    - Exam Readiness: AWS Certified Database – Specialty (Japanese)
        - https://explore.skillbuilder.aws/learn/course/external/view/elearning/8832/exam-readiness-aws-certified-database-specialty-japanese
        - 試験準備というタイトルですがこれだけでは全然足りません

    - AWS Database Offering (Japanese)
        - https://explore.skillbuilder.aws/learn/course/596/play/1658/
        - AWSのデータベースサービス全般をおさらいします

    - Amazon Aurora MySQL and Amazon RDS MySQL (Japanese) (Sub) 日本語字幕版
        - https://explore.skillbuilder.aws/learn/course/16397/
        - AuroraとRDSの違い、それらを出題多めなMySQLを詳しく学びます

    - Moving To Managed Databases on AWS (Japanese) (Sub) 日本語字幕版
        - https://explore.skillbuilder.aws/learn/course/internal/view/elearning/1756/moving-to-managed-databases-on-aws-japanese-sub-ri-ben-yu-zi-mu-ban
        - AWSマネージドデータベースへの各種移行の基礎を学びます

    - Migrating from Microsoft SQL Server to Amazon RDS (Japanese) (Sub) 日本語字幕版
        - https://explore.skillbuilder.aws/learn/course/internal/view/elearning/6091/
        - MSSQL Serverの移行。オンプレミスで使ったことがない場合の知識補完に役立ちます

    - Migrating from Oracle to Amazon RDS (Japanese) (Sub) 日本語字幕版
        - https://explore.skillbuilder.aws/learn/course/internal/view/elearning/6195/
        - Oracle DBの移行。オンプレミスで使ったことがない場合の知識補完に役立ちます

    - Migrating from MySQL to Amazon RDS (Japanese) (Sub) 日本語字幕版
        - https://explore.skillbuilder.aws/learn/course/internal/view/elearning/4603/
        - MySQLのRDS MySQL移行。DMSとレプリケーションインスタンスを使用した移行を学びます

    - Migration to Aurora MySQL (Japanese)
        - https://explore.skillbuilder.aws/learn/course/16397/
        - MySQLのAurora MySQLへの移行。上記より深い内容になっています

    - Migrating from PostgreSQL to Amazon RDS (Japanese) (Sub) 日本語字幕版
        - https://explore.skillbuilder.aws/learn/course/internal/view/elearning/4542/
        - PostgreSQLの移行。MySQL同様にDMSを使用した移行を学びます

    - Migrating from Oracle to Amazon Aurora (Japanese) (VO) 日本語吹き替え版
        - https://explore.skillbuilder.aws/learn/course/internal/view/elearning/11387/
        - OracleからAurora PostgreSQLへの移行。SCTとDMSを使用した異機種移行を学びます

    - Migrating from Microsoft SQL Server to Amazon DynamoDB (Japanese)
        - https://explore.skillbuilder.aws/learn/course/internal/view/elearning/9046/migrating-from-microsoft-sql-server-to-amazon-dynamodb-japanese
        - MSSQL ServerからAmazon DynamoDBへの異機種移行。SCTとDMSを使用した異機種移行を学びます

    - Amazon DynamoDB - Troubleshooting (Japanese)
        - https://explore.skillbuilder.aws/learn/course/15756/
        - DynamoDBのトラブルシューティング、特に性能関連はよく出るので深く学びます


- AWSJ公式ドキュメントを読む

    - Amazon Relational Database Service ユーザーガイド
        - https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/Welcome.html
        - 内容を全て覚える必要はありませんが、何が出来るのか、出来ないのか（制約）は覚えておきます

    - Aurora のユーザーガイド
        - https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html
        - 内容を全て覚える必要はありませんが、何が出来るのか、出来ないのか（制約）は理解しましょう

    - AWS Database Migration Service ユーザーガイド
        - https://docs.aws.amazon.com/ja_jp/dms/latest/userguide/Welcome.html
        - 移行の要。DMSで何が出来るのか、どう使うのかを理解します

    - AWS Schema Conversion Tool ユーザーガイド
        - https://docs.aws.amazon.com/ja_jp/SchemaConversionTool/latest/userguide/CHAP_Welcome.html
        - DMSとセットで使われるSCT。DMSとの使い分けと役割を理解します

    - Amazon DynamoDB デベロッパーガイド
        - https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/Introduction.html
        - DynamoDBとDAXの動作、DynamoDB Streamsで出来ること、性能と制限事項、トラブルシューティングまでしっかり理解します

    - Amazon ElastiCache のドキュメント
        - https://docs.aws.amazon.com/ja_jp/elasticache/
        - RedisとMemcachedは何が違うのか、それぞれ何に使うのか。動作を理解します
    - Amazon DocumentDB 開発者ガイド
        - https://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/what-is.html
        - MongoDB互換のマネージドサービスAmazon DocumentDB。何に使うのか、何が出来るのかを理解します

    - Amazon Neptune ユーザーガイド
        - https://docs.aws.amazon.com/ja_jp/neptune/latest/userguide/intro.html
        - グラフデータベースで何が出来るのか、何に使うのかを理解します


- 最後に模擬試験 (AWS Skill Builder)
    - https://explore.skillbuilder.aws/learn/course/12511/
        - さらっと解ければ大丈夫でしょう。が、これは試験範囲のごく一部なので過信しないように



# 勉強のポイント

- 何には何のデータベースが適しているのか理解する
    - どのデータベースで何ができるのか理解するのは基本です

- データベース移行時のツールと方法
    - データベース移行関連はかなり多め
    - DMSやSCTはどういう場合に使うのか。ネイティブツールとの使い分け
    - 何をするとダウンタイムが発生するのか

- DynamoDBの性能問題とその解決
    - ホットパーティションをどう解消するか
    - シャーディング
    - パーティショニングとデータ分散

- DynamoDB Streamingの動作
    - DynamoDBに情報更新がされるとその内容をストリーミングでリアルタイム出力するサービス
    - ストリーミングでDynamoDBへデータを書き込めるわけではない

- Elasticacheの使い分け
    - RedisとMemcachedは何が違うのか。どう使い分けるのか
    - それぞれの可用性やスケーラビリティはについて理解する

- できることとできないことを覚える（以下は例）
    - RDSやAuroraデータベースのサーバへSSH等でログインすることはできない
        - RDSデータベースサーバの pg_hba.conf ファイルを書き換える等の選択肢は誤り
    - Auroraデータベースはストレージを利用者が変更することはできない
        - 完全マネージドだからストレージタイプや容量を変更する等の選択肢は誤り
    - RDSやAuroraデータベースのデフォルトパラメータグループのパラメータ値は変更できない
        - 変更する場合は独自のパラメータグループを作成し、それを変更します

- 模擬試験やサンプル問題は参考程度
    - 数が少ないからですが本試験では全然別の問題も出ます

- APIは名称をざっとでいいから目を通しておく
    - あたかも存在しそうな名前だけど実は存在しないAPI名等を見抜けるように


# 結果

合格しましたが、以前の試験と異なり試験結果の詳細情報は開示されなくなりました。
以前の％表示で何をどのぐらい得点できたかわかる方が良かった。
１０００点満点式の試験は、問題ごとに点数が異なるようです。

今回：合格（８３０点）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/96018/d7bfd72d-e8b9-bf52-5d07-7017ca01cd7b.png)

前回：合格（７８６点）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/96018/b26b8d48-a0ea-eec9-e496-83c2424d40a1.png)

前回の方が点数は低いですが、全てのセクションでコンピテンシーを満たしています。
今回は点数こそ高いものの、１セクションは改善が必要と書かれてしまいました。
`全セクションでコンピテンシーを満たさなくても合格できる` ことがわかります。
従来通り、苦手な問題は捨てて得点できそうな問題に注力するスタイルで良さそうです。
試験時間は結構ぎりぎりですから、だめだと思った問題は捨てて後回しにしましょう。


# まとめ

専門知識シリーズの中では比較的AWSのサービス関連が多く、取りやすい認定だと思いました。
まもなく廃止されるけど今年のAWS All Certifications Engineersには必須の認定です。
申し込み期限が３月末から４月５日に延長されました。
まだ間に合います。みんなで全冠を目指しましょう！

======