今すぐ使える!!
クラウドとPostgreSQL
オープンソースカンファレンス2015@沖縄
What is it?
データベースは何を基準に選んでますか?
What is it?
RDBを制する者は
データ層を制する
と言っても過言ではありません
What is it?
しかし、DBの運用は大変です
What is it?
通信障害…
サービス停止…
突然のデータ損失…
What is it?
通信障害…
突然のサービス停止…
突然のデータ損失…
What is it?
通信障害…
突然のサービス停止…
まさかのデータ損失…
What is it?
正しいデータベースの運用するためには
スペシャリストが必要です
What is it?
そのコストをクラウドで削減できます
What is it?
ただし
チューニングやDB設計
の話は今日はしません
What is it?
主に運用を楽にするための話です
What is it?
PostgreSQLを使う人の
今日から始めるクラウドの知識
を持ち帰って活用してください
あじぇんだ
1 自己紹介
2 CloudとDB
3 CloudとPostgreSQL
4 Cloudを使うときの注意点
5 まとめ
あじぇんだ
1 自己紹介
2 CloudとDB
3 CloudとPostgreSQL
4 Cloudを使うときの注意点
5 まとめ
自己紹介
名前:曽根 壮大(そね たけとも)
年齢:30歳(三人の子供がいます)
職業:Webエンジニア
所属:日本PostgreSQLユーザ会
   中国支部 支部長
  技術的にはLL系言語とかRDBが好きです
あじぇんだ
1 自己紹介
2 CloudとDB
3 CloudとPostgreSQL
4 Cloudを使うときの注意点
5 まとめ
CloudとDB
クラウドとは?
CloudとDB
インフラの抽象化
(私の見解です)
CloudとDB
クラウド=インフラの抽象化
CloudとDB
DBをクラウドで使う
CloudとDB
DBをクラウドで使う
↓
DBを抽象化する
CloudとDB
抽象化のステップ
1 仮想化
2 インフラを抽象化
3 プラットフォームを抽象化
4 ソフトウェアを抽象化
CloudとDB
仮想化
仮想化技術を使った抽象化
CloudとDB
仮想化
仮想化技術を使った抽象化
↓
VMWare、KVMなど
CloudとDB
インフラを抽象化する
Infrastructure as a Service
CloudとDB
インフラを抽象化する
Infrastructure as a Service
↓
EC2、さくらクラウド、,GCPなど
CloudとDB
プラットフォームを抽象化する
Platform as a Service
CloudとDB
プラットフォームを抽象化する
Platform as a Service
↓
RDS、Heroku、GAEなど
CloudとDB
ソフトウェアを抽象化する
Software as a Service
CloudとDB
ソフトウェアを抽象化する
Software as a Service
↓
Google Apps、Salesforceなど
オンプレミス
アプリケーション
データ
仮想化
ランタイム
OS
物理サーバ
ストレージ
ネットワーク
IaaS
アプリケーション
データ
仮想化
ランタイム
OS
物理サーバ
ストレージ
ネットワーク
PaaS
アプリケーション
データ
仮想化
ランタイム
OS
物理サーバ
ストレージ
ネットワーク
SaaS
アプリケーション
データ
仮想化
ランタイム
OS
物理サーバ
ストレージ
ネットワーク
CloudとDB
オンプレミス
アプリケーション
データ
仮想化
ランタイム
OS
物理サーバ
ストレージ
ネットワーク
IaaS
アプリケーション
データ
仮想化
ランタイム
OS
物理サーバ
ストレージ
ネットワーク
PaaS
アプリケーション
データ
仮想化
ランタイム
OS
物理サーバ
ストレージ
ネットワーク
SaaS
アプリケーション
データ
仮想化
ランタイム
OS
物理サーバ
ストレージ
ネットワーク
CloudとDB
抽象度低い 高い
オンプレミス
アプリケーション
データ
仮想化
ランタイム
OS
物理サーバ
ストレージ
ネットワーク
IaaS
アプリケーション
データ
仮想化
ランタイム
OS
物理サーバ
ストレージ
ネットワーク
PaaS
アプリケーション
データ
仮想化
ランタイム
OS
物理サーバ
ストレージ
ネットワーク
SaaS
アプリケーション
データ
仮想化
ランタイム
OS
物理サーバ
ストレージ
ネットワーク
CloudとDB
運用コスト(人件費など)高い 低い
CloudとDB
抽象化のステップ
1 仮想化
2 インフラを抽象化
3 プラットフォームを抽象化
4 ソフトウェアを抽象化
用意したOS(IaaS)に
自分にソフトウェアをインストールする
CloudとDB
抽象化のステップ
1 仮想化
2 インフラを抽象化
3 プラットフォームを抽象化
4 ソフトウェアを抽象化
クラウド上のデータベースを利用する
CloudとDB
抽象化するメリット
CloudとDB
抽象化するメリット
1 イニシャルコストが減る
2 ハードの調達が要らない
3 スケールアップが簡単になる
4 運用コスト減(ネットワークなど)
CloudとDB
抽象化するメリット
1 イニシャルコストが減る
2 ハードの調達が要らない
3 スケールアップが簡単になる
4 運用コスト減(ネットワークなど)
CloudとDB
抽象化するメリット
1 イニシャルコストが減る
2 ハードの調達が要らない
3 スケールアップが簡単になる
4 運用コスト減(ネットワークなど)
CloudとDB
抽象化するメリット
1 イニシャルコストが減る
2 ハードの調達が要らない
3 スケールアップが簡単になる
4 運用コスト減(ネットワークなど)
CloudとDB
抽象化するメリット
1 イニシャルコストが減る
2 ハードの調達が要らない
3 スケールアップが簡単になる
4 運用コスト減(ネットワークなど)
IaaSの場合はDBに限らず
多くのミドルウェアがこの恩恵を受けれる
あじぇんだ
1 自己紹介
2 CloudとDB
3 CloudとPostgreSQL
4 Cloudを使うときの注意点
5 まとめ
CloudとPostgreSQL
DBをPaaSで使うメリット
CloudとPostgreSQL
DBをPaaSで使うメリット
1 運用コストの削減
 構築やバックアップの運用コストが不要
CloudとPostgreSQL
DBをPaaSで使うメリット
1 運用コストの削減
 構築やバックアップの運用コストが不要
2 スケールアップ、ダウンが簡単になる
 メモリの増減にハード調達が要らない
CloudとPostgreSQL
DBをPaaSで使うメリット
1 運用コストの削減
 構築やバックアップの運用コストが不要
2 スケールアップ、ダウンが簡単になる
 メモリの増減にハード調達が要らない
3 セキュアな環境の維持
 自動セキュリティUPDATEなど
CloudとPostgreSQL
DBをPaaSで使うメリット
1 運用コストの削減
 構築やバックアップの運用コストが不要
2 スケールアップ、ダウンが簡単になる
 メモリの増減にハード調達が要らない
3 セキュアな環境の維持
 自動セキュリティUPDATEなど
特に冗長構成と定期バックアップの実装コストの削減
ハードウェアのリプレースが不要
スタートアップではイニシャルコストの削減が重要
CloudとPostgreSQL
DBをPaaSで使うメリット
1 運用コストの削減
 構築やバックアップの運用コストが不要
2 スケールアップ、ダウンが簡単になる
 メモリの増減にハード調達が要らない
3 セキュアな環境の維持
 自動セキュリティUPDATEなど
急なアクセス増にも対応が可能
困ったときはお金で殴れる
負荷増減に対して減らす選択肢も可能
CloudとPostgreSQL
DBをPaaSで使うメリット
1 運用コストの削減
 構築やバックアップの運用コストが不要
2 スケールアップ、ダウンが簡単になる
 メモリの増減にハード調達が要らない
3 セキュアな環境の維持
 自動セキュリティUPDATEなど
セキュリティパッチやバグパッチの精査と対応
データセンター運用と同様のセキュア環境
アタックなどのモニタリングのサポート
CloudとPostgreSQL
PostgreSQLのPaaS
CloudとPostgreSQL
PostgreSQLのPaaS
1 ニフティクラウド RDB
CloudとPostgreSQL
PostgreSQLのPaaS
1 ニフティクラウド RDB
2 Amazon RDS
CloudとPostgreSQL
PostgreSQLのPaaS
1 ニフティクラウド RDB
2 Amazon RDS
3 Heroku
CloudとPostgreSQL
PostgreSQLのPaaS
1 ニフティクラウド RDB
2 Amazon RDS
3 Heroku
CloudとPostgreSQL
NIFTY Cloud RDB
• 国内Cloudサービス
• PostgreSQL 9.3.4(7/4現在)
• 冗長化はディスク同期
• リードレプリカも作成可能
CloudとPostgreSQL
NIFTY Cloud RDB メリット
CloudとPostgreSQL
NIFTY Cloud RDB メリット
1 安心の日本語ドキュメント
 日本法人文化にマッチしたサポート
2 国内Cloudで唯一のRDBでPostgreSQL対応
 NTTコム CloudはMySQLのみ
3 基本機能はひと通りある
 自動バックアップなど
CloudとPostgreSQL
NIFTY Cloud RDB メリット
1 安心の日本語ドキュメント
 日本法人文化にマッチしたサポート
2 国内Cloudで唯一のRDBでPostgreSQL対応
 NTTコム CloudはMySQLのみ
3 基本機能はひと通りある
 自動バックアップなど
CloudとPostgreSQL
NIFTY Cloud RDB メリット
1 安心の日本語ドキュメント
 日本法人文化にマッチしたサポート
2 国内Cloudで唯一のRDBでPostgreSQL対応
 NTTコム CloudはMySQLのみ
3 基本機能はひと通りある
 自動バックアップなど
CloudとPostgreSQL
PostgreSQLのPaaS
1 ニフティクラウド RDB
2 Amazon RDS
3 Heroku
CloudとPostgreSQL
Amazon RDS
• Amazon提供の元祖RDBサービス
• 豊富な運用実績
• 多種多様なAWSサービスと連携
• 頻繁で実施される機能追加
CloudとPostgreSQL
Amazon RDS メリット
CloudとPostgreSQL
Amazon RDS メリット
1 豊富なアウトプットによるノウハウの共有
 エンジニアの母数が多いので情報交換しやすい
2 最新版対応が早い
 PostgreSQL 9.4が使える(リリース後の対応が早かった)
3 AWSの種類が豊富
 他サービス連携で責務の分散(Cloud Searchの全文検索など)
4 豊富なAPI
 各種APIが充実しており、自動化などの対応が可能
CloudとPostgreSQL
Amazon RDS メリット
1 豊富なアウトプットによるノウハウの共有
 エンジニアの母数が多いので情報交換しやすい
2 最新版対応が早い
 PostgreSQL 9.4が使える(リリース後の対応が早かった)
3 AWSの種類が豊富
 他サービス連携で責務の分散(Cloud Searchの全文検索など)
4 豊富なAPI
 各種APIが充実しており、自動化などの対応が可能
CloudとPostgreSQL
Amazon RDS メリット
1 豊富なアウトプットによるノウハウの共有
 エンジニアの母数が多いので情報交換しやすい
2 最新版対応が早い
 PostgreSQL 9.4が使える(リリース後の対応が早かった)
3 AWSの種類が豊富
 他サービス連携で責務の分散(Cloud Searchの全文検索など)
4 豊富なAPI
 各種APIが充実しており、自動化などの対応が可能
CloudとPostgreSQL
Amazon RDS メリット
1 豊富なアウトプットによるノウハウの共有
 エンジニアの母数が多いので情報交換しやすい
2 最新版対応が早い
 PostgreSQL 9.4が使える(リリース後の対応が早かった)
3 AWSの種類が豊富
 他サービス連携で責務の分散(Cloud Searchの全文検索など)
4 豊富なAPI
 各種APIが充実しており、自動化などの対応が可能
CloudとPostgreSQL
PostgreSQLのPaaS
1 ニフティクラウド RDB
2 Amazon RDS
3 Heroku
CloudとPostgreSQL
Heroku
• Amazon EC2上で提供するService
• Webサービスを簡単に実装出来る
• 開発者だけでServiceを提供できる
• プラットフォームの高い抽象化
CloudとPostgreSQL
Heroku メリット
CloudとPostgreSQL
Heroku メリット
1 GitをPushするだけで動作する
 動作環境を用意しなくて良い
2 add-on化されたミドルウェア
 ワンクリックで機能追加出来る
3 CI環境まで意識した抽象化
 自動テストや自動デプロイの環境
CloudとPostgreSQL
Heroku メリット
1 GitをPushするだけで動作する
 動作環境を用意しなくて良い
2 add-on化されたミドルウェア
 ワンクリックで機能追加出来る
3 CI環境まで意識した抽象化
 自動テストや自動デプロイの環境
CloudとPostgreSQL
Heroku メリット
1 GitをPushするだけで動作する
 動作環境を用意しなくて良い
2 add-on化されたミドルウェア
 ワンクリックで機能追加出来る
3 CI環境まで意識した抽象化
 自動テストや自動デプロイの環境
あじぇんだ
1 自己紹介
2 CloudとDB
3 CloudとPostgreSQL
4 Cloudを使うときの注意点
5 まとめ
Cloudを使うときの注意点
DBをPaaSで使うデメリット
Cloudを使うときの注意点
DBをPaaSで使うデメリット
1 特殊な環境のサポート外
 PostgreSQLの非対応なExtention
Cloudを使うときの注意点
DBをPaaSで使うデメリット
1 特殊な環境のサポート外
 PostgreSQLの非対応なExtention
2 スケールアウトは自作の仕組みが必要
 IaaSの方が楽な場合もある
Cloudを使うときの注意点
DBをPaaSで使うデメリット
1 特殊な環境のサポート外
 PostgreSQLの非対応なExtention
2 スケールアウトは自作の仕組みが必要
 IaaSの方が楽な場合もある
3 積み上がったデータは移行が難しい
 業務系の場合は付き合う覚悟が必要
Cloudを使うときの注意点
DBをPaaSで使うデメリット
1 特殊な環境のサポート外
 PostgreSQLの非対応なExtention
2 スケールアウトは自作の仕組みが必要
 IaaSの方が楽な場合もある
3 積み上がったデータは移行が難しい
 業務系の場合は付き合う覚悟が必要
主に日本語の全文検索で発生する
コアのチューニングが不可
Cloudを使うときの注意点
DBをPaaSで使うデメリット
1 特殊な環境のサポート外
 PostgreSQLの非対応なExtention
2 スケールアウトは自作の仕組みが必要
 IaaSの方が楽な場合もある
3 積み上がったデータは移行が難しい
 業務系の場合は付き合う覚悟が必要
RDB自体が分散化は苦手
特に更新負荷分散
Cloudを使うときの注意点
DBをPaaSで使うデメリット
1 特殊な環境のサポート外
 PostgreSQLの非対応なExtention
2 スケールアウトは自作の仕組みが必要
 IaaSの方が楽な場合もある
3 積み上がったデータは移行が難しい
 業務系の場合は付き合う覚悟が必要
TERA級はデータを引き抜くだけでも大変
5年後や10年後の検討は必須
Cloudを使うときの注意点
NIFTY Cloud RDB デメリット
Cloudを使うときの注意点
NIFTY Cloud RDB デメリット
1 利用情報が少ない
 運用ノウハウのブログなどの情報少ない
2 最新バージョンの対応が遅い
 PostgreSQL 9.4が選べない
3 全体的にちょっとお高い
 他サービスと同スペックなら大差ない
 ロースペックの選択肢が少ないため高く見える
Cloudを使うときの注意点
NIFTY Cloud RDB デメリット
1 利用情報が少ない
 運用ノウハウのブログなどの情報少ない
2 最新バージョンの対応が遅い
 PostgreSQL 9.4が選べない
3 全体的にちょっとお高い
 他サービスと同スペックなら大差ない
 ロースペックの選択肢が少ないため高く見える
Cloudを使うときの注意点
NIFTY Cloud RDB デメリット
1 利用情報が少ない
 運用ノウハウのブログなどの情報少ない
2 最新バージョンの対応が遅い
 PostgreSQL 9.4が選べない
3 全体的にちょっとお高い
 他サービスと同スペックなら大差ない
 ロースペックの選択肢が少ないため高く見える
Cloudを使うときの注意点
Amazon RDS デメリット
Cloudを使うときの注意点
Amazon RDS デメリット
1 SLAの問題
 明確にSLAを設けてないので落ちた時は自己責任
2 為替の影響を受ける
 大規模な利用になると円安の影響をモロに受ける
3 AWS公式ドキュメントが残念
 読みやすいとは言えない
Cloudを使うときの注意点
Amazon RDS デメリット
1 SLAの問題
 明確にSLAを設けてないので落ちた時は自己責任
2 為替の影響を受ける
 大規模な利用になると円安の影響をモロに受ける
3 AWS公式ドキュメントが残念
 読みやすいとは言えない
Cloudを使うときの注意点
Amazon RDS デメリット
1 SLAの問題
 明確にSLAを設けてないので落ちた時は自己責任
2 為替の影響を受ける
 大規模な利用になると円安の影響をモロに受ける
3 AWS公式ドキュメントが残念
 読みやすいとは言えない
Cloudを使うときの注意点
Heroku デメリット
Cloudを使うときの注意点
Heroku デメリット
1 抽象化と自由度がトレードオフ
 細かい変更やチューニングは出来ない
2 add-on以外の選択肢が無い
 問題解決の選択肢が限られる
3 実装でカバー
 運用回避が難しいので実装で回避
Cloudを使うときの注意点
Heroku デメリット
1 抽象化と自由度がトレードオフ
 細かい変更やチューニングは出来ない
2 add-on以外の選択肢が無い
 問題解決の選択肢が限られる
3 実装でカバー
 運用回避が難しいので実装で回避
Cloudを使うときの注意点
Heroku デメリット
1 抽象化と自由度がトレードオフ
 細かい変更やチューニングは出来ない
2 add-on以外の選択肢が無い
 問題解決の選択肢が限られる
3 実装でカバー
 運用回避が難しいので実装で回避
オンプレミス
アプリケーション
データ
仮想化
ランタイム
OS
物理サーバ
ストレージ
ネットワーク
IaaS
アプリケーション
データ
仮想化
ランタイム
OS
物理サーバ
ストレージ
ネットワーク
PaaS
アプリケーション
データ
仮想化
ランタイム
OS
物理サーバ
ストレージ
ネットワーク
SaaS
アプリケーション
データ
仮想化
ランタイム
OS
物理サーバ
ストレージ
ネットワーク
CloudとDB
自由度高い 低い
あじぇんだ
1 自己紹介
2 CloudとDB
3 CloudとPostgreSQL
4 Cloudを使うときの注意点
5 まとめ
まとめ
バックアップとリカバリ
まとめ
冗長化
まとめ
スケールアップ
まとめ
クラウドを使って運用を楽にする
まとめ
クラウドのメリットを活かす
まとめ
クラウドのメリットを活かす
↓
使い分けが重要
まとめ
抽象化することで意識しない存在へ
まとめ
インフラを抽象化
↓
サービスの開発に注力出来る
まとめ
抽象度が高い
まとめ
抽象度が高い
↓
自由度が低い
まとめ
自由度と抽象度がトレードオフ
まとめ
データの寿命はコードより長い
まとめ
一度クラウドに上げた
データは動かしにくい
まとめ
ベンダーロックインの
リスクを理解する
まとめ
ご利用は計画的に
まとめ
データの寿命はコードより長い
大事なことなので二回(ry
ご静聴ありがとうございました。

今すぐ使えるクラウドとPostgreSQL