AWSデーターサーバーについて
AWSデータベースについて
今回は主に二つのサービスについて紹介していきます。
「RDS」「DynamoDS」という二つのサービスを順々に解説していきます。
RDSサービス
RDSの概要
Relational Database Serviceの略です。
AWSで簡単にリレーショナルデータベースを使用することができる
オンプレミスで使われているデータベースエンジンをそのまま使うことができる
データーベースエンジンは次の6つ
リレーショナルデータベース・・・行と列によって構成された「表形式のテーブル」と呼ばれるデータの集合を、互いに関連付けて関係モデルを使ったデータベースのこと
データベースエンジン・・・データベースに対してデータを入れたり出したりするときに使うもの
データベースエンジンの種類
・Amazon Aurora
・MySQL
・PostgreSQL
・MariaDB
・Oracle
・Microsoft SQL Server
RDSとEC2の違い
Amazon Aurora以外は、EC2に各データベースエンジンをインストールして使用することができる。
では、RDSを使用するのとインストールして使用するのでは何が違うのか?
上記は、オンプレ、EC2、RDSでのデータサーバ構築で管理が必要なものを比較して表示しています
画像で見る限る、オンプレ、EC2で必要な管理をRDSを使用すれば管理しなくてもよくなるというものです。
時間が大幅に削減できほかの開発などに集中できるということになります。
RDSを使用するメリット
メンテナンス・・・OSを意識する必要がなくなり、選択、設定する必要もなくなる。
OSのメンテナンスは、週に1回設定した時間に自動的に行われる。
バージョンのアップグレードもするか、しないかも選択でき、する場合同じく指定した時間に自動的に行われる。
バックアップ・・・デフォルトの設定では7日間の自動的バックアップが適用されている。
バックアップ用のコマンド、サードパーティ製品を用意しなくてもRDSインスタンスを作成したときに設定済みです。
バックアップ期間は0日~35日に設定でき、指定した時間にバックアップデータが作成されます。
35日以上超えてのバックアップデータを保持しておく必要がある場合は手動のスナップショットを作成でき、S3に保存されている
高可用性・・・システム機能を停止しないためにRDSのマルチAZをオンにするとアベイラビリティゾーンをまたいだレプリケーションが行われる。
マスターに障害が発生した際のフェイルオーバーも自動で行われる。レプリケーションの設定、管理はする必要がない。
Amazon Aurora・・・MySQL/PostgreSQL互換の、クラウドに最適化されたリレーショナルデータベース
AWSがクラウドに再設計したリレーショナルデータベース
MySQL/PostgreSQLのデーターモデルをサポートしている。二つの機能を有しており、二つのエンジンを使用しているアプリケーションでAuroraをそのまま使用できる可能性が高い
Aouroraのメリット
・バックアップが非常に強固
・スタンバイにアクセスできる(リードレプリカがマスターに昇格できる)
リードレプリカ・・・マスターからレプリケーションされたDB
・リードレプリカは15個作成できる
・RDS MySQLに比べて5倍の性能
・ディスク容量を読み込みで確保しなくても自動で増加する
DynamoDBサービス
DynamoDB概要
NoSQL型の高いパフォーマンスを持ったフルマネージド型のデータベース。
フルマネージド型といううのは更に管理する範囲が小さいこと
例えば、OS、データベースエンジン、テーブルの破損も気にしなくてよくなります。
DynamoDBを使用するときは、テーブル作成からはじめ、最低限の設定はテーブル名とプライマイキーです。
そして、リージョンの選択が必要でAZは意識しなくても使用できます。
DynamoDBにテーブルを作成して、アイテムと呼ばれるデータを保存すると自動的に複数のAZの施設で同期され保存されるので、最初からマルチAZの巻kっようになっている
DynamoDBの高可用性
データ容量は無制限で、使用している容量のみが課金対象です
性能も自身で決めることができ書き込み、読み込みのキャパシティユニットを設定できる
キャパシティユニットはオートスケールすることもでき、様々なユースケースで使用されている
DynamoDBとRDSの違い
DynamoDBとRDSの大きな違いはリレーショナルデータベースかそうではないかということ。
RDSではトランザクションをコミットにより確定でき、厳密な確定処理をすることに向いている
しかし、大量のデータ更新、読み込みには向いていない
これはスケーリングの特徴が異なるからである。
RDSは垂直スケーリングによりスケールアップするが、一つのインスタンスで処理を行うため厳密な処理に向いているが、大量のアクセスには向いていない
DynamoDBは水平スケーリングで大量のアクセスがあっても、パフォーマンスを保ったまま処理はできるが、厳密な処理、複雑なクエリには向かない
データの特徴も違い
RDSはSQL型のテーブル形式で列が固定で行に対してアクセスします
DynamoDBはNoSQLのテーブル形式で一つのデータはアイテムとして(項目)として扱い、キーとして設定している属性と値さえあれば
ほかの属性は動的で自由です。
まとめ
AWS自体にはそのほかのデータベースはありますが、代表的な二つを紹介しました
二つともメリットがあり、その使用するサービスに対してDBを変えることが重要だと理解できました。
Discussion