rds詳細 -ほぼ週刊awsマイスターシリーズ第8回-

82
AS AS AS AS Aꜳꝏ RDS Aꜳꝏ RDS Aꜳꝏ RDS Aꜳꝏ RDS 20111116大谷 晋平 @shot6

Upload: -ken-tamagawa-amazon-web-services

Post on 11-May-2015

13.894 views

Category:

Technology


10 download

TRANSCRIPT

Page 1: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

AWSAWSAWSAWSマイスターシリーズマイスターシリーズマイスターシリーズマイスターシリーズ~~~~Amazon RDSAmazon RDSAmazon RDSAmazon RDS~~~~

2011年11月16日

大谷 晋平( @shot6)ソリューションアーキテクト

Page 2: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

ほぼ週刊AWSマイスターシリーズへようこそ!~GoToMeetingの使い方~

参加者は、自動的にミュートになっています

質問を投げることができます!

� GoToMeetingのチャットの仕組みを使って、随時書き込んでください

� ただし環境によっては、日本語の直接入力ができないので、

お手数ですが、テキストエディタ等に打ち込んでから、

貼り付けててください

� 最後のQ&Aの時間で、できるだけ回答させて頂きます

� 書き込んだ質問は、主催者にしか見えません� 書き込んだ質問は、主催者にしか見えません

Twitterのハッシュタグは#jawsugでどうぞ

Copyright © 2011 Amazon Web Services

Page 3: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

Webセミナーセミナーセミナーセミナーほぼ週刊ほぼ週刊ほぼ週刊ほぼ週刊AWSマイスターシリーズ(全マイスターシリーズ(全マイスターシリーズ(全マイスターシリーズ(全11回回回回?))))

� 11/16 第08回 RDS

� 11/22 第09回 Elastic Beanstalk

� 11/30 第10回 EMR

� 12/07 第11回 SES� 12/07 第11回 SES

� And more

� 12/15 第12回 S系全部載せ!SQS/SimpleDB/SNS

http://aws.amazon.com/jp/event_schedule/申し込みサイト

http://aws.amazon.com/jp/event_schedule/

Page 4: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

プレゼントプレゼントプレゼントプレゼント

本日のプレゼントは・・・@KenTamagawa画伯の左絵の中にもある

本日のプレゼントは・・・左絵の中にもある超限定AWSマグネットセット(基本ブロック)を差し上げます!を差し上げます!

Page 5: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

本スライドで使うアイコン

RDSマスター

RDSスレーブ

Oracle RDSRDSリードレプリカ

MySQL RDSRDS

ユーザー クライアント Internet マネージメントコンソール

Page 6: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

Agenda

RDSとは

RDSデモRDSデモ

RDSの機能

RDSの事例

RDSのTips

� パラメータチューニング� パラメータチューニング

まとめ

Copyright © 2011 Amazon Web Services

Page 7: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

Amazon Relational Database Service Amazon Relational Database Service

(RDS)とは

7

Page 8: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

AWSプラットフォーム

サービスサービスサービスサービス

【【【【モバイルモバイルモバイルモバイルSDKSDKSDKSDK】】】】AWS SDK for AWS SDK for AWS SDK for AWS SDK for Android & Android & Android & Android & iOSiOSiOSiOS【【【【分散処理分散処理分散処理分散処理】】】】

AmzonAmzonAmzonAmzon Elastic Elastic Elastic Elastic MapReduceMapReduceMapReduceMapReduce

【【【【メール配信メール配信メール配信メール配信】】】】

Amazon SESAmazon SESAmazon SESAmazon SES【【【【コンテナ管理コンテナ管理コンテナ管理コンテナ管理】】】】

AWS Elastic AWS Elastic AWS Elastic AWS Elastic

【【【【RDBMSRDBMSRDBMSRDBMS】】】】Amazon RDSAmazon RDSAmazon RDSAmazon RDS

【【【【ロードバランサーロードバランサーロードバランサーロードバランサー】】】】

Amazon Elastic Amazon Elastic Amazon Elastic Amazon Elastic Load BalancingLoad BalancingLoad BalancingLoad Balancing

データデータデータデータベースベースベースベース

ネットワークネットワークネットワークネットワーク

【【【【仮想ディスク仮想ディスク仮想ディスク仮想ディスク】】】】

Amazon Elastic Amazon Elastic Amazon Elastic Amazon Elastic Block storeBlock storeBlock storeBlock store

【【【【キューサービスキューサービスキューサービスキューサービス】】】】

Amazon SQSAmazon SQSAmazon SQSAmazon SQS

【【【【NoSQLNoSQLNoSQLNoSQL】】】】Amazon Amazon Amazon Amazon SimpleDBSimpleDBSimpleDBSimpleDB

【【【【プッシュサービスプッシュサービスプッシュサービスプッシュサービス】】】】

Amazon SNSAmazon SNSAmazon SNSAmazon SNS

AWS Elastic AWS Elastic AWS Elastic AWS Elastic BeanstalkBeanstalkBeanstalkBeanstalk

【【【【デプロイ管理デプロイ管理デプロイ管理デプロイ管理】】】】CloudFormationCloudFormationCloudFormationCloudFormation

【【【【名前解決名前解決名前解決名前解決】】】】

Amazon Amazon Amazon Amazon Route 53Route 53Route 53Route 53

8

【【【【仮想サーバ仮想サーバ仮想サーバ仮想サーバ】】】】

Amazon EC2Amazon EC2Amazon EC2Amazon EC2【【【【ストレージストレージストレージストレージ】】】】

Amazon S3Amazon S3Amazon S3Amazon S3

【【【【コンテンツ配信コンテンツ配信コンテンツ配信コンテンツ配信】】】】

CloudFrontCloudFrontCloudFrontCloudFront

データセンターデータセンターデータセンターデータセンター

ネットワークネットワークネットワークネットワーク&インフラ&インフラ&インフラ&インフラ

エッジエッジエッジエッジロケーションロケーションロケーションロケーション

【【【【仮想ネットワーク仮想ネットワーク仮想ネットワーク仮想ネットワーク】】】】

Amazon VPC

Route 53Route 53Route 53Route 53

Page 9: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

Amazon RDSとは?

RDBMS in the CloudRDBMS in the Cloud

�MySQL, Oracle

メンテナンスレス

スケーラブルで柔軟スケーラブルで柔軟

Page 10: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

Amazon RDSとは?-詳細 -

2009年に登場したクラウド上RDBMSサービス

設定と運用が容易な”データベース in クラウド”設定と運用が容易な”データベース in クラウド”

EC2同様、管理の容易なDBサーバを数分で起動

自動バックアップ、パッチ更新、レプリケーションおよびリードレプリカはAWSにお任せ

既存MySQL/Oracleアプリケーションとツールが利用可能が利用可能

時間単位の従量課金 (DBインスタンスのクラスとリージョンで価格は変動)

10

Page 11: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

自社構築 vs RDS

HWの購入ラックへ 電源とNW

OS

インスHWの購入設置

NWを設定

インストール

基本設定RDBMS

インストール

RDBMS

レプリケーション設定

RDBMS稼働確認

Page 12: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

自社構築 vs RDS

RDSだと

RDSのオプ

ションを選んで起動!

アプリケーションを書く!!

Page 13: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

自社構築 vs. RDS

数分で起動可能か?

単一APIコールまたは数クリックでスケールが可能か?単一APIコールまたは数クリックでスケールが可能か?

起動時に既に適切な設定がされているか?

同期レプリケーションと自動フェイルオーバー(option)

ポイントインタイムリカバリバックアップやクローンの為のDBスナップショット管理

ハードウェアや完全な環境の制御

自動パッチ更新(option)

13

自動パッチ更新(option)

既存MySQL製品との互換性

コスト0でダッシュボードでCPU/メモリ等メトリクス

Page 14: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

RDSデモ

Page 15: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

RDSの起動

GUIから

コマンドラインから

SDKから

Page 16: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

RDSの起動

GUIから

コマンドラインから

SDKから

Page 17: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-
Page 18: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

MySQLかOracleを選択MySQLかOracleを選択(通常はOracle SEも見えます)

Page 19: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

ライセンスライセンスライセンスライセンス指定指定指定指定

DBバージョンをバージョンをバージョンをバージョンを指定指定指定指定

DBタイプをタイプをタイプをタイプを指定指定指定指定

マルチマルチマルチマルチAZオプションオプションオプションオプション指定指定指定指定

マイナーバージョンマイナーバージョンマイナーバージョンマイナーバージョン自動更新自動更新自動更新自動更新

DBサイズサイズサイズサイズ

Page 20: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

データベースデータベースデータベースデータベース名名名名データベースデータベースデータベースデータベース名名名名

ポートポートポートポート番号番号番号番号

アベイラビリティゾーンアベイラビリティゾーンアベイラビリティゾーンアベイラビリティゾーン

DBパラメーターグループパラメーターグループパラメーターグループパラメーターグループDBパラメーターグループパラメーターグループパラメーターグループパラメーターグループ

DBセキュリティグループセキュリティグループセキュリティグループセキュリティグループ

Page 21: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

自動自動自動自動バックアップバックアップバックアップバックアップ期間期間期間期間自動自動自動自動バックアップバックアップバックアップバックアップ期間期間期間期間

日時日時日時日時バックアップバックアップバックアップバックアップ時刻時刻時刻時刻

メンテナンスメンテナンスメンテナンスメンテナンス時刻時刻時刻時刻メンテナンスメンテナンスメンテナンスメンテナンス時刻時刻時刻時刻

Page 22: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

パラメータのパラメータのパラメータのパラメータの確認確認確認確認

Page 23: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-
Page 24: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

RDSの起動

GUIから

コマンドラインから

SDKから

Page 25: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

RDSコマンドライン

RDS Command Line Tools� http://aws.amazon.com/developertools/2928� http://aws.amazon.com/developertools/2928

� 最新版は1.4.007 (API 2011-04-01)

Javaベース

� AWS_RDS_HOME/JAVA_HOME設定

キーの提供キーの提供

� アクセスキーのペア

� X.509の証明書

Page 26: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

RDSコマンドラインrds-authorize-db-security-group-ingress

rds-create-db-instance

rds-create-db-instance-read-replica

rds-create-db-parameter-group

rds-create-db-security-group

rds-describe-db-snapshots

rds-describe-engine-default-parameters

rds-describe-events

rds-describe-orderable-db-instance-options

rds-describe-reserved-db-instancesrds-create-db-security-group

rds-create-db-snapshot

rds-delete-db-instance

rds-delete-db-parameter-group

rds-delete-db-security-group

rds-delete-db-snapshot

rds-describe-db-engine-versions

rds-describe-db-instances

rds-describe-db-parameter-groups

rds-describe-db-parameters

rds-describe-reserved-db-instances

rds-describe-reserved-db-instances-offerings

rds-modify-db-instance

rds-modify-db-parameter-group

rds-purchase-reserved-db-instances-offering

rds-reboot-db-instance

rds-reset-db-parameter-group

rds-restore-db-instance-from-db-snapshot

rds-restore-db-instance-to-point-in-time

rds-revoke-db-security-group-ingressrds-describe-db-parameters

rds-describe-db-security-groups

rds-revoke-db-security-group-ingress

rds-version

Page 27: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

コマンドラインからRDSを起動する

rds-create-db-instance yourdb

--allocated-storage 5

--db-instance-class db.m1.small--db-instance-class db.m1.small

--engine mysql

--master-username admin

--master-user-password admin

--availability-zone ap-northeast-1a

--db-name hogedb--db-name hogedb

--db-security-groups default

--engine-version 5.5.8

--multi-az false

--region ap-northeast-1

Page 28: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

RDSの起動

GUIから

コマンドラインから

SDKから

Page 29: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

RDSのSDK

RDSの起動やメンテナンス等をSDKから行うことが出来る行うことが出来る

� Java

� .NET

� PHP

� など� など

Page 30: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

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.setMasterUsername("admin");

req.setMasterUserPassword("admin");

req.setAvailabilityZone(“ap-northeast-1a”);//AZをををを指定指定指定指定//DBをををを作成作成作成作成するするするするDBInstance result = client.createDBInstance(req);

}

Page 31: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

RDSのエンドポイント

Region Endpoint Protocol

US East (Northern Virginia) Region

rds.us-east-1.amazonaws.com

HTTPSVirginia) Region 1.amazonaws.com

US West (Oregon) Region

rds.us-west-2.amazonaws.com

HTTPS

US West (Northern California) Region

rds.us-west-1.amazonaws.com

HTTPS

EU (Ireland) Region rds.eu-west-1.amazonaws.com

HTTPS

Asia Pacific (Singapore) rds.ap-southeast- HTTPSAsia Pacific (Singapore) Region

rds.ap-southeast-1.amazonaws.com

HTTPS

Asia Pacific (Tokyo) Region

rds.ap-northeast-1.amazonaws.com

HTTPS

Page 32: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

RDS機能

Page 33: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

RDS(MySQL)の全体アーキテクチャ

アベイラビリティゾーンA アベイラビリティゾーンB

自動バック自動バック データデータデータデータ同期同期同期同期自動バックアップ

スナップショット

自動バックアップ

スナップショット

データデータデータデータ同期同期同期同期

非同期非同期非同期非同期レプリケーションレプリケーションレプリケーションレプリケーション

自動自動自動自動フェイルオーバーフェイルオーバーフェイルオーバーフェイルオーバー

33

ョット

Page 34: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

RDS(MySQL)アーキテクチャ

アベイラビリティゾーンA アベイラビリティゾーンB

自動バック自動バック データデータデータデータ同期同期同期同期自動バックアップ

スナップショット

自動バックアップ

スナップショット

データデータデータデータ同期同期同期同期

非同期非同期非同期非同期レプリケーションレプリケーションレプリケーションレプリケーション

自動自動自動自動フェイルオーバーフェイルオーバーフェイルオーバーフェイルオーバー

マルチAZデプロイメント(マルチAZ)

34

ョット

Page 35: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

マルチAZデプロイメントとは(マルチAZ)

ワンクリックで適用可能な耐障害性耐障害性耐障害性耐障害性を高めるソリューション

DBA� 高い技術力を持つDBAが行っていた設計をそのままサービス化

同期レプリケーション+自動フェイルオーバ

� アプリ側での対処は必要なし

フェイルオーバのタイミングフェイルオーバのタイミング

� パッチ適用などのメンテナンス計画停止

� インスタンスやハードウェア障害

35

Page 36: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

RDS(MySQL)アーキテクチャ

アベイラビリティゾーンA アベイラビリティゾーンB

自動バック自動バック データデータデータデータ同期同期同期同期自動バックアップ

スナップショット

自動バックアップ

スナップショット

データデータデータデータ同期同期同期同期

非同期非同期非同期非同期レプリケーションレプリケーションレプリケーションレプリケーション

自動自動自動自動フェイルオーバーフェイルオーバーフェイルオーバーフェイルオーバー

リードレプリカ

36

ョット

Page 37: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

リードレプリカとは?

特定DBインスタンスの読み込み用のコピー

想定ユースケース想定ユースケース

� リードのスケーリング、ビジネスレポート

� マルチAZの耐障害性の代替の機能ではない

マルチAZとは異なり、MySQL本来の非同期レプリケーションをそのまま使う

最大5台まで設定可能最大5台まで設定可能

マルチAZとリードレプリカを併用はもちろん可能

37

Page 38: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

RDS(MySQL)アーキテクチャ

アベイラビリティゾーンA アベイラビリティゾーンB

自動バック自動バック データデータデータデータ同期同期同期同期

自動バックアップ機能

自動バックアップ

スナップショット

自動バックアップ

スナップショット

データデータデータデータ同期同期同期同期

非同期非同期非同期非同期レプリケーションレプリケーションレプリケーションレプリケーション

自動自動自動自動フェイルオーバーフェイルオーバーフェイルオーバーフェイルオーバー

38

ョット

Page 39: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

自動バックアップ機能

RDS標準装備

1日1回+トランザクションログ1日1回+トランザクションログ

保存期間は最大8日間

� それ以降はスナップショット保存

5分前までの任意の期間に復元可能

39

Page 40: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

スケールアップ機能

マネージメントコンソールからスケールアップ可能

� 一度停止が必要� 一度停止が必要

コマンドラインからも勿論可能

� 例:rds-modify-db-instance hogedb -c db.m1.large --apply-immediately

CPUは1ECUから26ECUまで

メモリは1.7GBから68GBまでメモリは1.7GBから68GBまで

ディスクは5GBから1TBまで

� 大量書き込みなどスケールアウトでの対処が難しい場合にスケールアップで対処可能

� 増量できても削減できないので注意が必要40

Page 41: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

スケールアップ機能

Page 42: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

スケールアップ機能

・・・・DBインスタンスのタイプインスタンスのタイプインスタンスのタイプインスタンスのタイプ・割り当てたストレージ量・割り当てたストレージ量・割り当てたストレージ量・割り当てたストレージ量・マルチ・マルチ・マルチ・マルチAZ

・パラメータグループ・パラメータグループ・パラメータグループ・パラメータグループなど自由に変更可能など自由に変更可能など自由に変更可能など自由に変更可能

Page 43: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

OracleOracle

RDSRDS

Page 44: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

Oracle RDSとは

2011年Q2ロウンチ

� Oracle Database 11g Release 2� Oracle Database 11g Release 2

Oracle Database SE1, SE, EE + オプションパック

ライセンス持ち込み(BYOL) か従量課金(時間単位)

初期はシングルインスタンスでレプリケーションなどはすぐに機能追加の予定

OracleVMのハードパーティショニングで稼働OracleVMのハードパーティショニングで稼働

44

Page 45: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

RDSのOracleサポート

ライセンス持ち込み(BYOL)

� RDS部分についてはAWSプレミアムサポート� RDS AWS(インフラ部分含む)

� AWSがパッチとアップグレードを管理

� Oracleデータベースに関してはOracleサポートIDを使ったOracle社のサポート

従量課金ライセンス従量課金ライセンス

� RDS部分およびOracleに関してもAWSプレミアムサポートでカバー

45

Page 46: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

RDS価格

Page 47: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

Amazon RDSプライシング

MySQLの標準価格

47

Page 48: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

Amazon RDSプライシング

MySQLのMultiAZ価格

48

Page 49: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

Amazon RDSプライシング

Oracleの標準価格

49

AWSライセンス BYOL

(ライセンス持込)

Page 50: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

RDSプライシング注意点

マルチAZでは価格は2倍になる

ストレージで$0.12/GB$0.12/GB

IOで$0.12/100万リクエスト

バックアップ用ストレージは無料

RDS用リザーブドインスタンスもご提供

� 1年間、3年間のコミットによる価格を大幅削減

50

Page 51: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

Oracle RDSプライシング

複数ライセンスオプションが今後利用可能に

� 既存のOracleライセンス� 既存のOracleライセンス

� OracleまたはOracleパートナーから新規にOracleライセンスを購入

� Amazonからの従量課金制での利用

Amazon RDSの2つのプライシングモデル

� オンデマンドな時間単位の従量課金モデル� オンデマンドな時間単位の従量課金モデル

� Amazon RDS リザーブドインスタンス

51

Page 52: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

RDS事例

Page 53: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

RDSのお客様代表事例

Page 54: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

大規模事例 – gumi様

ソーシャルゲーム提供

AWS上で開発・運用AWS上で開発・運用

特にRDSを積極的にお使いいただいている

Page 55: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

Gumiさんのサーバー構成

App

ELB

Appサーバ

Cacheサーバ

KVSサーバ

AppサーバAppサーバ

KVS

c1.xlarge - 60台

同期

ゾーンゾーンゾーンゾーンA

サーバ サーバサーバ

m1.large- 4台

m1.large- 8台 x 2

ゾーンゾーンゾーンゾーンB

RDS-マルチAZ

同期

Page 56: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

gumi事例: AWS運用モデル

複数のゲームをAWSで運用(全体で25億PV/月)

� 最大ゲーム1本で6000万PV/日

� ゲーム毎に、ELB+EC2+RDSの同じセットを再利用

人気ゲーム ゲームA ゲームB ゲームC

AppサーバAppサーバAppサーバ

ELB

App

サーバ

Cach

KVS

App

サーバ

App

サーバ KV

S

ELB

App

サーバ

Cach

KVS

App

サーバ

App

サーバ KV

S

ELB

App

サーバ

Cach

KVS

App

サーバ

App

サーバ

KVS

ELB

インフラエンジニアは1名!(~2011/8、今は3名!)

Cacheサーバ

KVSサーバKVSサーバ

che

サーバ

S

サーバ

S

サーバ

che

サーバ

S

サーバ

S

サーバ

he

サーバ

サーバ

S

サーバ

Page 57: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

gumi事例: AWS運用モデルゲームのライフサイクルにあわせて、サーバー台数、サーバースペックを調整

開発時

Appサーバ

申請時 公開時

1台にまとめて

Appサーバ

ELB

Appサーバ

Cacheサーバ

KVSサーバ

AppサーバAppサーバ

KVS

c1.xlarge - 60台

ELB

同期

個人毎に

最小構成にAppサーバーを8台DBをマルチAZに(m1.large)

ゾーンゾーンゾーンゾーンA

サーバ サーバKVSサーバ

m1.large- 4台 m1.large

- 8台 x 2

ゾーンゾーンゾーンゾーンB

RDS-マルチAZ

同期

Page 58: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

gumi事例: ピーク時のさばき方

突発的な対応が必要なときは、EC2、RDSのスペックを上げて、時間をかせぐ

AppサーバAppサーバAppサーバ

ELB

m1.large

メモリメモリメモリメモリ 7.5GB

CPU 4ECU

m2.4xlarge

メモリメモリメモリメモリ 68GB

CPU 26ECU

Cacheサーバ

KVSサーバKVSサーバ

CPU 4ECU CPU 26ECU

Page 59: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

gumi事例: バックアップの仕組み

データベース部分

� RDSのポイントインタイムリカバリを利用(8日分)� RDSのポイントインタイムリカバリを利用(8日分)

• 5分前以前の何時の時点にも戻せる

� 8日前以前の分については、手動スナップショットを利用する

Page 60: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

Gumiさんの事例からわかる事

非常にスケールが必要なアプリケーションでもRDSは有効RDSは有効

� スケールアップ

� スケールアウト(リードレプリカ)

DBの管理コストを劇的に削減し、アプリケーションを構築する部分にリソースを集中できる

RDSの柔軟さを活用する事で、ピークにもあわRDSの柔軟さを活用する事で、ピークにもあわてず対応できる

Page 61: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

Tips

Page 62: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

RDSのTips

DBセキュリティグループ

RDSへのデータの移行RDSへのデータの移行

パラメーターチューニング

タイムゾーンに関して

メトリクス

マルチAZに関しての考え方マルチAZに関しての考え方

いつRDSを使うべきか

Page 63: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

DBセキュリティグループ

RDS専用のセキュリティグループ

� EC2のセキュリティグループを許可する� EC2のセキュリティグループを許可する

•または

� CIDRで許可するrds-create-db-security-group hoge --db-security-group-description "foo"rds-authorize-db-security-group-ingress hoge -g bar -o $ACCOUNT_ID

-o:アカウントID-o:アカウントID-g:EC2セキュリティグループ名

rds-revoke-db-security-group-ingress hoge -o $ACCOUNT_ID -g bar

Page 64: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

RDSへのデータの移行

MySQLを使った一例

� mysqldump

• 少量データの場合直接インポート• 少量データの場合直接インポート

� mysqlimportでバルクインポート

• フラットなファイルで複数に分割、圧縮

• RDSを一旦停止、スナップショット作成

• スナップショットから新DB作成

• 自動バックアップを一旦停止• 自動バックアップを一旦停止

• mysqlimportでのデータのロード

• 自動バックアップ復旧

• サービス再開

Page 65: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

パラメータチューニング

ManagementConsoleからは出来ない

DBパラメータグループを作成して、パラメータ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"

Page 66: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

パラメータチューニング(2)

$ rds-describe-db-parameters group1 --source userDBPARAMETER long_query_time engine-default integer dynamic true DBPARAMETER min_examined_row_limit engine-default integer dynamic

$ rds-describe-db-parameters group1 --source userDBPARAMETER long_query_time 1 user integer dynamic true

DBPARAMETER min_examined_row_limit engine-default integer dynamic trueDBPARAMETER slow_query_log engine-default boolean dynamic true

DBPARAMETER long_query_time 1 user integer dynamic trueDBPARAMETER min_examined_row_limit 100 user integer dynamic trueDBPARAMETER slow_query_log 1 user boolean dynamic true

Page 67: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

パラメータチューニング(3)

注意点

� チューニング出来る項目と出来ない項目がある� チューニング出来る項目と出来ない項目がある

• タイムゾーンは変更不可・・・

� rds-describe-db-parametersを使ってチェック

� または、ManagementConsoleでチェック

Page 68: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

タイムゾーンに関して

rds-describe-db-parametersで見てみると、タイムゾーンは変更不可能な設定項目タイムゾーンは変更不可能な設定項目

� アプリケーション側でJSTなど適切なタイムゾーンを指定する必要あり

� init_connectパラメータによる、タイムゾーンの設定は現状保証されない

Page 69: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

メトリクスと監視

CloudWatchにてRDSメトリクスを監視メトリクス名メトリクス名メトリクス名メトリクス名 説明説明説明説明

BinLogDiskUsage マスターのバイナリログサイズ

CPUUtilization CPU利用量CPUUtilization CPU利用量

DatabaseConnections DBのコネクション数

FreeableMemory 使えるメモリ量

FreeStorageSpace 使えるディスクスペース

ReadIOPS 読み込みの平均IOPS

ReadLatency 読み込みのレイテンシ

ReadThroughput 読み込みスループットReadThroughput 読み込みスループット

ReplicaLag リードレプリカのタイムラグ

SwapUsage DBで使用しているスワップ

WriteIOPS 書き込みの平均IOPS

WriteLatency 書き込みのレイテンシ

WriteThroughput 書き込みスループット

Page 70: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

メトリクスと監視(2)

Amazon RDS Eventsでも監視可能

� ManagementConsoleで監視

� rds-describe-events� rds-describe-events

Page 71: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

MultiAZにおけるリードレプリカの更新停止に関して(MySQL)

MultiAZ環境でフェイルオーバしたタイミングでリードレプリカの更新の伝播が停止する可能でリードレプリカの更新の伝播が停止する可能性がある

� 常にそうなるわけではない

非同期のMySQLレプリケーション

� binlogがディスクにフラッシュされていない状況下で、フェイルオーバした場合に稀に発生下で、フェイルオーバした場合に稀に発生

� レプリケーションのコストとの兼ね合い

Page 72: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

MultiAZにおけるリードレプリカの更新停止に関して(MySQL)(2)

対応策1

� rds-modify-db-parameter-groupで� 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対応策2

� 問題が発生した場合に、リードレプリカを再度作り直す

Page 73: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

マルチAZに対しての考え方

良く聞く声:マルチAZでマスターをWebアプリと同一のAZに割り当てたいと同一のAZに割り当てたい

マインドシフトが必要

� マルチAZでWebアプリが構築されていれば、RDSのマスターがどちらにあるかは意識しなくてよい

� マルチAZでの複数DCが利用できるものを最大限� マルチAZでの複数DCが利用できるものを最大限に活かしてWebアプリのコンポーネントを分散して配置するのが重要

Page 74: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

いつRDSを使うべきか

RDSの代替案

� Amazon SimpleDB� Amazon SimpleDB

� EC2上でMySQLやOracleを展開

vs SimpleDB

� シンプルなクエリ、堅牢性・管理不要を追及したい場合はSimpleDB

� 既存MySQLの知識やツールを使いたい場合は� 既存MySQLの知識やツールを使いたい場合はRDS

Page 75: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

いつRDSを使うべきか(2)

vs EC2上のMySQLやOracle

� 完全に自分でコントロールしたい場合、RDSの� 完全に自分でコントロールしたい場合、RDSの提供範囲外のものが欲しい場合はEC2

� RDSの機能セットや管理機能が必要十分で、運用保守の手間を下げたい場合はRDS

http://aws.amazon.com/running_databases/http://aws.amazon.com/running_databases/

Page 76: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

今後のロードマップ

新しいリージョンでの展開

Oracle RDS、権限まわりの緩和Oracle RDS、権限まわりの緩和

エラーログアクセス

より小さなインスタンスタイプの提供

より大きなストレージの割り当て

76

Page 77: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

まとめ

Page 78: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

Amazon RDSまとめ

RDBMS in the CloudRDBMS in the Cloud

�MySQL, Oracle

メンテナンスレス

スケーラブルで柔軟スケーラブルで柔軟

Page 79: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

参考文献RDSのDBインスタンスサイズガイド

� http://aws.amazon.com/articles/Amazon-RDS/2936

RDSのDBパラメータガイド

� http://aws.amazon.com/articles/Amazon-RDS/2935

RDSモニタリングガイド

� http://aws.amazon.com/articles/Amazon-RDS/2934

RDSへのデータインポートガイド

� MySQL編:http://aws.amazon.com/articles/Amazon-RDS/2933

� Oracle編:http://aws.amazon.com/articles/Amazon-� Oracle編:http://aws.amazon.com/articles/Amazon-RDS/4173109646282306

79

Page 80: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

Q & A

Page 81: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

次回の

ほぼ週刊AWSマイスターシリーズは、

11月22日 17:00~

~ Amazon Elastic Beanstalk ~

Copyright © 2011 Amazon Web Services

Page 82: RDS詳細 -ほぼ週刊AWSマイスターシリーズ第8回-

ご参加ありがとうご参加ありがとうございました

Copyright © 2011 Amazon Web Services