Contenu connexe Similaire à RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回- Similaire à RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回- (20) Plus de SORACOM, INC (20) RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-3. セミナー
Webセミナー
ほぼ週刊AWSマイスターシリーズ(全 回?)
ほぼ週刊 マイスターシリーズ(全11回 )
マイスターシリーズ(全
11/16 第08回 RDS
11/22 第09回 Elastic Beanstalk
11/30 第10回 EMR
12/07 第11回 SES
And more
12/15 第12回 S系全部載せ!SQS/SimpleDB/SNS
申し込みサイト
http://aws.amazon.com/jp/event_schedule/
4. プレゼント
@KenTamagawa画伯の
本日のプレゼントは・・・
左絵の中にもある
超限定
AWSマグネットセット
(基本ブロック)
を差し上げます!
5. 本スライドで使うアイコン
RDS RDS RDS RDS Oracle RDS MySQL RDS
マスター スレーブ リードレプリカ
ユーザー クライアント Internet マネージメント
コンソール
6. Agenda
RDSとは
RDSデモ
RDSの機能
RDSの事例
RDSのTips
パラメータチューニング
まとめ
Copyright © 2011 Amazon Web Services
8. AWSプラットフォーム
【モバイルSDK】
モバイルSDK】 SDK
AWS SDK for
【分散処理】
分散処理】
【メール配信】
メール配信】 Android & iOS
Amzon Elastic
Amazon SES
MapReduce 【コンテナ管理】
コンテナ管理】
サービス
AWS Elastic
【キューサービス】
キューサービス】 【プッシュサービス】
プッシュサービス】
Beanstalk
Amazon SQS Amazon SNS
【デプロイ管理】
デプロイ管理】
【RDBMS】
RDBMS】 【NoSQL】
NoSQL】 CloudFormation
データ Amazon SimpleDB
Amazon RDS
ベース
【仮想ディスク】
仮想ディスク】 【ロードバランサー】
ロードバランサー】
Amazon Elastic 【名前解決】
名前解決】
Amazon Elastic
Load Balancing Amazon
Block store
Route 53
ネットワーク
&インフラ
【仮想サーバ】
仮想サーバ】 【ストレージ】
ストレージ】 【コンテンツ配信】
コンテンツ配信】
Amazon EC2 Amazon S3 CloudFront
【仮想ネットワーク】
仮想ネットワーク】
Amazon VPC
エッジ
データセンター ロケーション
8
10. Amazon RDSとは?- 詳細 -
2009年に登場したクラウド上RDBMSサービス
設定と運用が容易な”データベース in クラウド”
EC2同様、管理の容易なDBサーバを数分で起動
自動バックアップ、パッチ更新、レプリケーシ
ョンおよびリードレプリカはAWSにお任せ
既存MySQL/Oracleアプリケーションとツール
が利用可能
時間単位の従量課金 (DBインスタンスのクラス
とリージョンで価格は変動)
10
11. 自社構築 vs RDS
OS
ラックへ 電源とNW
NW
HWの購入 インス
設置 を設定
トール
RDBMS
RDBMS
レプリ RDBMS
基本設定 インス
ケーショ 稼働確認
トール
ン設定
19. ライセンス指定
ライセンス指定
バージョンを指定
DBバージョンを指定
バージョンを
タイプを指定
DBタイプを指定
タイプを
マルチAZオプション
オプション指定
マルチ オプション指定
マイナーバージョン自動更新
マイナーバージョン自動更新
サイズ
DBサイズ
20. データベース名
データベース名
ポート番号
ポート番号
アベイラビリティゾーン
パラメーターグループ
DBパラメーターグループ
セキュリティグループ
DBセキュリティグループ
25. RDSコマンドライン
RDS Command Line Tools
http://aws.amazon.com/developertools/2928
最新版は1.4.007 (API 2011-04-01)
Javaベース
AWS_RDS_HOME/JAVA_HOME設定
キーの提供
アクセスキーのペア
X.509の証明書
26. RDSコマンドライン
rds-authorize-db-security-group-ingress rds-describe-db-snapshots
rds-create-db-instance rds-describe-engine-default-parameters
rds-create-db-instance-read-replica rds-describe-events
rds-create-db-parameter-group rds-describe-orderable-db-instance-options
rds-create-db-security-group rds-describe-reserved-db-instances
rds-create-db-snapshot rds-describe-reserved-db-instances-offerings
rds-delete-db-instance rds-modify-db-instance
rds-delete-db-parameter-group rds-modify-db-parameter-group
rds-delete-db-security-group rds-purchase-reserved-db-instances-offering
rds-delete-db-snapshot rds-reboot-db-instance
rds-describe-db-engine-versions rds-reset-db-parameter-group
rds-describe-db-instances rds-restore-db-instance-from-db-snapshot
rds-describe-db-parameter-groups rds-restore-db-instance-to-point-in-time
rds-describe-db-parameters rds-revoke-db-security-group-ingress
rds-describe-db-security-groups rds-version
30. Javaから起動する
public static void main(String[] args) throws IOException {
AmazonRDS client = new AmazonRDSClient(…);
client.setEndpoint("rds.ap-northeast-1.amazonaws.com");
CreateDBInstanceRequest req = new CreateDBInstanceRequest();
req.setDBInstanceIdentifier(“mydb");
req.setDBName(“mydb");
req.setMultiAZ(Boolean.FALSE); //マルチAZ設定
req.setDBInstanceClass(“db.m1.small”); //m1.smallを利用
を
req.setAllocatedStorage(new Integer(5)); // 5GB
req.setDBSecurityGroups(Arrays.asList("default"));
req.setEngine(“MySQL”); //MySQL 5.5.8を利用
を
req.setEngineVersion("5.5.8");
req.setMasterUsername("admin");
req.setMasterUserPassword("admin");
req.setAvailabilityZone(“ap-northeast-1a”);//AZを指定
を
//DBを作成する
を作成する
DBInstance result = client.createDBInstance(req);
}
31. RDSのエンドポイント
Region Endpoint Protocol
US East (Northern rds.us-east- HTTPS
Virginia) Region 1.amazonaws.com
US West (Oregon) rds.us-west- HTTPS
Region 2.amazonaws.com
US West (Northern rds.us-west- HTTPS
California) Region 1.amazonaws.com
EU (Ireland) Region rds.eu-west- HTTPS
1.amazonaws.com
Asia Pacific (Singapore) rds.ap-southeast- HTTPS
Region 1.amazonaws.com
Asia Pacific (Tokyo) rds.ap-northeast- HTTPS
Region 1.amazonaws.com
33. RDS(MySQL) の全体アーキテクチャ
アベイラビリティゾーンA アベイラビリティゾーンB
自動バック
自動バック データ同期
データ同期
アップ
アップ 自動フェイルオーバー
自動フェイルオーバー
非同期レプリケーション
非同期レプリケーション
スナップシ
スナップシ
ョット
ョット
33
34. RDS(MySQL) アーキテクチャ
アベイラビリティゾーンA アベイラビリティゾーンB
自動バック
自動バック データ同期
データ同期
アップ
アップ 自動フェイルオーバー
自動フェイルオーバー
非同期レプリケーション
非同期レプリケーション
マルチAZデプロイメント
スナップシ
スナップシ
ョット
ョット
(マルチAZ)
34
36. RDS(MySQL) アーキテクチャ
アベイラビリティゾーンA アベイラビリティゾーンB
自動バック
自動バック データ同期
データ同期
アップ
アップ 自動フェイルオーバー
自動フェイルオーバー
非同期レプリケーション
リードレプリカ レプリケーション
非同期
スナップシ
スナップシ
ョット
ョット
36
38. RDS(MySQL) アーキテクチャ
アベイラビリティゾーンA アベイラビリティゾーンB
自動バックアップ機能
自動バック
自動バック データ同期
データ同期
アップ
アップ 自動フェイルオーバー
自動フェイルオーバー
非同期レプリケーション
非同期レプリケーション
スナップシ
スナップシ
ョット
ョット
38
42. スケールアップ機能
・DBインスタンスのタイプ
インスタンスのタイプ
・割り当てたストレージ量
・マルチAZ
・マルチ
・パラメータグループ
など自由に変更可能
44. Oracle RDSとは
2011年Q2ロウンチ
Oracle Database 11g Release 2
Oracle Database SE1, SE, EE + オプションパック
ライセンス持ち込み(BYOL) か 従量課金(時間単位)
初期はシングルインスタンスでレプリケーション
などはすぐに機能追加の予定
OracleVMのハードパーティショニングで稼働
44
51. Oracle RDSプライシング
複数ライセンスオプションが今後利用可能に
既存のOracleライセンス
OracleまたはOracleパートナーから新規にOracle
ライセンスを購入
Amazonからの従量課金制での利用
Amazon RDSの2つのプライシングモデル
オンデマンドな時間単位の従量課金モデル
Amazon RDS リザーブドインスタンス
51
55. Gumiさんのサーバー構成
ELB
App
App
サーバ
App c1.xlarge
サーバ
サーバ - 60台
Cache KVS
KVS
サーバ サーバ 同期
サーバ
m1.large
m1.large RDS
- 4台
- 8台 x 2 - マルチAZ
ゾーンA
ゾーン ゾーンB
ゾーン
56. gumi事例: AWS運用モデル
複数のゲームをAWSで運用(全体で25億PV/月)
最大ゲーム1本で6000万PV/日
ゲーム毎に、ELB+EC2+RDSの同じセットを再利用
人気ゲーム ゲームA ゲームB ゲームC
ELB ELB ELB
ELB
AA
Ap
Ap Ap
Ap ppA
ppAp ppAp ppp
App サp
サ サp p
App サ サ
サーバApp ーサ
ー ーサ Cー ササ K
サーバ ー K
サーバ バー バー aバ ーー V
Ca バ バ KV Ca バ バ KV バ V
KV KV c バ SS
ch SS ch SS h ササ
e ササ e ササ e ーー
サ ーー サ ーー サ ババ
ー ババ ー バ
Cache KVS バ ー
バ バ
サーバ KVS
サーバ バ
サーバ
インフラエンジニアは1名!
(~2011/8、今は3名!)
57. gumi事例: AWS運用モデル
ゲームのライフサイクルにあわせて、
サーバー台数、サーバースペックを調整
開発時 申請時 公開時
ELB
ELB
App
サーバ
App App
App
サーバ サーバ
App
サーバ
サーバ
c1.xlarge
- 60台
1台にまとめて Cache KVS
KVS 同期
サーバ サーバ
サーバ
個人毎に m1.large
m1.large
- 4台 RDS
- 8台 x 2 - マルチAZ
ゾーンA
ゾーン ゾーンB
ゾーン
最小構成に
Appサーバーを8台
DBをマルチAZに(m1.large)
63. DBセキュリティグループ
RDS専用のセキュリティグループ
EC2のセキュリティグループを許可する
• または
rds-create-db-security-group hoge --db-security-
CIDRで許可する
group-description "foo"
rds-authorize-db-security-group-ingress hoge -g bar -
o $ACCOUNT_ID
-o:アカウントID
-g:EC2セキュリティグループ名
rds-revoke-db-security-group-ingress hoge -o
$ACCOUNT_ID -g bar
64. RDSへのデータの移行
MySQLを使った一例
mysqldump
• 少量データの場合直接インポート
mysqlimportでバルクインポート
• フラットなファイルで複数に分割、圧縮
• RDSを一旦停止、スナップショット作成
• スナップショットから新DB作成
• 自動バックアップを一旦停止
• mysqlimportでのデータのロード
• 自動バックアップ復旧
• サービス再開
65. パラメータチューニング
ManagementConsoleからは出来ない
DBパラメータグループを作成して、パラメータ
をチューニングする
RDSコマンドを使う必要がある
• rds-create-db-parameter-group
• rds-modify-db-parameter-group
を取得するよう変更した例
//Slow queryを取得するよう変更した例
rds-modify-db-parameter-group group1
-p "name=slow_query_log, value=ON, method=immediate"
-p "name=long_query_time, value=1, method=immediate"
-p "name=min_examined_row_limit, value=100, method=immediate"
66. パラメータチューニング(2)
$ rds-describe-db-parameters group1 --source user
DBPARAMETER long_query_time engine-default integer dynamic true
DBPARAMETER min_examined_row_limit engine-default integer dynamic
true
DBPARAMETER slow_query_log engine-default boolean dynamic true
$ rds-describe-db-parameters group1 --source user
DBPARAMETER long_query_time 1 user integer dynamic true
DBPARAMETER min_examined_row_limit 100 user integer dynamic true
DBPARAMETER slow_query_log 1 user boolean dynamic true
69. メトリクスと監視
CloudWatchにてRDSメトリクスを監視
メトリクス名 説明
BinLogDiskUsage マスターのバイナリログサイズ
CPUUtilization CPU利用量
DatabaseConnections DBのコネクション数
FreeableMemory 使えるメモリ量
FreeStorageSpace 使えるディスクスペース
ReadIOPS 読み込みの平均IOPS
ReadLatency 読み込みのレイテンシ
ReadThroughput 読み込みスループット
ReplicaLag リードレプリカのタイムラグ
SwapUsage DBで使用しているスワップ
WriteIOPS 書き込みの平均IOPS
WriteLatency 書き込みのレイテンシ
WriteThroughput 書き込みスループット
72. MultiAZにおけるリードレプリカの更新停止
に関して(MySQL)(2)
対応策1
rds-modify-db-parameter-groupで
• binlogの同期:sync_binlog=1
• 2PCコミット:innodb_support_xa=1
• http://dev.mysql.com/doc/refman/5.1/en/binary-
log.html
対応策2
問題が発生した場合に、リードレプリカを再度作
り直す