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

14,871 views

Published on

Published in: Technology
1 Comment
31 Likes
Statistics
Notes
  • Jogando.Net/mu(16)
    Participem da Nova Temporada da Jogando.Net/mu em versão Season6 sem bugs e com muitas Novidades.
    São mais de 20 servidores hospedados na equipe jogando.net com segurança e diversão garantida, os tais são:
    Pvp - Free: 30.000x | VIP: 50.000x
    Super - Free: 10.000x | VIP:15.000X
    Very Easy- Free: 5.000x - VIP: 7.500x
    Hard - Free: 100x - VIP: 150x
    Extreme - Free:10x - VIP 16x
    War: Fre 1000x - VIP 1500x
    Phonix : Free 1000x Vip 3000x NOVO
    Confiram as novidades:
    ** SuperMegaHiperUltra Castle Siege Valendo 21.000 Jcash (Inicio 06/07/2012 )
    ** Novo Kit Fusion V2 E Shield Power V3
    ** Novo Kits JDiamond (Kit Raro 100 unidades )
    ** NOVOS KITS OLD SCHOOL ATACK E DEFESA > CADASTRE-SE E GANHA 5 DIAS DE VIP
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
14,871
On SlideShare
0
From Embeds
0
Number of Embeds
695
Actions
Shares
0
Downloads
552
Comments
1
Likes
31
Embeds 0
No embeds

No notes for slide

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

  1. 1. AWSマイスターシリーズAWS マイスターシリーズ~ Amazon RDS~ RDS ~ 2011年11月16日 大谷 晋平( @shot6) ソリューションアーキテクト
  2. 2. ほぼ週刊AWSマイスターシリーズへようこそ!~GoToMeetingの使い方~ 参加者は、自動的にミュートになっています 質問を投げることができます! GoToMeetingのチャットの仕組みを使って、随時書き込んでください ただし環境によっては、日本語の直接入力ができないので、 お手数ですが、テキストエディタ等に打ち込んでから、 貼り付けててください 最後のQ&Aの時間で、できるだけ回答させて頂きます 書き込んだ質問は、主催者にしか見えません Twitterのハッシュタグは#jawsugでどうぞ Copyright © 2011 Amazon Web Services
  3. 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. 4. プレゼント @KenTamagawa画伯の本日のプレゼントは・・・ 左絵の中にもある 超限定 AWSマグネットセット (基本ブロック) を差し上げます!
  5. 5. 本スライドで使うアイコン RDS RDS RDS RDS Oracle RDS MySQL RDS マスター スレーブ リードレプリカユーザー クライアント Internet マネージメント コンソール
  6. 6. Agenda RDSとは RDSデモ RDSの機能 RDSの事例 RDSのTips パラメータチューニング まとめ Copyright © 2011 Amazon Web Services
  7. 7. Amazon Relational Database Service(RDS)とは 7
  8. 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
  9. 9. Amazon RDSとは? RDBMS in the Cloud MySQL, Oracle メンテナンスレス スケーラブルで柔軟
  10. 10. Amazon RDSとは?- 詳細 -2009年に登場したクラウド上RDBMSサービス設定と運用が容易な”データベース in クラウド”EC2同様、管理の容易なDBサーバを数分で起動自動バックアップ、パッチ更新、レプリケーションおよびリードレプリカはAWSにお任せ既存MySQL/Oracleアプリケーションとツールが利用可能時間単位の従量課金 (DBインスタンスのクラスとリージョンで価格は変動) 10
  11. 11. 自社構築 vs RDS OS ラックへ 電源とNW NW HWの購入 インス 設置 を設定 トール RDBMS RDBMS レプリ RDBMS 基本設定 インス ケーショ 稼働確認 トール ン設定
  12. 12. 自社構築 vs RDSRDSだと RDSのオプ アプリケーションを ションを選ん 書く!! で起動!
  13. 13. 自社構築 vs. RDS数分で起動可能か?単一APIコールまたは数クリックでスケールが可能か?起動時に既に適切な設定がされているか?同期レプリケーションと自動フェイルオーバー(option)ポイントインタイムリカバリバックアップやクローンの為のDBスナップショット管理ハードウェアや完全な環境の制御自動パッチ更新(option)既存MySQL製品との互換性コスト0でダッシュボードでCPU/メモリ等メトリクス 13
  14. 14. RDSデモ
  15. 15. RDSの起動GUIからコマンドラインからSDKから
  16. 16. RDSの起動GUIからコマンドラインからSDKから
  17. 17. MySQLかOracleを選択(通常はOracle SEも見えます)
  18. 18. ライセンス指定 ライセンス指定 バージョンを指定 DBバージョンを指定 バージョンを タイプを指定 DBタイプを指定 タイプを マルチAZオプション オプション指定 マルチ オプション指定マイナーバージョン自動更新マイナーバージョン自動更新 サイズ DBサイズ
  19. 19. データベース名 データベース名 ポート番号 ポート番号 アベイラビリティゾーン パラメーターグループ DBパラメーターグループ セキュリティグループDBセキュリティグループ
  20. 20. 自動バックアップ期間自動バックアップ期間 バックアップ 日時バックアップ時刻 日時バックアップ時刻 バックアップ メンテナンス時刻 メンテナンス時刻
  21. 21. パラメータの確認パラメータの確認
  22. 22. RDSの起動GUIからコマンドラインからSDKから
  23. 23. 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の証明書
  24. 24. RDSコマンドラインrds-authorize-db-security-group-ingress rds-describe-db-snapshotsrds-create-db-instance rds-describe-engine-default-parametersrds-create-db-instance-read-replica rds-describe-eventsrds-create-db-parameter-group rds-describe-orderable-db-instance-optionsrds-create-db-security-group rds-describe-reserved-db-instancesrds-create-db-snapshot rds-describe-reserved-db-instances-offeringsrds-delete-db-instance rds-modify-db-instancerds-delete-db-parameter-group rds-modify-db-parameter-grouprds-delete-db-security-group rds-purchase-reserved-db-instances-offeringrds-delete-db-snapshot rds-reboot-db-instancerds-describe-db-engine-versions rds-reset-db-parameter-grouprds-describe-db-instances rds-restore-db-instance-from-db-snapshotrds-describe-db-parameter-groups rds-restore-db-instance-to-point-in-timerds-describe-db-parameters rds-revoke-db-security-group-ingressrds-describe-db-security-groups rds-version
  25. 25. コマンドラインからRDSを起動するrds-create-db-instance yourdb --allocated-storage 5 --db-instance-class db.m1.small --engine mysql --master-username admin --master-user-password admin --availability-zone ap-northeast-1a --db-name hogedb --db-security-groups default --engine-version 5.5.8 --multi-az false --region ap-northeast-1
  26. 26. RDSの起動GUIからコマンドラインからSDKから
  27. 27. RDSのSDK RDSの起動やメンテナンス等をSDKから 行うことが出来る Java .NET PHP など
  28. 28. 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);}
  29. 29. RDSのエンドポイントRegion Endpoint ProtocolUS East (Northern rds.us-east- HTTPSVirginia) Region 1.amazonaws.comUS West (Oregon) rds.us-west- HTTPSRegion 2.amazonaws.comUS West (Northern rds.us-west- HTTPSCalifornia) Region 1.amazonaws.comEU (Ireland) Region rds.eu-west- HTTPS 1.amazonaws.comAsia Pacific (Singapore) rds.ap-southeast- HTTPSRegion 1.amazonaws.comAsia Pacific (Tokyo) rds.ap-northeast- HTTPSRegion 1.amazonaws.com
  30. 30. RDS機能
  31. 31. RDS(MySQL) の全体アーキテクチャ アベイラビリティゾーンA アベイラビリティゾーンB自動バック自動バック データ同期 データ同期アップアップ 自動フェイルオーバー 自動フェイルオーバー 非同期レプリケーション 非同期レプリケーションスナップシスナップショットョット 33
  32. 32. RDS(MySQL) アーキテクチャ アベイラビリティゾーンA アベイラビリティゾーンB自動バック自動バック データ同期 データ同期アップアップ 自動フェイルオーバー 自動フェイルオーバー 非同期レプリケーション 非同期レプリケーション マルチAZデプロイメントスナップシスナップショットョット (マルチAZ) 34
  33. 33. マルチAZデプロイメントとは(マルチAZ)ワンクリックで適用可能な耐障害性 耐障害性を高めるソ 耐障害性リューション 高い技術力を持つDBAが行っていた設計をそ DBA のままサービス化同期レプリケーション+自動フェイルオーバ アプリ側での対処は必要なしフェイルオーバのタイミング パッチ適用などのメンテナンス計画停止 インスタンスやハードウェア障害 35
  34. 34. RDS(MySQL) アーキテクチャ アベイラビリティゾーンA アベイラビリティゾーンB自動バック自動バック データ同期 データ同期アップアップ 自動フェイルオーバー 自動フェイルオーバー 非同期レプリケーション リードレプリカ レプリケーション 非同期スナップシスナップショットョット 36
  35. 35. リードレプリカとは?特定DBインスタンスの読み込み用のコピー想定ユースケース リードのスケーリング、ビジネスレポート マルチAZの耐障害性の代替の機能ではないマルチAZとは異なり、MySQL本来の非同期レプリケーションをそのまま使う最大5台まで設定可能マルチAZとリードレプリカを併用はもちろん可能 37
  36. 36. RDS(MySQL) アーキテクチャ アベイラビリティゾーンA アベイラビリティゾーンB 自動バックアップ機能自動バック自動バック データ同期 データ同期アップアップ 自動フェイルオーバー 自動フェイルオーバー 非同期レプリケーション 非同期レプリケーションスナップシスナップショットョット 38
  37. 37. 自動バックアップ機能RDS標準装備1日1回+トランザクションログ保存期間は最大8日間 それ以降はスナップショット保存5分前までの任意の期間に復元可能 39
  38. 38. スケールアップ機能マネージメントコンソールからスケールアップ可能 一度停止が必要コマンドラインからも勿論可能 例:rds-modify-db-instance hogedb -c db.m1.large --apply-immediatelyCPUは1ECUから26ECUまでメモリは1.7GBから68GBまでディスクは5GBから1TBまで 大量書き込みなどスケールアウトでの対処が難しい 場合にスケールアップで対処可能 増量できても削減できないので注意が必要 40
  39. 39. スケールアップ機能
  40. 40. スケールアップ機能 ・DBインスタンスのタイプ インスタンスのタイプ ・割り当てたストレージ量 ・マルチAZ ・マルチ ・パラメータグループ など自由に変更可能
  41. 41. Oracle RDS
  42. 42. Oracle RDSとは 2011年Q2ロウンチ Oracle Database 11g Release 2 Oracle Database SE1, SE, EE + オプションパック ライセンス持ち込み(BYOL) か 従量課金(時間単位) 初期はシングルインスタンスでレプリケーション などはすぐに機能追加の予定 OracleVMのハードパーティショニングで稼働 44
  43. 43. RDSのOracleサポートライセンス持ち込み(BYOL) RDS部分についてはAWSプレミアムサポート RDS AWS (インフラ部分含む) AWSがパッチとアップグレードを管理 Oracleデータベースに関してはOracleサポー トIDを使ったOracle社のサポート従量課金ライセンス RDS部分およびOracleに関してもAWSプレ ミアムサポートでカバー 45
  44. 44. RDS価格
  45. 45. Amazon RDSプライシング MySQLの標準価格 47
  46. 46. Amazon RDSプライシング MySQLのMultiAZ価格 48
  47. 47. Amazon RDSプライシング Oracleの標準価格 AWSライセンス BYOL (ライセンス持込) 49
  48. 48. RDSプライシング注意点 マルチAZでは価格は2倍になる ストレージで$0.12/GB $0.12/GB IOで$0.12/100万リクエスト バックアップ用ストレージは無料 RDS用リザーブドインスタンスもご提供 1年間、3年間のコミットによる価格を大幅削減 50
  49. 49. Oracle RDSプライシング 複数ライセンスオプションが今後利用可能に 既存のOracleライセンス OracleまたはOracleパートナーから新規にOracle ライセンスを購入 Amazonからの従量課金制での利用 Amazon RDSの2つのプライシングモデル オンデマンドな時間単位の従量課金モデル Amazon RDS リザーブドインスタンス 51
  50. 50. RDS事例
  51. 51. RDSのお客様代表事例
  52. 52. 大規模事例 – gumi様 ソーシャルゲーム提供 AWS上で開発・運用 特にRDSを積極的にお使いいただいている
  53. 53. Gumiさんのサーバー構成 ELB App App サーバ App c1.xlarge サーバ サーバ - 60台 Cache KVS KVS サーバ サーバ 同期 サーバ m1.large m1.large RDS - 4台 - 8台 x 2 - マルチAZ ゾーンA ゾーン ゾーンB ゾーン
  54. 54. 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名!)
  55. 55. 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)
  56. 56. gumi事例: ピーク時のさばき方 突発的な対応が必要なときは、EC2、RDSのス ペックを上げて、時間をかせぐ ELB App m1.large m2.4xlarge App サーバ App サーバ サーバ メモリ 7.5GB メモリ 68GB CPU 4ECU CPU 26ECU Cache KVS KVS サーバ サーバ サーバ
  57. 57. gumi事例: バックアップの仕組み データベース部分 RDSのポイントインタイムリカバリを利用(8日分) • 5分前以前の何時の時点にも戻せる 8日前以前の分については、 手動スナップショットを利用する
  58. 58. Gumiさんの事例からわかる事非常にスケールが必要なアプリケーションでもRDSは有効 スケールアップ スケールアウト(リードレプリカ)DBの管理コストを劇的に削減し、アプリケーションを構築する部分にリソースを集中できるRDSの柔軟さを活用する事で、ピークにもあわてず対応できる
  59. 59. Tips
  60. 60. RDSのTips DBセキュリティグループ RDSへのデータの移行 パラメーターチューニング タイムゾーンに関して メトリクス マルチAZに関しての考え方 いつRDSを使うべきか
  61. 61. 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
  62. 62. RDSへのデータの移行MySQLを使った一例 mysqldump • 少量データの場合直接インポート mysqlimportでバルクインポート • フラットなファイルで複数に分割、圧縮 • RDSを一旦停止、スナップショット作成 • スナップショットから新DB作成 • 自動バックアップを一旦停止 • mysqlimportでのデータのロード • 自動バックアップ復旧 • サービス再開
  63. 63. パラメータチューニング 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"
  64. 64. パラメータチューニング(2)$ rds-describe-db-parameters group1 --source userDBPARAMETER long_query_time engine-default integer dynamic trueDBPARAMETER min_examined_row_limit engine-default integer dynamictrueDBPARAMETER slow_query_log engine-default boolean dynamic true$ rds-describe-db-parameters group1 --source userDBPARAMETER 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
  65. 65. パラメータチューニング(3)注意点 チューニング出来る項目と出来ない項目がある • タイムゾーンは変更不可・・・ rds-describe-db-parametersを使ってチェック または、ManagementConsoleでチェック
  66. 66. タイムゾーンに関してrds-describe-db-parametersで見てみると、タイムゾーンは変更不可能な設定項目 アプリケーション側でJSTなど適切なタイムゾー ンを指定する必要あり init_connectパラメータによる、タイムゾーンの 設定は現状保証されない
  67. 67. メトリクスと監視 CloudWatchにてRDSメトリクスを監視 メトリクス名 説明 BinLogDiskUsage マスターのバイナリログサイズ CPUUtilization CPU利用量 DatabaseConnections DBのコネクション数 FreeableMemory 使えるメモリ量 FreeStorageSpace 使えるディスクスペース ReadIOPS 読み込みの平均IOPS ReadLatency 読み込みのレイテンシ ReadThroughput 読み込みスループット ReplicaLag リードレプリカのタイムラグ SwapUsage DBで使用しているスワップ WriteIOPS 書き込みの平均IOPS WriteLatency 書き込みのレイテンシ WriteThroughput 書き込みスループット
  68. 68. メトリクスと監視(2) Amazon RDS Eventsでも監視可能 ManagementConsoleで監視 rds-describe-events
  69. 69. MultiAZにおけるリードレプリカの更新停止に関して(MySQL) MultiAZ環境でフェイルオーバしたタイミング でリードレプリカの更新の伝播が停止する可能 性がある 常にそうなるわけではない 非同期のMySQLレプリケーション binlogがディスクにフラッシュされていない状況 下で、フェイルオーバした場合に稀に発生 レプリケーションのコストとの兼ね合い
  70. 70. 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 問題が発生した場合に、リードレプリカを再度作 り直す
  71. 71. マルチAZに対しての考え方良く聞く声:マルチAZでマスターをWebアプリと同一のAZに割り当てたいマインドシフトが必要 マルチAZでWebアプリが構築されていれば、 RDSのマスターがどちらにあるかは意識しなく てよい マルチAZでの複数DCが利用できるものを最大限 に活かしてWebアプリのコンポーネントを分散 して配置するのが重要
  72. 72. いつRDSを使うべきかRDSの代替案 Amazon SimpleDB EC2上でMySQLやOracleを展開vs SimpleDB シンプルなクエリ、堅牢性・管理不要を追及した い場合はSimpleDB 既存MySQLの知識やツールを使いたい場合は RDS
  73. 73. いつRDSを使うべきか(2) vs EC2上のMySQLやOracle 完全に自分でコントロールしたい場合、RDSの 提供範囲外のものが欲しい場合はEC2 RDSの機能セットや管理機能が必要十分で、運 用保守の手間を下げたい場合はRDS http://aws.amazon.com/running_databases/
  74. 74. 今後のロードマップ新しいリージョンでの展開Oracle RDS、権限まわりの緩和エラーログアクセスより小さなインスタンスタイプの提供より大きなストレージの割り当て 76
  75. 75. まとめ
  76. 76. Amazon RDSまとめ RDBMS in the Cloud MySQL, Oracle メンテナンスレス スケーラブルで柔軟
  77. 77. 参考文献RDSのDBインスタンスサイズガイド http://aws.amazon.com/articles/Amazon-RDS/2936RDSのDBパラメータガイド http://aws.amazon.com/articles/Amazon-RDS/2935RDSモニタリングガイド http://aws.amazon.com/articles/Amazon-RDS/2934RDSへのデータインポートガイド MySQL編:http://aws.amazon.com/articles/Amazon- RDS/2933 Oracle編:http://aws.amazon.com/articles/Amazon- RDS/4173109646282306 79
  78. 78. Q&A
  79. 79. 次回のほぼ週刊AWSマイスターシリーズは、 11月22日 17:00~ ~ Amazon Elastic Beanstalk ~ Copyright © 2011 Amazon Web Services
  80. 80. ご参加ありがとう ございました Copyright © 2011 Amazon Web Services

×