本記事は
執筆デビューWeek
11日目の記事です。
✨
10日目
▶▶ 本記事 ▶▶
12日目
🔰
はじめまして。クラウド事業推進部の多田です。 新入社員としてNRIネットコムに入社後、2-3年ほどフロントの開発に携わり 4年目からアプリ開発のチームリーダーをしています。
現状は、フロントエンド開発をメインに行っています。システムは全てAWS上で構築しているものの、AWSのサービスは必要なものだけを使うというスタイルのため、なかなか体系的な知識として身に着けにくいところがありました。そこでAWSの知見を深めるため、AWS認定試験を受けています。
現在「AWS 認定 データベース – 専門知識(AWS Certified Database – Specialty)」に向けた勉強をしています。その中でAWSのデータベースサービスの多さと機能の豊富さに整理がつかなくりそうです。自身の備忘録を兼ねて、本記事にまとめたいと思います。
認定資格の出題範囲については公式ページをご参照ください。https://aws.amazon.com/jp/certification/certified-database-specialty/
はじめに
本記事で触れた内容以外にもたくさんの機能がありますので AWSの公式ドキュメントやホワイトペーパー、対策本を読み 理解を深めていくことをお勧めします。 資格に向けた学習方法についてはこちらの記事にも記載されています。
また、NRIネットコムではAWSの資格対策本を出していますので しっかりと知識を身に着けたい方はぜひご覧ください。
各サービスについての概要
データベース認定に出てくるAWS DBサービスの概要です。
RDS
リレーショナルデータベース
6種類のデータベースエンジンから選択してデプロイします。
DBバックアップなどの機能がサービスとして提供されているので、EC2でDBを構築するのに比べて運用や構築の作業の負荷が少ないです。
レプリカ
リードレプリカとスタンバイレプリカが存在します。 リードレプリカは読み取り性能の向上が目的、 スタンバイレプリカは可用性向上が目的です。
Aurora
完全マネージド型のリレーショナルデータベースエンジン
Aurora自体はデータベースサービスとしてではなく、RDSで選択可能なエンジンの一つとして扱われています。
処理能力が高く、処理をするコンピュートの部分とストレージ部分が分離していることが特徴で、両方ともスケーリングの自動化が可能です。
MySQLやPostgreSQLに互換性があります。
レプリカ
Auroraのリードレプリカは、スタンバイレプリカを兼ねており プライマリインスタンスへの昇格が可能です。 障害時、スタンバイレプリカに切り替わった際には 接続情報(クラスターエンドポイント)も自動で切り替わります。
バックトラック
指定した時間までDBクラスターを巻き戻す機能です。 AuroraMySQLのみ対応しています。
従来のバックアップからの復元だと、DBクラスターを新規作成する必要がありますが バックトラックでは、現在起動しているDBを過去時点の状態に戻すことが可能です。 数分で巻き戻すことが可能なので、操作の取り消しや直前の状況調査が必要な場合に有効です。
Aurora グローバルデータベース
データが書き込まれる1つのプライマリAWSリージョンと 最大5つの読み取り専用セカンダリAWS リージョンで構成できます。 通常1秒未満のレイテンシーで、データをセカンダリAWSリージョンにレプリケートします。
DynamoDB
フルマネージドでサーバーレスなNoSQL型データベース
NoSQL型で構造が異なるデータを登録可能であるため、項目の増減が発生しやすいデータを扱うサービスと相性が良いです。Lambdaと一緒に利用することで、データ更新をトリガーにして処理を実行するアーキテクチャが簡単に作成できます。
処理性能が高く、RDSのようにデータ格納のストレージサイズを気にしなくていい点がポイントです。
DynamoDB グローバルテーブル
レプリカテーブルのアイテムに加えられた変更は、同じグローバルテーブル内の他のすべてのレプリカにレプリケートされ すべてのレプリカは同じデータを持つ状態となります。 どのリージョンのテーブルでも読み込みだけでなく書き込みも出来ます。近くのリージョンへの読み書きが出来るため、レイテンシーを少なく出来る点と書き込みの負荷を分散できる点が利点です。
Redshift
データ分析に特化したリレーショナルのデータベース
データウェアハウスとして使うのに適しており、大規模なデータの集計・分析に特化しています。データの持ち方が列指向となっており行ごとの更新は苦手なため、リアルタイムでデータを追加するような用途には不向きです。
大量の構造化・半構造化データに対してクエリを実行する場合にはRedshiftが向いています。
Neptune
グラフモデルを扱うデータベースサービス
要素間の関係性を扱うようなシステムの場合は、リレーショナルデータベースよりもグラフデータベースのほうが優れたパフォーマンスを発揮することが多いです。
ソーシャルネットワークサービスのユーザーデータなどに多く使われています。
DocumentDB
MongoDBと互換性のあるフルマネージドデータベースサービス
MongoDBベースのNoSQLデータベース・ドキュメント指向型データベースです。
同じくドキュメント指向のデータベースであるDynamoDBと違い、DocumentDBには柔軟に検索クエリが書ける機能が備わっています。
QLDB
フルマネージド型の台帳データベースサービス
データの正確な履歴を維持することを目的に利用されることが多いです。
おわりに
文章にまとめることで、各サービスの内容の理解が深まったように感じます。 それと同時に調べた点から派生した疑問が生まれ、AWSサービスの勉強は終わりがないようにも感じました。 AWSサービスの更新頻度は高く、一度学べばよいというものではないので定期的に資格更新する必要性も頷けます。 引き続き学習していこうと思います。