この度、AWSのSAA試験を受けることになったので、AWSのDBサービスを調べました。しかし、中々小難しく書いている記事ばかりだったので、せっかくだと思い「全くわからない」状態から「ざっくりわかる」状態になれるよう、このブログを執筆した次第でございます。
さて、AWSのDBサービスには主に以下のものが存在します。
・Amazon RDS
・DynamoDB
・Amazon Redshift
順を追ってざっくり説明していきます。
Amazon RDS

Amazon RDSはAWSが提供しているリレーショナルデータベースサービスです。
利用できるRDBMSは以下のようになっています。
・PosgreSQL
・MySQL
・MariaDB
・Oracle
・Amazon Aurora
Amazon AuroraはAWSが提供している独自のRDBMSです。
RDSを利用するメリットは?
RDSなんか使わなくても、EC2にRDBMSを導入すれば同じことなんじゃねぇの?と思うかもしれませんが、EC2にRDBMSを導入することと比較して、様々なメリットが存在します。
メリットその1:フルマネージドサービス!
EC2にRDBMSをインストールして管理するとなると、RDBMSのインストールやメンテナンス管理など、全て自分たちで行わなくてはなりません。しかし、RDSを利用すればそういった管理は全てAWSで管理してくれるので、運用が楽ちんになります。
というか、そもそもRDSを構築すればすぐにデータベースを利用できる環境が提供されているので、インストールといった面倒な作業が不要になります。
メリットその2:スケーラビリティが高い!
RDSを利用すれば、「リードレプリカ」といった機能を用いて負荷を分散させることができます。
リードレプリカとは、例えば作成されたRDSインスタンスに大量の読み書き(トラフィック)が発生した際、同じAZの中に読み取り専用のRDSインスタンスを別で作成する機能のことです。これにより、負荷を分散させて動作が遅くなるといった事象を防ぐことができます。
メリットその3:冗長構成ができる!
これはEC2にも言えることなのですが、別のAZにインスタンスを用意(プロビジョニング)して同期させることで、万が一ひとつのAZに災害などが起こった場合でもすぐに別のAZ(物理的に離れた拠点)に用意されているRDSインスタンスを起動させることで、システム自体に影響を及ぼすことなく引き続き運用することができます。
DynamoDB

Amazon DynamoDBはAWSが提供しているNoSQLのDBサービスです。セッション情報などを保持するのに向いています。
DynamoDBのメリットは?
DynamoDBに関してはRDSと比較されることが多いのですが、ここではRDSと比較したDynamoDBのメリットを紹介します。
メリットその1:容量が無制限!
DynamoDBは容量無制限で利用が可能です。そもそもNoSQLは大量のデータ処理に向いていると言われていますが、容量無制限で利用できるといったところも向いている理由の一つとも言えます。
メリットその2:読み込み/書き込みが早い!
DynamoDBはRDSと比較すると読み込み、書き込み速度が早いこともメリットとして良く挙げられています。ですので、読み込み/書き込み量が多いデータに利用できるということですね。
こうしてあげてみると、「なら全部DynamoDBで良さげじゃん!」と思いがちですが、DynamoDB含むNoSQLサービスはそもそもデータの保存方法が違うので、複雑なクエリを処理したり、データを更新したり、テーブル結合したりといったことにはあまり向いていません(そういう時はRDSを利用しましょう)。ですので、それぞれ用途によって使い分けていくのがベストです!
Amazon Redshift

Amazon Redshiftは他DBサービスとは違いちょっと特殊なのですが、AWSが提供しているデータウェアハウスサービスです。
Redshiftのメリットは?
そもそもデータウェアハウスとは、過去のデータを分析などの目的で大量に保存しておく、いわば「大量データの倉庫」といった目的で利用されます。ですので、あまりデータの更新やリアルタイムでの読み込み/書き込み処理といった用途では利用されません。では、いったいどのようなメリットがあるのでしょうか?
メリットその1:カラムナー(列指向)データベース!
Redshiftは主に大規模なデータに対してSQLを用いて集計処理します。そのため、行ごとではなく列ごとにデータを管理することによって、同じ種類のデータを管理しているわけですから、圧縮もやりやすく、さらに少ない容量でデータ集計を行うことができるというわけです。
メリットその2:安い!とにかく安い!
オンプレミスでデータウェアハウスを構築しようとなるとそれなりに構築料金がかかってしまうものなのですが、RedShiftはテラバイト単位で従来のデータウェアハウスと比較して10分の1の料金で利用できるだけでなく、フルマネージドのクラウドサービスなのでメンテナンスの追加費用などがかからないといったところもメリットの一つです。
ちなみにこれは余談なのですが、Redshiftは現在シングルAZのみサポートされており、マルチAZ構成はサポートされていないので注意が必要です。
その他にも、DBサービスとしては一時的にデータをメモリに格納してキャッシュ処理を行い、読み込み/書き込み速度を向上させる「Elastichache」といった機能がありますが、こちらは勉強不足の部分も相まって次回詳しく執筆しようと思います。
まとめ
今回はAWSで主に利用されているサービスに関してまとめさせていただきました!
「全くわからない」状態から「ざっくり分かる」状態になっていただけましたら幸いです!!
まだまだ自分も勉強不足な部分が多いので頑張ります(`・ω・´)
コメント