掲載場所により正答が異なる問題：AWS 認定 データベース – 専門知識(DBS-C01)

# はじめに

AWS の認定試験は、
問題集の「書籍」「サイト」が、
「日本語」「英語」ともに多数存在します。

しかし、掲載場所によって
「同じ問題でも、異なる選択肢が正答として掲載されているケース」があります。

この記事では、
そのような正答が異なる問題について記載します。

AWS 認定試験の学習をする方の一助となれば、幸いです。

「個人的な感想」を追記していますが、
本当にどれが正答なのかは分かりません。
あくまで、参考程度にしてください。

「参考サイト」には
こういった問題についての議論が掲載されている
ExamTopics へのリンクを貼っています。

# AWS 認定 データベース – 専門知識(DBS-C01)

## 問題 1

- Oracle を Aurora PostgreSQL に移行したい
- Oracle には 100 GB の LOB がある
- DMS での移行を改善する

### 掲載場所によって正答が異なる点

タスクを 1 つで移行するか、
2 つで移行するか、が異なる。

### 個人的な感想

2 つのタスクでの移行がより効率的と考える。

https://docs.aws.amazon.com/ja_jp/dms/latest/userguide/CHAP_BestPractices.html#CHAP_BestPractices.LOBS

### 参考サイト

https://www.examtopics.com/discussions/amazon/view/26418-exam-aws-certified-database-specialty-topic-1-question-48/

## 問題 2

- RDS の月次データベースバックアップが過去 5 年分必要
- 24 時間以内に監査役にデータの提供が必要
- 運用上、最も効率的なソリューションは？

### 掲載場所によって正答が異なる点

「手動で取得したスナップショットを S3 バケットに移動する手順」があるかないか、が異なる。

### 個人的な感想

以下の記述から、
S3 バケットに保存しておくことがより良いと考える。

> MariaDB、MySQL、および PostgreSQL データの非常に長期間のバックアップの場合、スナップショットデータを Amazon S3 にエクスポートすることをお勧めします。DB エンジンのメジャーバージョンがサポートされなくなった場合、スナップショットからそのバージョンに復元することはできません。

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html

### 参考サイト

https://www.examtopics.com/discussions/amazon/view/26594-exam-aws-certified-database-specialty-topic-1-question-65/

## 問題 3

- RDS for PostgreSQL インスタンスから Aurora PostgreSQL DB クラスターへの移行
- データベースのサイズは 1 TB
- ダウンタイムを最小限に抑えたい

### 掲載場所によって正答が異なる点

スナップショットをとって復元して移行するか、
リードレプリカを昇格させて移行するか、が異なる。

### 個人的な感想

リードレプリカを作成することで、最新のデータの更新もリアルタイムに取り入れることができるため、ダウンタイムを最小にするという点では、リードレプリカの昇格が正しいと考える。

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Migrating.html

### 参考サイト

https://www.examtopics.com/discussions/amazon/view/25084-exam-aws-certified-database-specialty-topic-1-question-9/

## 問題 4

- MySQL を Aurora に移行した
- 本番データに対して 12 のテスト環境があり、テスト環境に最新の本番データがほしい
- 実装が最も速く、最も費用対効果の高い移行方法は？

### 掲載場所によって正答が異なる点

Aurora からクローンするか、
Aurora Serverless からクローンするか、が異なる。

### 個人的な感想

Aurora Serverless v1 は、途中からクローンできるようになった。それより前であれば、Aurora Serverless からのクローンは自ずと不正解になる。

https://aws.amazon.com/jp/about-aws/whats-new/2021/06/amazon-aurora-serverless-v1-supports-fast-database-cloning/

### 参考サイト

https://www.examtopics.com/discussions/amazon/view/26802-exam-aws-certified-database-specialty-topic-1-question-75/

## 問題 5

- DynamoDB を使用した E コマースサイト
- 大規模なイベントが計画されていて、トラフィックが最大 10 倍になる
- セール価格を公開すると、トラフィックが急増する
- DynamoDB が増加したトラフィックを確実に処理するには？

### 掲載場所によって正答が異なる点

事前にピークに備えてキャパシティをプロビジョニングしておくか
Auto Scaling でトラフィックの増加に対応するか、が異なる。

### 個人的な感想

トラフィックの最大が分かっているので、事前のプロビジョニングが良いと考える。Auto Scaling では、スパイクするトラフィックには耐えられないのでは？

### 参考サイト

https://www.examtopics.com/discussions/amazon/view/25628-exam-aws-certified-database-specialty-topic-1-question-76/

## 問題 6

- 電力会社が発電所のセンサーデータを保存する DynamoDB テーブルの設計
- 発電所 100 以上ある
- 各発電所ごとに、センサーが 200 以上ある
- 所定の発電所内の故障したセンサーを見つけたい
- DynamoDB テーブルの最適なスキーマは？

### 掲載場所によって正答が異なる点

サイトにより正答とするスキーマが、完全に分かれる。

### 個人的な感想

```
パーティションキー：プラント ID、ソートキー：センサー ID 
```

これだと、発電所のセンサーごとに、データが 1 件ずつしか入らない。

```
パーティションキー：プラント ID + センサー ID、ソートキー：測定時間
LSI：プラント ID + センサー ID、ソートキー：障害属性
```

センサー ID があらかじめ分かっていないと、クエリできない。

```
パーティションキー：プラント ID、ソートキー：測定時間
GSI：プラント ID、ソートキー：障害属性
```

プラント ID と測定時間で、別のセンサーによる測定結果が上書きされる可能性がないか？測定時間はミリ秒なので、考えなくて良いのか？

```
パーティションキー：プラント ID + センサー ID、ソートキー：測定時間
GSI：プラント ID、ソートキー：障害属性
```

GSI で所定のプラント ID の故障したセンサーを見つけることができる。
ベーステーブルに、プラント ID + センサー ID ごとに測定時間が固有のデータが入る。

### 参考サイト

https://www.examtopics.com/discussions/amazon/view/48997-exam-aws-certified-database-specialty-topic-1-question-103/