~RDB~
●AWS RDS(Relation Database Service)
AWSのリレーショナル型のデータベースを提供するサービス。
通常データベースを利用する際のサーバ構築等が不要。
Amazon Aurora、MySQL、MariaDB、Oracle、Microsoft SQL Server、PostgreSQLから選択できる。
※RDSを利用せずにEC2上にRDBをセットアップするやり方もあるが、RDSの方が運用面・可用性でメリットが大きい
-RDB(リレーショナルデータベース)
データを表形式で格納するデータベース
表の行(横)を「レコード」、(縦)を「フィールド」、表を「テーブル」と呼ぶ
●Amazon Aurora
MySQL および PostgreSQL と互換性のあるAWS独自のRDB
最大15個のリードレプリカを持ち、高速・高可用性を実現する
-リードレプリカ:
更新用データベース(マスター)からレプリケーションされた参照専用のデータベースのこと
参照用アクセスを分散し性能を向上させることができる
-Aurora マルチマスタークラスター
別AZにライトレプリカを作成する(マルチマスタ)機能(書き込み後の読み込み整合性もを持つ)
どのノード・AZが落ちてもダウンタイムが0になる
~NoSQL~
●NoSQL (非リレーショナル) データベース
テーブル構造(スキーマ)を固定することなく、そのままの形で格納するデータベース
非定型な構造を持つデータを柔軟に管理することができ
key/value stores、wide column、DocumentDBなどのタイプがある
●key-value型データベース
非リレーショナルデータベースの一種で、キーと値によるシンプルな形でデータを保持する
●DynamoDB
AWSの提供するフルマネージドのKeyValue型データベースサービス
-グローバルテーブル:
複数のリージョンでDynamoDBのテーブルを自動で同期する機能
アクセス元の国・地域によるネットワーク遅延をなくし、高速の読み取り/書き込み処理を行うことができる
●Amazon ElastiCache
AWSのマネージド型インメモリキャッシュサービスのこと
memcachedとRedis の2種類が利用可能
フルマネージド、高速アクセス、スケーラブルという特長がある。
(補足)キャッシュ
データを高速にアクセスする形で(ストレージとは別に)保持しておくこと。
データを保管しているストレージにアクセスする回数を減らし、データ取得のパフォーマンスをアップさせることができる
(補足)インメモリデータベース
データをディスクや SSDではなく、データストレージ用のメモリに保存するデータベース
高速にアクセスすることが可能。
電源を喪失した場合などいにデータが消失する場合があるため、永続性を保つにはデータをバックアップする必要がある
(補足)揮発性メモリ
電源供給が途絶えるとデータが消失するメモリのこと
-memcached(memory cache daemon )
分散型キャッシュシステムを構築することができるソフトウェア。
・キーとバリューをシンプルな1対1で組み合わせて保存する。
・キーごとにマルチスレッドで動作する。
※AWSのElastic memcachedの場合、ノード間の複製は行わないため障害が発生するとデータは消える
-Redis
オープンソースの非リレーショナルデータベース
・単純なKey-Valueだけでなく複雑な種類のデータも扱える
・メモリ上のデータをストレージに格納し、永続的に保持する機能がある