使ったことのある機能はある程度理解しやすい。
Amazon Relational Database Service (Amazon RDS)
概要と関連記事
RDSはリレーショナルデータベースサーバを構築・運用するためのサービスとなります。
一般的にDBサーバの運用は、バックアップやリストアなどのデータ管理やパフォーマンスチューニング、セキュリティなどに技術やスキルが必要になりますが、RDSを使えばこの辺の管理が容易になる。
サポートしているDBエンジンは以下の通り。
・Amazon Aurora
・PostgreSQL
・MySQL
・MariaDB
・Oracle データベース
・SQL Server
AuroraはAWS独自のエンジンで他に比べてサービスの恩恵が大きい。
試験的にはAuroraとその他のエンジンというくくりで違いを抑えておけばいいだろう。
■関連記事
その他、VPCに関する記事などでも登場している。
RDSのアーキテクチャと基本機能
■Multi-AZ構成
簡単に言うと複数のアベイラビリティゾーン(AZ)で構成しているということ。
VPC内に構築する場合にはサブネットごとに配置するこの構成が必須となる。
プライマリとスタンバイから構成され、通常時は常にデータ複製が行われる。
プライマリDBに障害が発生した際には、速やかにスタンバイDBのフェールオーバーが行われ完了するとDBが再開される。
これにより、RDSとしての可用性は向上する。
■リードレプリカ
リードレプリカは非同期のレプリケーションが行われる読み込み専用のDBです。
書き込み処理はプライマリDBで行い、読み込み処理はリードレプリカで行うという構成をとることによって、パフォーマンスの向上が見込める。
・複数のリードレプリカにデータを複製することも可能
・リードレプリカからDBインスタンスに昇格させることもできる
・リードレプリカは最大5台まで(Auroraは15台)
■ストレージタイプの選択
Magnetic | 汎用SSD | プロビジョンドIOPS | |
---|---|---|---|
ストレージ種類 | HDD | SSD | SSD |
性能 | 100~数百IOPS | 100~10000IOPS | 1000~30000IOPS |
IOPSはIOの単位。
プロビジョンドIOPSはI/O重視のワークロードでの使用が推奨される。
Magneticは旧型なので商用では使われなさそう。
ストレージにはEBSボリュームが使用され、自動ストライピングが行われる。
ストレージの追加自体はRDSの起動中でも行えるが、減量させる場合には停止する必要がある。
Amazon Aurora
Amazon Aurora(以下、Aurora)はAWSが独自に展開しているDBエンジンです。
基本的に他のDBエンジンと比較して、サービスや許容が手厚い。
■Auroraとその他DBエンジンの比較
Aurora | その他 | |
---|---|---|
Multi-AZ | 3つのAZに2つずつのレプリケーションを作成 | 2つのAZを使用 |
ストレージサイズ | 64TiB | 32TiB |
リードレプリカ | 最大15台 | 最大5台 |
フェールオーバー | 自動 | 手動 |
■フェールオーバー
プライマリDBに障害が発生した場合、Auroraのリードレプリカが使用な可能な場合には自動でフェールオーバーが行われ、リードレプリカがDBインスタンスに昇格する。
アプリケーションからAuroraに接続を行っている場合、アクセス先はクラスターエンドポイントになっているためフェールオーバーが起きても向き先を変更する必要がない。
Amazon DynamoDB
概要と関連記事
DynamoDBはkey-value およびドキュメントデータベースでありマルチリージョンのNoSQLに分類される。
RDSと DynamoDBの用途の違いは一般的なRDBとNoSQLの違いで捉えれば概ねOKと考えられる。
大量の連続したデータの蓄積を主要な用途とする場合に用いられる。
AWSの他サービスとの連携も重要。
・関連記事
本ブログではLamdaとの連携で使用した。
結果整合性モデル
DynamoDBは一つのリージョン内に3つのAZ間に書き込みを行うため、読み込みの際には結果整合性モデルがとられる。
書き込みを行う際には2つのAZへの書き込みが確認できたら完了とみなし、残り一つにはレプリケーションにより後から書き込みが保証される。そのため、書き込みを行った直後には最新のデータが読み込まれる保証がない。
Amazon ElastiCache
Amazon ElastiCache では、完全マネージド型の Redis および Memcached をご利用いただけます。普及しているオープンソース互換のインメモリデータストアを、シームレスにデプロイ、運用、スケールできます。高スループットかつ低レイテンシーなインメモリデータストアからデータを取得して、大量のデータを扱うアプリケーションを構築したり、既存のアプリケーションのパフォーマンスを改善したりすることが可能です。Amazon ElastiCache は、ゲーム、アドテック、金融サービス、ヘルスケア、IoT などのアプリケーションで大いに活用されています。
引用元:Amazon ElastiCache(インメモリキャッシングシステム)| AWS
極端に簡単な理解はキャッシュ。
インメモリキャッシュなので、保存容量に制限はあるが高速にアクセスすることができる。
処理用のデータを一時的にコピーし、アプリケーションのパフォーマンス問題等を解消する。
かなり雑になってきたけどなんとか走りきりたい