AWS学習履歴の趣旨
AWSでデプロイをしたことはあるものの、AWSの理解に足りない部分があるのが悔しいと思い、UdemyのAWS講座で勉強を開始しました。
以下の記事の続きです。
学習内容を全て残すことは量が莫大になるので無理ですが、『重要かな?と思った部分を記録として残そう!』というのが趣旨です。
更新頻度は不定期ですが、地道に続けていこうかと思います。
応援よろしくお願いします。
データベース
データベースには大きく分けて2つあります。
RDB
データ間の関係性が定義されているDBです。
列と行からなるいくつかのテーブルで定義されています。このテーブル間のリレーションが設定されているおかげで、テーブル同士の関係性がわかるようになっています。
データの操作にはSQLを使用しており、例えば、会計データや顧客データといった構造化データに利用します。
NoSQL
リレーショナルデータ構造を持たない、かつ、SQLを利用しないDBの総称です。ただし、現在はSQLやSQLに似た適用モデルもあります。
データとしては、構造化されていないキーバリュー形式のデータ・動画・画像・ドキュメントなどの非構造化データや、XML・JSONなどの半構造化データを対象としています。
構造がRDBに比べて軽いので、ビッグデータなど大量のデータを扱うのに向いています。
データベースの種類ピックアップ
RDBと分散OLTP以外はNoSQLです。
種類 | 説明 |
---|---|
RDB | 業務システム向けのDBの基本 |
DWH(データウェアハウス) | 構造化データを利用した経営分析向けのDB。データ抽出・集約に特化(レスポンス重視)なので、更新・トランザクションは遅い。読み込むデータ構造をあらかじめ設計する必要がある。AWS: Redshift |
分散型DB/データレイク | ビッグデータやIoTデータを蓄積して高速処理を可能にするDBとストレージの組み合わせ。データ抽出に特化したDB。AWS: S3 |
KVS(キーバリュー型) | シンプルなデータ構造で高速処置を可能にしたDB。結果整合性を採用しており、キーに応じてデータを分散処理する。大規模なWebサイトのユーザーセッションなどのバックエンドデータやIoTセンサーデータなどに使用する。AWS: ElastiCache、DynamoDB |
ワイドカラム型 | キーに対してカラムを大規模に登録できる。可能な限り多くのデータを同じ行に保持し、シンプルなオペレーションを高速処理できる。FacebookやTwitterなどのソーシャルデータの位置情報データストレージ・リアルタイム分析・データマイニング処理に使用する。AWS: DynamoDB |
ドキュメントDB | キーに対してドキュメント指向でXMLなどのデータを格納できる。大規模Webのログ保管やオンラインゲームデータなどの半構造化データに使用する。AWS: DocumentDB |
インメモリデータグリッド | KVSの仕組みをメモリを利用して高性能にしたDB。大量データを多数のサーバーのメモリ上で分散して管理し、ミリ秒単位の高速応答が可能。金融の取引処理などに使用する。AWS: Redis ElastiCache、Memcached ElastiCache |
全検索型エンジン×分散DB | データの全検索エンジンであるElasticsearchと分散データベースとを連携してデータ全検索処理が可能。サイト内のデータ検索などに使用する。AWS: Elasticsearch Service |
グラフDB | グラフ構造でデータ間のつながりを検索・可視化するDB。マインドマップのようにデータ関連をグラフ表示する。AWS: Neptune |
分散OLTP(RDB) | 分散型はNoSQLだったが、分散型でもRDBを構築するDB。RDBの構造とNoSQLの分散処理を兼ね備える。大規模な業務データ処理に使用する。AWS: Aurora |
DynamoDB
キーバリュー(ワイドカラム型)のDBです。
キーに対するバリューのCRUD操作、簡単なクエリやオーダー、数万人以上の同時アクセスへの処理ができます。
結果整合性を採用し、パーティショニング(データを複数に分割し、並列処理を可能に)による大量データの高速処理ができるが、細かいデータ処理には向きません。
ビッグデータのデータベースや大規模サービスでのデータ高速処理に使用できます。
DynamoDB Streamを用いれば、DynamoDBテーブルに保存された項目の追加・変更・削除発生時の履歴をキャプチャできます。これを用いれば、データ更新をトリガーにしたアプリケーション機能やレプリケーションに活用できます。
Aurora(Amazonオリジナル)
NoSQL型の分散高速処理とRDBとしてのデータ操作性を両立させた分散型のRDBです。RDSのデータベースソフトウェアの一つとして選択できます。
MySQLの2.5~5倍の性能+1/10の価格で提供されています。
高い並列処理機能によって大量の読み書きをするのに適したDBです。また、MySQL/PostgreSQLと互換性があり、同じ操作方法を利用可能です。
EFS(Elastic File System)
複数のEC2インスタンスからアクセス可能な共有ストレージです。(EBSでは複数インスタンスを持つことはできませんでした)
S3も共有可能ですが、S3はデータの長期保管用です。EFSはアプリケーションサービスを使っている間に即座に読み込み・書き込みをできます。
何千もの同時アクセスが実現可能です。
次の記事へ