はじめてのamazon rds for postgresql

29
はじめてのAmazon RDS for PostgreSQL 2014/04/16 関西PostgreSQL勉強会 with Amazon Web Services JAWS-UG大阪 中田淳平

Upload: junpei-nakada

Post on 24-Jun-2015

1.699 views

Category:

Technology


0 download

DESCRIPTION

関西PostgreSQL勉強会での発表資料です

TRANSCRIPT

Page 1: はじめてのAmazon RDS for PostgreSQL

はじめてのAmazon RDS for PostgreSQL

2014/04/16関西PostgreSQL勉強会 with

Amazon Web Services

JAWS-UG大阪  中田淳平

Page 2: はじめてのAmazon RDS for PostgreSQL

自己紹介

• 中田淳平

• Twitter:@j_nakada

• 株式会社Razest 取締役CTO-モバイルゲーム作ってます

• JAWS-UG大阪コアメンバー

• PHP,MySQL,AWS,Unity

• 好きなAWSサービス:RDS

Page 3: はじめてのAmazon RDS for PostgreSQL

JAWS-UG

• Japan AWS User Group• Amazon Web Servicesの利用促進や

情報交換のためのユーザーグループ

Page 4: はじめてのAmazon RDS for PostgreSQL

Agenda

• Amazon RDSとは

• Multi-AZ(HA構成)

• 自動バックアップとスナップショット

• 気をつけたいポイント

※本資料はSlideShareで公開します

Page 5: はじめてのAmazon RDS for PostgreSQL

Amazon RDSとは

• Amazon Relational Database Service– AWSのサービスの1つ– フルマネージドなクラウドRDB– 高い信頼性、可用性、拡張性が特徴

– 選択可能なDBエンジン

• MySQL• Oracle• SQLServer• PostgreSQL←New!

Page 6: はじめてのAmazon RDS for PostgreSQL

Amazon RDSとは

• 13のスペックから選択可能– 最小

メモリ:0.6GB 約5,500円/月

– 最大メモリ:244GB 約870,000円/月

• 起動後もスペックの変更可能– 停止時間3分ほど

• 次々と新スペックの追加、値下げ

$1=105円MultiAZ

東京リージョン2014/4現在

Page 7: はじめてのAmazon RDS for PostgreSQL

Amazon RDS作成デモ

• 最小スペック(Micro)インスタンス• PostgreSQL9.3.3• Multi-AZ• Disk容量:5GB• バックアップ期間:7日間• バックアップ開始時間:AM3時00分~3時30分

• 事前作成済み– セキュリティグループ– パラメーターグループ

Page 8: はじめてのAmazon RDS for PostgreSQL

Agenda

• Amazon RDSとは

• Multi-AZ(HA構成)

• 自動バックアップとスナップショット

• 気をつけたいポイント

Page 9: はじめてのAmazon RDS for PostgreSQL

Multi-AZ(HA構成)

• アクティブ/スタンバイ方式のHA構成

– 物理的に離れたデータセンターに配置

– PostgreSQLの同期レプリケーションではない

• 自動フェイルオーバー

– 障害発生時は自動でスタンバイに切り替わる

• スタンバイへの直接アクセスは不可

– スレーブのように参照用には使えない

Page 10: はじめてのAmazon RDS for PostgreSQL

Multi-AZのイメージ図

Zone a Zone b

アクティブ スタンバイ

②スタンバイへ書き込み

③書き込み完了

④書き込み完了

アプリケーション

①書き込み

※AWSの謎テクノロジーにより実現されているので内部の動作は上記の図と異なります概念としてとらえてください

スタンバイへのアクセス不可

Page 11: はじめてのAmazon RDS for PostgreSQL

Multi-AZの特徴

• 障害発生時は自動フェイルオーバーでスタンバイが昇格

– アプリケーションからは接続先の変更の必要なし

– フェイルオーバーに3分ほどかかる

• バックアップはスタンバイから取得される

– アプリケーションへのI/Oに影響を出さない

• 物理的に離れた拠点と同期してるので遅い

– Single-AZと比べて数分の1の応答速度(レイテンシ)

– 帯域は十分あるので、データの大きさは関係ない

本番運用ではMulti-AZ必須

Page 12: はじめてのAmazon RDS for PostgreSQL

Agenda

• Amazon RDSとは

• Multi-AZ(HA構成)

• 自動バックアップとスナップショット

• 気をつけたいポイント

そろそろDB起動したかな?

Page 13: はじめてのAmazon RDS for PostgreSQL

DBバックアップでのあるある

• システム構築には容量の見積もりが必要

– 見積もりが多すぎてコストの無駄

– n年後に容量オーバーで増設の手間が…

• バックアップからの復元(リストア)

– 復元手順書がない

– 復元してみたらバックアップデータが不完全

Page 14: はじめてのAmazon RDS for PostgreSQL

自動バックアップとスナップショット

• 自動バックアップ

– 1日1回のフルバックアップとトランザクションログ

– 保存期間中の任意の時間に復元可能

– 保存期間:~35日

• スナップショット

– 利用者が任意のタイミングで実行

– スナップショットをもとにDBインスタンス起動可能

– 保存期間:利用者が削除するまで

Page 15: はじめてのAmazon RDS for PostgreSQL

自動バックアップの役割

• 運用時の信頼性の確保

– バックアップファイルはAmazonS3に保存

– AmazonS3の堅牢性は99.999999999%– $0.095/月GB

• リストア作業の簡易化

– APIもしくは、AWS Management Consoleからバックアップ保存期間の任意のタイミングに復元可能(リストアは別DBとして起動する)

Page 16: はじめてのAmazon RDS for PostgreSQL

自動バックアップの注意点

• Single-AZだと1日1回のフルバックアップ中は  ストレージI/Oが数分間中断される

– バックアップの時間帯は、ある程度は指定できる

– Multi-AZの利用で中断を回避できる

• インスタンスを削除すると自動バックアップ全削除

Page 17: はじめてのAmazon RDS for PostgreSQL

スナップショットの役割

• 好きなタイミングで取れる完全なバックアップ

– 明示的に削除するまで保存可能

– インスタンスを削除しても残る

• スナップショットから新規DBを起動できる

– 重たい集計処理や分析のために別DBを起動し、作業が終わったら削除することができる

Page 18: はじめてのAmazon RDS for PostgreSQL

スナップショットの注意点

• Single-AZだとスナップショット作成中は

ストレージI/Oが数分間中断される

– Multi-AZの利用で中断を回避できる

• スナップショットから元DBへ復元することはできない

– 新規DBインスタンスで起動して古いインスタンスを削除する等の対応が必要

Page 19: はじめてのAmazon RDS for PostgreSQL

バックアップまとめ

• 2種類のバックアップでDB管理者が幸せになれる

• 高可用性のためにはMulti-AZが必須

Page 20: はじめてのAmazon RDS for PostgreSQL

Agenda

• Amazon RDSとは

• Multi-AZ(HA構成)

• 自動バックアップとスナップショット

• 気をつけたいポイント

Page 21: はじめてのAmazon RDS for PostgreSQL

気をつけたいポイント

• PostgreSQL9系のレプリケーションは使えない

– 同期による可用性確保はMulti-AZ

– 参照負荷分散はKVS(memcached等)の併用

Page 22: はじめてのAmazon RDS for PostgreSQL

気をつけたいポイント

• RDSはDBへのエンドポイントのみが提供されておりSSH等のアクセス方法がない

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

• postgresql.conf相当

• AWSがイイ感じにしてくれてます

– セキュリティグループ

• pg_hba.conf相当

• 接続可能なサーバを指定する

Page 23: はじめてのAmazon RDS for PostgreSQL

気をつけたいポイント

• RDSはDBへのエンドポイントのみが提供されておりSSH等のアクセス方法がない

– 拡張モジュール

• AWSが用意したものだけが使用可能

• plpgsql、postgisなど

SELECT * FROM pg_available_extensions;

Page 24: はじめてのAmazon RDS for PostgreSQL

DBパラメーターグループ

• APIやManagement Consoleを経由して設定変更をする

– 187個の項目がある

• 参照のみ38• 変更可能149

Page 25: はじめてのAmazon RDS for PostgreSQL

RDSチューニングのポイント

• DBパラメータグループの変更の必要はない

– インスタンスがスケールアップしても自動で適切なメモリサイズに設定される

– パラメーターを変更するくらいならインスタンスをスケールアップしたほうが良い

• 事前評価(ベンチマーク等)をする場合は、Multi-AZ構成で評価すること

– 結果が数倍違う

Page 26: はじめてのAmazon RDS for PostgreSQL

まとめ

• RDSを使ってDB運用者は幸せになろう– バックアップ・リストア

– 障害が起きてもサービスを続行できる可用性

– スケールアップ/ダウン

• RDSは銀の弾丸ではない

– クエリーの最適化やKVSとの併用も検討すること

Page 27: はじめてのAmazon RDS for PostgreSQL

おまけ

• EC2とRDSは同じzoneに配置するとレスポンス高

– RDSのMulti-AZは起動させてからzoneが決まる

– バッチ処理など大量処理をするときだけ意識すればよい

– EC2は可用性のために2つ以上のゾーンで使うべき

ZoneA ZoneB

RDS EC2EC2

Page 28: はじめてのAmazon RDS for PostgreSQL

ご清聴ありがとうございました

Page 29: はじめてのAmazon RDS for PostgreSQL

宣伝

JAWS-UG三都物語 20142014/07/05(土)

JAWS-UG大阪、神戸、京都3支部合同開催

http://jawsugosaka.doorkeeper.jp/events/10037