この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。
はじめに
AWS認定ソリューションアーキテクト目指す学習のまとめ⑨
の後ろで、整理続きます。
今回は、AWSデータベースサービス関する知識を勉強します。
【6】AWSデータベースサービス
1.データベースサービス概要
2.RDBサービスーーRDS
3.Key-ValueDBサービス
4.In-memoryDBサービス
5.Redshiftサービス
6.DocumentDBとGraphDB(Neptune)サービス
1.データベースサービス概要
OLTPとOLAP
データ処理方法は、大きく2つのカテゴリ、OLTPとOLAPに分類されます。
OLTP
Online Transaction Processing(オンライントランザクション処理)
OLTPは大量に発生する小さいサイズのデータ処理が得意です。
OLTPツルには、SQL Server、Oracle、MySQL Server、PostgreSQL、Aurora、MariaDBなどが含まれます。
OLAP
Online Analytics Processing(オンライン分析処理)
OLAPは、高頻度で発生する読み書きアクセスには不向きですが、大量のデータベースの分析に向いています。
OLAPのツルには、AWS Redshift, Greenplum, Hadoop+Hiveなどがあります。
RDBとNoSQLDB
RDB
Relational Database(リレーショナルデータベース)
関係データベースと訳され、データを複数の表として管理し、表と表の関係を定義することで、複雑なデータの関連性を扱えるようにしたDBの管理方式です。通常はSQLというプログラミング言語を使って操作を行う。
NoSQLDB
Not only SQL またはnon-relational の略だと言われます(ノーリレーションデータベース)
分散データベースとして用いられるのです。NoSQLは一貫性よりも可用性を重視するため長時間の処理待ちが発生せずに、分散環境でも高速の処理が可能となります。NoSQLをデータモデルで分類すると、キーバリュー型・カラム型・ドキュメント型に分類できます。
2.RDBサービスーーRDS
RDSとは
Amazon Relational Database Service (Amazon RDS)
AWS クラウドでリレーショナルデータベースを簡単にセットアップ、運用、スケーリングできるウェブサービスです。業界標準のリレーショナルデータベース向けに、費用対効果に優れた拡張機能を備え、一般的なデータベース管理タスクを管理します
RDSの特徴
1.シンプルな構築(コンソール操作のみ)
2.運用負荷軽減(簡単に BKとリストア)
AWS RDSは以下の二つのバックアップ方法を提供しております
・自動バックアップ(Automated Backups)
・スナップショット(Snapshots)
3.セキュリティ高い(暗号化)
保管時のインスタンスとスナップショットの暗号化が可能(EBS暗号化と同様)
対応インスタンスタイプ
•db.m5. /db.m6. / db.r5. / db.t3.medium(現行世代)
•db.m3. / db.r3./db.m4. / db.r4.* / db.t2.large(旧世代)
4.高い可用性(Multi-AZ構成)
Multi-AZ(マルチAZデロイメント)
AWS RDSを複数のAZにデプロイメントして同期レプリケーション+自動フェイルオーバー実現
5.パフォーマンス向上( Read Replicas構成)
•ReplicaDBで読み取り専用処理を スケールアウト
•RDSのインスタンスのスケールアップ
6.1_[Demo]RDS作成と接続テスト
DB インスタンス用の Amazon VPC を作成する
プライベートサブネットおよびパブリックサブネットを持つ VPC を作成する
VPC ダッシュボード画面で、VPCウィザードの起動を選択する
パブリックとプライベート サブネットを持つ VPCを選択する
設定(Elastic IDがないなら、作成してください)、そして作成する
追加のサブネットの作成
先作ったのVPCを選択して、作成する
パブリックウェブサーバーの VPC セキュリティグループを作成する
先作ったのVPCを選択して、インバウンドルールをセキュリティグループに追加して、作成する
プライベート DB インスタンスの VPC セキュリティグループを作成する
先作ったのVPCを選択して、インバウンドルールをセキュリティグループに追加して、作成する
(今回のソールはこのチュートリアルで以前に作成したdemo-securitygroup セキュリティグループです)
作ったの二つのセキュリティグループ:
DB サブネットグループを作成する
Amazon RDS画面で、サブネットグループを作成する
サブネットグループの詳細に値を設定して、サブネットを追加して、作成する
DB インスタンスを作成する
Amazon RDS画面で、データベースを作成する
作成方法は標準作成、データベースはMySQLを選択する
テンプレートは無料の方を選択する、[設定]セクションで、以下の値を設定します。
DB インスタンスサイズはバースト可能クラス (t クラスを含む)を選択、ストレージはデフォルトでいい。
接続 は追加の接続設定 を開き、以下の値を設定します。
最後は追加設定でデータベース名を設定して、データベースを作成します。
作成しました。
EC2 インスタンスの作成と ウェブサーバーのインストール
EC2 インスタンスの起動
インスタンスの詳細を設定する ページで、ネットワーク部分を設定する。
同じページで、ユーザーデータは以下のコードを設定する
#!/bin/bash
sudo -s
yum update -y
yum install -y httpd
amazon-linux-extras install -y php7.2
chkconfig httpd on
service httpd start
echo "AddHandler php7-script .php" >> /etc/httpd/conf/httpd.conf
echo "<?php phpinfo();?>" > /var/www/html/phpinfo.php
cd /var/www/html
wget https://demo202012.s3-ap-northeast-1.amazonaws.com/connectTest.php
タグを追加する。
セキュリティグループの設定は既存のセキュリティグループを選択する。
EC2インスタンスを起動する。
EC2インスタンスを接続、Rootに切り替えて、vimでconnectTest.phpを編集する
servername,username,passwordはRDSを作成するときの値に変更します
ウェブブラウザを開いて、http:// EC2 instance endpoint/connectTest.php を参照することで、ウェブサーバーが正常に DBインスタンスに接続していることを確認します。
3.Key-ValueDBサービスーDynamoDB
NoSQL
NoSQLは主に、非常に大規模なデータ(FacebookやGoogleが毎日収集する数兆ビットのデータなど)の保存に使用されます。これらのデータには固定パターンがないし、DBのすべての項目を事前設定できない。NoSQLは、現在のIoTによって生成されるデータとBigData分析に使用されるデータにも適用できます。さらに、WebAppでのセッション情報の保存と使用もベストプラクティスシナリオです。
DynamoDB
DynamoDB関する知識と操作はAWS認定ソリューションアーキテクト目指す学習のまとめ⑦で参照して下さい。
4.In-memoryDBサービス-ElastiCache
Amazon ElastiCache を使用すると、クラウド内の人気のオープンソース互換のインメモリデータストアをシームレスにセットアップ、実行、およびスケーリングできます。高スループットかつ低レイテンシーなインメモリデータストアからデータを取得して、大量のデータを扱うアプリケーションを構築したり、既存のアプリケーションのパフォーマンスを改善したりすることが可能です。
Redis と Memcached
ElastiCache は、Redis と MemcachedのIn-memory エンジンのどちらでもサポートされます。
Redis
Redis は、リモートディクショナリサーバーの略で、データベース、キャッシュ、メッセージブローカー、およびキューとして使用するための、高速でオープンソースのメモリ内 Key-Value データストアです。
Memcached
Memcached は、使いやすく、高パフォーマンスなインメモリデータストアです。ミリ秒未満の応答時間を実現する、スケーラブルかつオープンソースの成熟したソリューションで、キャッシュやセッションストアとして役立ちます。
5.Redshiftサービス
Amazon Redshiftは、高速で強力な、完全に管理されたPBレベルの高速、スケーラブルで費用対効果の高い データウェアハウスおよびデータウェイク分析マネージドサービス。
Redshift利点
Redshift はお客様のデータレイク(DataLake)と統合でき、速いパフォーマンスと、低いコストを実現できます。
Redshift主要な機能
Redshift主要な機能:
①シングルノード(160Gb)のデプロイモードでもマルチノードデプロイモードでもできる。
②Columnar Data Storage:列指向型データストレージ
③Advanced Compression:カラム種別ごとの豊富な圧縮エンコード
④Massively Parallel Processing (MPP)
MPPという機構を用いてシェアード・ナッシング(shared nothing)を実現し、線形スケールを実現しています。つまり、インスタンスを追加するたびにデータ容量だけでなく、処理性能も向上していくということになります。これはビッグデータ処理の上では必須の機能と言える。
⑤簡単にインスタンス追加
⑥スナップショットが作成でき、必要におじて別のAZにリストアできる。
⑦CustomVPCとクラスタセキュリティグループ(SG)設定でセキュリティ向上。
⑧SSLを利用して、通信を暗号化する場合は、AWS ACMを利用して、証明書をクラスターにインストールする必要があります。クラスター作成時に、KMSを利用して暗号化することができます。RDS同様に後から暗号化することはできません。
6.DocumentDBとGraphDB(Neptune)サービス
DocumentDB
高速でスケーラブルかつ高可用性の MongoDB 互換データベースサービス
GraphDB(Neptune)
高速かつ信頼性の高いフルマネージドグラフデータベースサービス
まとめ
今日、私はAWSデータベースサービス関するのRDSの知識を整理し、学びました。
および、RDS作成と接続テストをしました。
注意が必要の点:
DBインスタンスに接続することが、何回も以下の問題が発生しました。
調査の結果はservernameの設定が不正です。
正確なservernameは、RDSで作成したデータベースのエンドポイントとポートの組み合わせです。
格式は「エンドポイント:ポート」(RDS画面で作成したデータベースの接続とセキュリティで参照できます)
また、username,passwordはAmazon RDS画面で、データベースを作成する時設定したの、マスターユーザー名とマスターパスワードです。