35
Copyright © NIFTY Corporation All Rights Reserved. Copyright © NIFTY Corporation All Rights Reserved. ニフティの中の人によるニフティクラウド活用 2012年1月27日 ニフティ株式会社 安部 潤一郎

#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved.Copyright © NIFTY Corporation All Rights Reserved.

ニフティの中の人によるニフティクラウド活用

2012年1月27日ニフティ株式会社

安部 潤一郎

Page 2: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 1 -Copyright © NIFTY Corporation All Rights Reserved.

自己紹介

• 安部 潤一郎 Twitter @abej

• 所属 ニフティ株式会社

サービスプラットフォーム統括部

サービス基盤開発部

• インフラエンジニア

ウェブオペレーター / オペレーションエンジニア

• ニフティクラウドの中の人

ニフティクラウドを使って、サービスを構築/運用してい

ます。

Page 3: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 2 -Copyright © NIFTY Corporation All Rights Reserved.

ニフティクラウドとは

• IaaS型 パブリッククラウドコンピューティングサービス

• 2010年1月より、お客様へも提供開始

• 1,000社以上の導入実績

Page 4: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 3 -Copyright © NIFTY Corporation All Rights Reserved.

クラウドをどう使っているか (Webサービス関係)

コンテンツ管理システム

ニフティクラウドIaaS

SaaS 個別構築

IaaS(ニフティクラウド)をベースに、大きく2通りの使い方

– SaaSまで構築したシステムを使う

– 個別に構築して使う

Page 5: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 4 -Copyright © NIFTY Corporation All Rights Reserved.

SaaSを使うケース

コンテンツ管理システム

ニフティクラウドIaaS

SaaS個別構築

@niftyのポータルサービス向けコンテンツ管理システム

– 最小限の開発で、大量生産 大量運用可能

– 100以上のサービスが稼働

– なるべくこちらを使いたいが、制約がある

– いわゆる、NoOps の世界

Page 6: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 5 -Copyright © NIFTY Corporation All Rights Reserved.

IaaSベースに個別に構築するケース

コンテンツ管理システム

ニフティクラウドIaaS

SaaS個別構築

SaaSのシステムで対応できない場合、個別構築

– 協業案件など、社外で開発・運用するケース

– 特殊な要件

– いわゆる、DevOps の世界

こちらのケースのインフラを担当しています。

Page 7: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 6 -Copyright © NIFTY Corporation All Rights Reserved.

例えば

• コンテンツ制作・運用,開発は他の会社。インフラはニフティで。

当然、サービスは落とさないように。セキュリティ対策もヨロシク。

• 社外のシステムを使っていたけど、利用者が増えてシステムの限界に。ニフティクラウドに移行して運用して。

• 200MBのファイルを何十万件もダウンロードさせたい。

「CDNですね」「ニフティクラウドで安くできない!?」

• 事業部長「サービスごと買って来たよ。システム移行してね。」

Page 8: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 7 -Copyright © NIFTY Corporation All Rights Reserved.

規模感的には

• ビジネス化するかまだ分からない、スモールスタートなサービス

から

• 月間 PV 3億以上, ユーザ100万人以上のサービス

• 1週間で10万ユーザ登録してくる、ソーシャルゲームの

サービス

まで 様々

Page 9: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 8 -Copyright © NIFTY Corporation All Rights Reserved.

お話しする内容

様々な体制,様々な要件の案件に対して、

① 最低限の品質を守る

② なるべく効率的に、構築/運用する

③ 各種要件に対応する

過去: クラウドが無かったとき、どうだったか。現在: クラウドがある今、どうしているか。

考え方がどう変わったか。

特にクラウドに関係する部分について

Page 10: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 9 -Copyright © NIFTY Corporation All Rights Reserved.

① 最低限の品質を守る

・ サーバの冗長化

・ ミドルウェアの適切な設定, 監視

・ ステージング, デプロイの整備

・ ネットワーク, フィルタの適切な設定

② なるべく効率的に構築/運用する

③ 各種要件に対応する

Page 11: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 10 -Copyright © NIFTY Corporation All Rights Reserved.

サーバの冗長化

• SPOF(単一障害点)を無くす。

• ハード故障に備えて、同一機能のサーバを複数用意。

• 管理ツール, 非オンラインのバッチサーバなども2台ず

つ用意。

• 確かに冗長・・・

クラウドクラウドクラウドクラウド以前以前以前以前

Page 12: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 11 -Copyright © NIFTY Corporation All Rights Reserved.

サーバの冗長化

• (ニフティクラウドでは) サーバのホストで物理的な障

害が発生しても、別のホストで自動的に再起動。

• 管理ツール, 非オンラインのバッチサーバなど

数分程度停止しても問題ない機能であれば、

その機能を1台でも運用。

(念のため安定稼働時のサーバのコピーをとっておく)

クラウドクラウドクラウドクラウド以後以後以後以後

Page 13: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 12 -Copyright © NIFTY Corporation All Rights Reserved.

ミドルウェアの適切な設定, 監視

• Apache, MySQL, ... 適切に設定

• リソース監視, 死活監視

• サービス/システム個別に担当者が設定。

• ノウハウを共有していても限界が・・・

– 不適切な設定で、問題発生。火消しに。

– 問題が発生しても、必要なメトリクスが無い。

クラウドクラウドクラウドクラウド以前以前以前以前

Page 14: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 13 -Copyright © NIFTY Corporation All Rights Reserved.

ミドルウェアの適切な設定, 監視

• あらかじめ、ソフト・検証済みの設定・監視をセットアップしたサーバイメージを用意。コピーして使う。

バリエーションを増やすのは難しい。融通が効かない。

• 自動セットアップスクリプトでセットアップ

(クラウドなら起動スクリプト)

はじめはいいけど、運用してると変わってくる。

• Puppet / Chef の使用 (クラウドAPI使用)

クラウドクラウドクラウドクラウド以後以後以後以後

Page 15: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 14 -Copyright © NIFTY Corporation All Rights Reserved.

ステージング, デプロイの整備

• 本番になるべく近い環境のステージング環境整備

• 安全で簡単なデプロイの仕組み

• サービス/システムによって、整備が不十分だったり。

• ハードが違って、本番とステージングに差異があったり。

クラウドクラウドクラウドクラウド以前以前以前以前

Page 16: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 15 -Copyright © NIFTY Corporation All Rights Reserved.

ステージング, デプロイの整備

• 基本的に、ステージング環境をまずセットアップ。

• ステージング環境のサーバをコピーして本番環境作成。

• デプロイツールもあらかじめ入れておく。

(クラウドAPIでデプロイ用定義生成)

クラウドクラウドクラウドクラウド以後以後以後以後

ステージング環境

本番環境

Page 17: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 16 -Copyright © NIFTY Corporation All Rights Reserved.

ネットワーク, フィルタの適切な設定

• ファイアウォール, ロードバランサーを適切に設定

• ネットワーク専門の担当者が設定・確認。

クラウドクラウドクラウドクラウド以前以前以前以前

Page 18: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 17 -Copyright © NIFTY Corporation All Rights Reserved.

ネットワーク, フィルタの適切な設定

• コントロールパネルで

ポチポチ設定できる。

• まずい設定を回避するために– API で、基本的なルールを一括設定

– ルールに従っていない設定を自動検知

– 特別な要件による設定は、確認/承認の上設定

クラウドクラウドクラウドクラウド以後以後以後以後

Page 19: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 18 -Copyright © NIFTY Corporation All Rights Reserved.

① 最低限の品質を守る

② なるべく効率的に構築/運用する

・ システム設定の自動化, 一括構築

③ 各種要件に対応する

Page 20: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 19 -Copyright © NIFTY Corporation All Rights Reserved.

システム設定の自動化, 一括構築

• OSの/etc以下の設定やソフトの設定

• Web,Apl,DB 3層 のサーバ/ネットワークを構築

• ネットワークブート, 各種ツールで対応

クラウドクラウドクラウドクラウド以前以前以前以前

Page 21: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 20 -Copyright © NIFTY Corporation All Rights Reserved.

システム設定の自動化, 一括構築

• クラウドのAPIを使って、よりカンタンに、統合的に設定

構築できる。

ステージング環境

本番環境

クラウドサーバ群管理サーバAPI

API利用管理サーバ

クラウドクラウドクラウドクラウド以後以後以後以後

Page 22: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 21 -Copyright © NIFTY Corporation All Rights Reserved.

自動設定 シンプルな例

• 簡単な例 hosts 設定

ステージング環境

本番環境

ENDPOINT = クラウドサーバ群管理サーバdesc "各サーバの /etc/hosts を更新する"task :hosts, :roles => [:web, :apl, :dbm, :chk, :bat, :kvs] do

run "cp /etc/hosts /etc/hosts.`date +%Y%m%d`"

url = ENDPOINT + "api/instances.txt?for=hosts"

put open(url).read, "/etc/hosts"

end

クラウドサーバ群管理サーバ

(整形)

API

クラウドクラウドクラウドクラウド以後以後以後以後

Page 23: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 22 -Copyright © NIFTY Corporation All Rights Reserved.

一括構築

• ネットワーク, ロール(web,db...), サーバを yamlで定義すると、一括でネットワーク設定/サーバ構築

instance_groups:

- production:

- web

- apl

- db

default_ip_list:

- basic_monitoring_ping:

- 202.248.175.141

- 111.171.220.13

default_fw_list:

- desc: MySQL

from: fw:apl

to : fw:db

type: tcp

port: 3306

:

クラウドクラウドクラウドクラウド以後以後以後以後

Page 24: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 23 -Copyright © NIFTY Corporation All Rights Reserved.

① 最低限の品質を守る

② なるべく効率的に構築/運用する

③ 各種要件に対応する

・ 急激な負荷増

・ 高いスペックのサーバが欲しい

・ IO性能が必要な高トラフィックサービス

Page 25: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 24 -Copyright © NIFTY Corporation All Rights Reserved.

急激な負荷増

• ソーシャルゲームで、プロモーションかける

• 季節物/イベント WBC とか

• 机上で試算したら、平常時の5倍リクエスト来るかも・・・

• 物理サーバ追加/増設 大変…

• イベントが終わったら、機材どうする?

クラウドクラウドクラウドクラウド以前以前以前以前

Page 26: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 25 -Copyright © NIFTY Corporation All Rights Reserved.

急激な負荷増

• 簡単にサーバ増やせる 減らせる

– イベント前に、フロントサーバを 30台盛る。

– 何日か経過して 20台でさばける → 減らす。

• 本当に突発的な負荷増には、オートスケールで対応。

クラウドクラウドクラウドクラウド以後以後以後以後

Page 27: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 26 -Copyright © NIFTY Corporation All Rights Reserved.

高いスペックのサーバが欲しい

• データ分析したい

• 一通りテストしているが、まだ非効率な処理が残っているかも。リリース後のリスクを減らしたい。

• 物理サーバ や パーツ追加/増設 大変…

• 必要無くなったけど、この 16コアCPUどうする・・・?

• もっとテストを徹底して、リスクを減らしましょう。

クラウドクラウドクラウドクラウド以前以前以前以前

Page 28: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 27 -Copyright © NIFTY Corporation All Rights Reserved.

高いスペックのサーバが欲しい

• 必要に応じてスペックアップ– CPU 8コア追加しておこう とか。

– 使い終わったら削除。

• リスクを減らすために、新機能リリース時だけ、

スペックアップして、問題無ければ戻すのも簡単。

クラウドクラウドクラウドクラウド以後以後以後以後

Page 29: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 28 -Copyright © NIFTY Corporation All Rights Reserved.

クラウドクラウドクラウドクラウド以前以前以前以前

IO性能が必要な高トラフィックなサービス

• ソーシャルゲーム のデータベースなど

• 高性能な物理サーバを使う– SSD使ったり

物理物理物理物理サーバサーバサーバサーバ

Page 30: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 29 -Copyright © NIFTY Corporation All Rights Reserved.

IO性能が必要な高トラフィックなサービス

データストアの使い分け。

(a) 課金/基本情報/アイテム所持→ RDBに保存。スレーブで参照分散

(b) ゲームのセーブ情報/セッション情報 更新多い。→ 永続化できるKVSに保存 (KyotoTycoon, kumofs など)

(c) 特によく参照する情報→ RDBからmemcachedにキャッシュ

(d) アクションログデータの記録→ ファイルやmongodb 非同期書き込み。

よく使うデータをメモリに。

クラウドクラウドクラウドクラウド以後以後以後以後

Page 31: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 30 -Copyright © NIFTY Corporation All Rights Reserved.

IO性能が必要な高トラフィックなサービス

・・・と、工夫しながら対応していましたが、2011年9月 Disk 200 リリース (ニフティクラウド)

http://ncloud.cocolog-nifty.com/blog/2011/09/disk200-4776.html

高負荷なデータベースサーバも結構いける

クラウドクラウドクラウドクラウド以後以後以後以後

スループット300 MB/sec

以上

Page 32: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 31 -Copyright © NIFTY Corporation All Rights Reserved.

IO性能が必要な高トラフィックなサービス

さらに、追加ディスクは、LVMをかましてマウント

• ディスク追加で、要求が分散して性能がアップするかも。

• 容量をカンタンに追加できる。

• スナップショットをとれる。

(スナップ取得中、性能低下するため、取得タイミングや取得場所は要注意)

クラウドクラウドクラウドクラウド以後以後以後以後

Page 33: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 32 -Copyright © NIFTY Corporation All Rights Reserved.

まとめ

① 最低限の品質を守る

② 効率的に、運用構築

③ 各種要件に対応する

クラウドが無かったときどうだったか、

クラウドがある今、どうしているか。

今後は、さらに、プログラマブルなインフラに。

クラウドと一緒に進化していきたい。 続きは後半で

Page 34: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 33 -Copyright © NIFTY Corporation All Rights Reserved.

ニフティクラウド ちょっとPR

2012年1月17日から、

個人事業主の方にもニフティクラウドを、

ご利用いただけるようになりました。

今なら、ニフティクラウド体感キャンペーン で、

30,000円分 無料でお試しいただけます。

→ http://cloud.nifty.com/

Page 35: #cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用

Copyright © NIFTY Corporation All Rights Reserved. - 34 -Copyright © NIFTY Corporation All Rights Reserved.