Database on AWS @JAWS-UG福岡 初心者向けクラウド勉強会 2014.05.31

Post on 18-Dec-2014

2.572 views 4 download

description

Database on AWS ということで実際に触ったことない人向けにRDSの概要トラックやってきたよ

Transcript of Database on AWS @JAWS-UG福岡 初心者向けクラウド勉強会 2014.05.31

Database on AWS

Shota Mitsui@Serverworks

JAWS-UG福岡 初心者向けクラウド勉強会 2014.05.31

Shota Mitsui (0x19) @mitchang Serverworks (Tokyo)

AWS Engineer (2014/3~) 好きなAWSの機能 Auto Scaling

JAWS-UG福岡 初心者向けクラウド勉強会 2014.05.31

Shota Mitsui (25) @mitchang 2007 日本電子専門学校

2010 某ソフトウェアベンダ

2014 Serverworks

JAWS-UG福岡 初心者向けクラウド勉強会 2014.05.31

Shota Mitsui (25) @mitchang !

趣味:オンラインゲーム 本業は黒魔道士説

JAWS-UG福岡 初心者向けクラウド勉強会 2014.05.31

※PR

AWS提供のデータベースサービス

RDS

完全マネージド型で、セットアップ、運用、拡張が 容易なリレーショナル・データベースサービス

DynamoDB

Redshift

ElastiCache

完全マネージド型、高速なパフォーマンス、シームレスな拡張性と信頼性を持つNoSQLサービス

高速で管理も万全なペタバイト規模の データウェアハウスサービス

完全マネージド型、セットアップ、運用、拡張が 容易なキャッシュサービス

RDS

・RDSの概要

・RDSの可用性、信頼性

・RDSの運用、メンテナンス

・RDSのセキュリティ

・RDSのカスタマイズ

・RDSの料金体系

Agenda

・RDSの概要

・RDSの可用性、信頼性

・RDSの運用、メンテナンス

・RDSのセキュリティ

・RDSのカスタマイズ

・RDSの料金体系

Agenda

Relational Database Service

_人人人人人人人人人_ > いわゆるRDBMS < ‾Y^Y^Y^Y^Y^Y^Y‾

ひとことで表すと

_人人人人人人人人人_ > 超すごいRDBMS < ‾Y^Y^Y^Y^Y^Y^Y‾

もう少し丁寧に言うと

典型的な利用ケース(Webシステム)

Amazon RDSとは

構築 数クリック or APIでDBサーバを操作  EC2と同様、初期費用なしの従量課金 !

設定 AWS上で設定変更が可能

Amazon RDSとは

移行4種類のエンジンをサポート

MySQL, PostgreSQL Oracle, Microsoft SQL Server !

 既存アプリケーションの変更ほぼ不要 (エンドポイントの変更のみ) mytestdb.xxxxx.ap-northeast-1.rds.amazonaws.com

Amazon RDSとは

運用 可用性向上のための機能 パフォーマンス向上のための機能が豊富 障害検出/フェイルオーバ/自動復旧  モニタリングが楽 パッチ、スケーリングが楽

自前構築 vs EC2 vs RDS

オンプレ on EC2 RDS

インスタンスタイプいろいろ

※MySQL5.6, PostgreSQLのみサポート

DBエンジンMySQL 5.1.x、5.5.x、5.6.xを選択可能 PostgreSQL 9.3.xのみ選択可能 Oracle 11g R2 (11.2.0.x) BYOL:SE1, SE, EEをサポート ライセンス込み:SE1のみ MS SQL Server 2008 R2, 2012を選択可能 BYOL:Standard Edition, Enterprise Edition ライセンス込み:Express, Web Edition, Standard Edition

・RDSの概要

・RDSの可用性、信頼性

・RDSの運用、メンテナンス

・RDSのセキュリティ

・RDSのカスタマイズ

・RDSの料金体系

Agenda

Multi-AZ Deployment

バックアップ・リストア

RDSの可用性、信頼性

RDSの可用性

可用性 サービスを継続する能力 たとえば 災害が発生したり サーバに障害が発生したり 掃除のおばちゃんがコンセント抜いたり

Multi-AZ Deployment

Availability Zone

RDSのアーキテクチャ

Multi-AZ Deployment

RDSの可用性

Multi-AZ Deployment ・異なるAvailability Zoneへの自動レプリケーション ・同期レプリケーション+自動フェイルオーバ アプリ側の変更なし!(エンドポイントは不変) ・フェイルオーバ発生のタイミング パッチ適用などの計画停止 インスタンスやハイパーバイザの障害 手動rebootによる強制フェイルオーバ

Multi-AZ Deployment ・異なるAvailability Zoneへの自動レプリケーション ・同期レプリケーション+自動フェイルオーバ アプリ側の変更なし!(エンドポイントは不変) ・フェイルオーバ発生のタイミング パッチ適用などの計画停止 インスタンスやハイパーバイザの障害 手動rebootによる強制フェイルオーバ

Backup &

Restore

バックアップとリストア

自動バックアップ • RDSの標準機能 • スナップショット+トランザクションログをS3に保存 • 一日一回自動で取得 • 実行される時間枠(Backup Window)を指定可能

• 手動 (Management Console or API) での取得も可

バックアップとリストア

リージョン間コピー スナップショットを別リージョンにコピー可能 別リージョンでのインスタンス起動も可能 !

!

!

バックアップとリストア

2種類のリストア方法 ・リストア 指定したスナップショットからインスタンス作成 ・Point-in-time Recovery 指定した時間の状態のインスタンスを作成 Backup Retention Periodが1日なら 直近5分~24時間前まで任意の時間を指定可

Multi-AZ Deploymentワンクリックで簡単レプリケーションフェイルオーバもできるよ!

バックアップとリストア自動スナップショット、世代管理スナップショットからの復元、ロールバックも簡単

RDSの可用性、信頼性

・RDSの概要

・RDSの可用性、信頼性

・RDSの運用、メンテナンス

・RDSのセキュリティ

・RDSのカスタマイズ

・RDSの料金体系

Agenda

自動メンテナンスログアクセス

RDSの運用、メンテナンス

エンドポイント切り替えイベント通知モニタリング

Auto Maintenance

RDSのメンテナンス

基本的に自動でやってくれる ・メンテナンスウィンドウ(時間枠)を指定しておく 時間内に数分程度(メンテ内容に依存) ・パッチを自動適用 ・マイナーバージョンアップデート(任意設定) ・再起動が発生する場合もある !

・毎週必ずメンテがあるわけではない 数ヶ月に一度程度

RDSのメンテナンス

RDSのメンテナンス

考慮すべきこと メンテナンスウィンドウはトラフィックの少ない曜日や時間を指定しておく アプリ側でDBアクセスできない時用のエラーページを用意しておく

Log Access

RDSのログアクセス

RDSのメンテナンス

RDSのメンテナンス

取得できるログ種別 エンジン ログ種別 保持期間

MySQL Error, (Slow Query, General) 24時間(固定)

PostgreSQL - 7日間

Oracle Alert, Trace 7日間

SQL Server Error, Agent, Trace 7日間

Endpoint Rename

RDSのエンドポイント切り替え

エンドポイント(FQDN)を切り替える !

production.xxx.amazonaws.com ↓

old.xxx.amazonaws.com

役立つケース 障害からの復旧 リードレプリカのプロモート 大規模変更からの切り戻し

!

実施方法  Management ConsoleやAPIから実行可能  DB Identifierを変更し、Apply Immediately

RDSのエンドポイント切り替え

切り替えても引き継ぐもの インスタンスのTag スナップショット マスターとリードレプリカの関係 !

引き継げないもの  CloudWatchのMetricName  DB EventsのIdentifier

RDSのエンドポイント切り替え

注意点 DNS切り替えには数分程度時間がかかる 同一リージョン内で名前の重複はできない (別名でインスタンス作ってから切り替える)

RDSのエンドポイント切り替え

Event Notification

RDSイベント通知

RDS上で発生したイベントを通知 RDSインスタンスの障害や再起動の発生 バックアップやリストアの開始/終了 メンテナンスの開始/終了 RDSインスタンスやパラメータグループの設定変更 など40種類以上のイベント Amazon SNS連携

アプリケーションとの連携も容易

Monitoring

RDSのモニタリング

CloudWatchを使おう! RDSインスタンスの各種Metricを取得可能 1分間隔で情報が更新される CPU使用率、空きメモリ、コネクション数、etc !

特定条件でアラーム発動 任意の閾値を設定して通知が可能

・RDSの概要

・RDSの可用性、信頼性

・RDSの運用、メンテナンス

・RDSのセキュリティ

・RDSのカスタマイズ

・RDSの料金体系

Agenda

VPC対応 VPC内部の任意のサブネットに起動可能 起動先サブネットをSubnet Groupとして事前に定義 DBインスタンスのIP指定はできない !

Classic … VPCの外側で動かすケース

RDSのセキュリティ

No more iptables アクセス制限はSecurity Groupで行う アクセス元をIPアドレス、グループ単位で許可 (例:SG”WebServer”からのアクセスのみ許可) 余談 VPC Security Group(基本的にこっち)と DB Security Group(Classic環境のみ)

RDSのセキュリティ

・RDSの概要

・RDSの可用性、信頼性

・RDSの運用、メンテナンス

・RDSのセキュリティ

・RDSのカスタマイズ

・RDSの料金体系

Agenda

Parameter Group DB設定をAWS上で管理 複数のDBインスタンスに一括適用可能

RDSのパラメータ変更

スケールアップ / ダウン 後からインスタンスタイプを変更可能 要再起動。メンテナンスウィンドウでの自動再起動も

!

• Min : db.t1.micro (1vCPU, メモリ約600MB) • Max : db.cr1.8xlarge( 32vCPU, メモリ244GB) !

!

RDSのパフォーマンス向上

$ aws rds modify-db-instance \ --db-instance-identifier test-db \ --db-instance-class db.cr1.8xlarge \ --apply-immediately

ストレージサイズ 後からストレージサイズの増減も可

!

ストレージサイズが大きくなると自動的に複数の ボリュームをストライプするよう構成される !

→ より大きいストレージサイズを指定することでパフォーマンスが向上する

RDSのパフォーマンス向上

Read Replica

リードレプリカ

リードレプリカとは

読み込み専用のコピー ・MySQL固有のレプリケーション機能を利用 ・読み込みパフォーマンスの向上 トータルでのスループット増を期待できる ・多層リードレプリカ構成も可 ・エンドポイントは個別なのでMySQL Proxyなどで対応

リードレプリカとは

AWSならではの機能 ・リードレプリカごとにインスタンスサイズ設定可 ・リードレプリカをマスターに昇格させることも可 ・Multi-AZのフェイルオーバ時、参照先は自動で切替わる

リードレプリカ

PIOPS

Provisioned IOPS ・IOPS(I/O per second)を予め指定できる機能 ・高速で、かつ一定のIOPSを保証する ・予測可能で、かつ大量のIOが発生する場合に有利 ・別料金

・RDSの概要

・RDSの可用性、信頼性

・RDSの運用、メンテナンス

・RDSのセキュリティ

・RDSのカスタマイズ

・RDSの料金体系

Agenda

でも お高いんでしょう?

基本的に 従量課金

RDSの料金体系

DBインスタンスの起動時間($/hour) ・EC2同様、インスタンスタイプによって変動 ・Multi-AZスレーブ、リードレプリカも課金対象 ・SQL Server、Oracleはライセンス込みかBYOLかで変動

RDSの料金体系

ストレージ($/GB/Month) ・容量:標準ストレージ or PIOPS ・I/O数:リクエスト数(標準)or IOPS(PIOPS) ・バックアップストレージサイズ ($/GB/Month) !

ネットワーク ・インターネット経由で送出したデータ総量(GB/Month)

もうひとつの料金体系

オンデマンドインスタンス ・つまるところ従量課金 !

リザーブドインスタンス ・年単位(1年、3年)の予約購入 ・オンデマンドと比べて大幅割引(最大70%ぐらい) ・購入時にリージョン、DBエンジン、インスタンスタイプ、期間を指定

無料試用枠あります

AWS Simple Monthly Calculator

・RDSの概要 AWS上で展開できるRDBMS 任意のインスタンスタイプ、ストレージ容量を選択可 4種類のDBエンジン

Management Console or APIで操作可能

大体のことはAWSがよしなにやってくれる

Goal

自前構築 vs EC2 vs RDS

オンプレ on EC2 RDS

・RDSの可用性、信頼性 Multi-AZ Deployment ワンクリックで複数のゾーンにスレーブを展開 自動バックアップとリストア ・スナップショットからインスタンス作成 ・Point-in-time Recovery

指定した時間の状態のインスタンス作成

Goal

・RDSの運用、メンテナンス 自動メンテナンス 指定した時間枠で自動パッチ適用 ログアクセス Management ConsoleやAPIでログの確認が可能 エンドポイント切り替え 障害時の系切り替え、アップデート時の切り戻し モニタリング CloudWatchを使えば1分間隔で監視可

Goal

・RDSのセキュリティ VPC対応

VPCサブネット内に起動し、外からのアクセスを遮断

!

Security Groupで管理

VPC Security Groupをそのまま使える

グループ単位でのアクセス許可

!

Goal

・RDSのカスタマイズ Parameter Group AWS上でDB設定を管理

複数インスタンスに一括適用可 スケールアップ/ダウン 後からインスタンスサイズを変更できる(要再起動) リードレプリカ 読み込み専用のコピーを作ってパフォーマンス向上

PIOPS ストレージのIOPSを一定となるよう指定可(別料金)

Goal

・RDSの料金体系 オンデマンドインスタンス 基本的にインスタンスタイプごとの従量課金

DBエンジン、ストレージオプションによって変化

!リザーブドインスタンス 一括払いで年単位の予約購入、割安

購入時にスペック決めたら変更できない

Goal

_人人人人人人人人人_ > 超すごいRDBMS < ‾Y^Y^Y^Y^Y^Y^Y‾

つまり

Shota Mitsui (@mitchang) Serverworks

JAWS-UG福岡 初心者向けクラウド勉強会 2014.05.31

_人人人人人人人人人_ >ありがとうございました< ‾Y^Y^Y^Y^Y^Y^Y‾

JAWS-UG福岡 初心者向けクラウド勉強会 2014.05.31

懇親会 or Webでも twitter @mitchang

#jawsug

Shota Mitsui Serverworks