111
今すぐ使える!! クラウドとPostgreSQL オープンソースカンファレンス2015@沖縄

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

Embed Size (px)

Citation preview

今すぐ使える!! クラウドと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

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