ec2ナイトセミナプレゼン資料 rel2

42
究極のスモールスタートの方法 自宅サーバからEC22009/9/8 アマゾンEC2ナイトセミナ 第2回 1

Upload: shinchi-fujikawa

Post on 30-Apr-2015

3.863 views

Category:

Technology


2 download

DESCRIPTION

2009年9月9日 JJUG主催 アマゾンEC2ナイトセミナ資料

TRANSCRIPT

Page 1: EC2ナイトセミナプレゼン資料 Rel2

究極のスモールスタートの方法

自宅サーバからEC2へ

2009/9/8 アマゾンEC2ナイトセミナ 第2回

1

Page 2: EC2ナイトセミナプレゼン資料 Rel2

今日の目標

• 多分、高度な知識みたいなものは得られません。(ごめんなさい)

• EC2を使うと、こんなスキルセットの人でも、こんなことができるんだ!

と言うことを知ってもらうこと。

2

Page 3: EC2ナイトセミナプレゼン資料 Rel2

Agenda

• 自己紹介

• モバツイッターの生い立ち

• そしてEC2へ

• EC2の生かし方

• クラウド時代のエンジニア像(特にサーバ)• まとめ

3

Page 4: EC2ナイトセミナプレゼン資料 Rel2

chapter 1

自己紹介(ちょっと詳しく)

目標時間10分

4

Page 5: EC2ナイトセミナプレゼン資料 Rel2

自己紹介 :リアルサイド

• 名前:藤川 真一

• (株)paperboy&co.

EC・コミュニティ事業本部カラメルチーム プロデューサー

レンタルサーバー(lolipop) 、 ブログ(JUGEM)GMOインターネットグループ昨年末ジャスダック上場 (3633)

5

Page 6: EC2ナイトセミナプレゼン資料 Rel2

テキストテキスト

月額1,000円からのネットショップASP6

Page 7: EC2ナイトセミナプレゼン資料 Rel2

カラメルのチーム体制

• カラメルチーム プロデューサー プログラマ (サービス開発) ディレクター、デザイナー (その他サポート、マーケ)

• サーバチーム サーバ構築、管理、監視業務 EC担当 2名

7

Page 8: EC2ナイトセミナプレゼン資料 Rel2

スキル、経験

• ~2000年  半導体系生産装置のエンジニア ・電気設計、制御プログラム

• 2000年10月 Web制作ベンチャーに転職 ・動画CMS開発 (Windows Media , Real Server , SMIL )

 ・Flash開発(Flash4~ actionscript、FCS) ・Web受託 (ASP → Java Servlet , Struts )

• 2006年1月 Paperboy&co.へ転職 ・LAMP , Flash , JavaScript

8

Page 9: EC2ナイトセミナプレゼン資料 Rel2

自己紹介 ネットサイド• ハンドルネームえふしん

• ネット歴 20年

• 2ちゃんねらの後にF’s Garage (blog)2003年からhttp://www.milkstand.net/fsgarage

9

Page 10: EC2ナイトセミナプレゼン資料 Rel2

自宅サーバ(元々)

• 2006年7月から本格運用

• FedoraCore5

• PowerEdge SC430 (Celeron D)

• Bフレッツ、マンションタイプ(上り1Mbps www)

• メール 、F’s Garage (apache 2.0)

• DNS (bind)

• Drupal ( RSSリーダーポータル)

10

Page 11: EC2ナイトセミナプレゼン資料 Rel2

自宅サーバ運用の目的

• 自宅サーバの限界を見極めたかった。

• 自分でインフラ運用をしたかった

• 尊敬する増井俊之さん「必要なものは、自分で作る。」

11

Page 12: EC2ナイトセミナプレゼン資料 Rel2

chapter 2

モバツイッターの生い立ち

時間確認タイム (10分経過?)

12

Page 13: EC2ナイトセミナプレゼン資料 Rel2

モバツイッターとは?

• 日本の携帯電話に最適化した ツイッタークライアント (PC, iPhone , Windows Mobile, Androidにも対応)

• 2007年4月開始、自宅で運用

• 歩きながらチャット最初は自分用ツール

• PHP5 + MySQL (eoと言うシンプルなMVCフレームワーク)

13

Page 14: EC2ナイトセミナプレゼン資料 Rel2

モバツイッターの特徴

• 携帯からアクセスするとapi経由でデータを取得し、携帯に最適化された画面を表示

• 写真や位置情報をツイッターに送る機能(はてなフォトライフ、携帯百景と連携)

• ツイッターにURLが書かれたWebページを携帯電話向けに変換して表示

14

Page 15: EC2ナイトセミナプレゼン資料 Rel2

ユーザー増加推移、アクティブ数

• 登録済みユニークアカウント数で15万人(ツイッターの日本人シェアで、10%以上!?)

• 24時間以内に、4万人程度アクセス

twitterポータルからリンク誘導

15

Page 16: EC2ナイトセミナプレゼン資料 Rel2

16

Page 17: EC2ナイトセミナプレゼン資料 Rel2

モバツイッター(自宅)のトラブル履歴

17

Page 18: EC2ナイトセミナプレゼン資料 Rel2

モバツイッター(自宅)のトラブル履歴

• RAIDのHDDが壊れて徹夜でメンテ(楽天アフィリエイトのポイントでHDDを購入)

• サーバの増加で、ブレーカーが落ちる

• 雷でサーバが落ちる

• ハブが壊れて、仕事を抜け出して家に帰る

• 部屋が暑い、エアコンが効かない

• Webサーバの過負荷対策に、クアッドコアのハイパワーCPU (AMD Phenom 9950)を購入 → 更に部屋が暑い

• ルーター過負荷。家からUStreamが見られなくなる

18

Page 19: EC2ナイトセミナプレゼン資料 Rel2

• HDDが壊れて、/bin以下が時間と共に崩壊

19

Page 20: EC2ナイトセミナプレゼン資料 Rel2

システム増強の歴史

SC430で開始

DBサーバ独立ML115(Opteron)

Webサーバ入れ替え1HP ML115

(Athlon64 X2)

Webサーバ入れ替え2(HP ML115

Phenom 9950)

ルーター入れ替えYamaha RT1000

EC2へ移転

twitterポータルからリンク誘導

20

Page 21: EC2ナイトセミナプレゼン資料 Rel2

自宅サーバの限界評価

• AMD クアッドコア1台で、モバツイ換算月間600万PVが限界

(最終的なボトルネックはルーターか帯域)

※モバツイは、in/outが同時に発生する。 (ただし画像がほとんどない)

21

Page 22: EC2ナイトセミナプレゼン資料 Rel2

EC2に移転したきっかけ

• セレボ社のエンジニアの方が設計した直流電源自作サーバとEC2を迷っていた。

• EC2の問題点はランニングコストを払いきれるか?という不安

• モバツイッターの寄付を募った分で、数ヶ月の評価は可能だと思った。

• 最終的にはルーター過負荷による緊急対応(モバツイが調子悪いと僕の機嫌が悪い)

22

Page 23: EC2ナイトセミナプレゼン資料 Rel2

そもそも、何故EC2か?

• 初期導入コストがかからない

• 決断して、すぐ導入できる(選択の余地がなかった)

• レイテンシについては、そもそもtwitter apiが海外なので関係ない。

携帯 → 埼玉県 → twitter api(西海岸) vs

携帯 → EC2(東海岸)→ twitter api(西海岸)

23

Page 24: EC2ナイトセミナプレゼン資料 Rel2

chapter 3

そしてEC2へ

時間確認タイム (20分経過?)

24

Page 25: EC2ナイトセミナプレゼン資料 Rel2

まず、EC2を始めるのに必要な情報

• ぶっちゃけ、id:rx7さんのはてなダイヤリーしか見てません。本当にありがとうございます。

http://d.hatena.ne.jp/rx7/20080528/p1

Amazon EC2/S3を使ってみた -

まとめ (Amazon Web Services関連エントリ目次)

25

Page 26: EC2ナイトセミナプレゼン資料 Rel2

現在のEC2基本システム構成

• ロードバランサー(Elastic Load Balancing)

• Webサーバ 9台 全て冗長構成  手作業で30分で追加可能

• DBサーバ 1台 (+固定IPオプション)

• インスタンスは、全てMedium

( 32bit Xeon 2.3GHz相当、1.7GByte 、350GB

 1台あたり、0.2$ /hour(月間約144$)+ 帯域利用料)

• PHP セッション共有用にNFSで共有エリアを設ける。(経験上、あまり好ましくない)

26

Page 27: EC2ナイトセミナプレゼン資料 Rel2

それ以外のシステム構成

• 画像はほとんどない。プロフィール画像は本家から配信、Web画像のproxyは、hetemlで運用、写真は外部サービス

• バックアップDB (EC2にsmallインスタンス)

• ログ検索用に、家のMySQLにレプリケーション全文検索DBをEC2に置くのは値段が高い。(最低でもLarge Instance 0.4$/hour メモリ7.5GB)

• メール投稿、DNSは、家の環境で動作

27

Page 28: EC2ナイトセミナプレゼン資料 Rel2

EC2インスタンスの選択について

• 単体のインスタンスのCPU性能はかなり低い!

• I/O負荷の高いWebサーバ用途に、small instance

では全然動かなかったので、もう使わない。 (月間200万PVぐらいのサイトで試してみたい)

• 感覚的には、medium × 3インスタンスで、1 Phenom (9950BE)ぐらい。

• medium instanceは、smallで構築したイメージ(AMI)をそのまま使えるのでsmallで構築してからmediumで運用すると安く済むので最初はオススメ。

28

Page 29: EC2ナイトセミナプレゼン資料 Rel2

Webサーバ追加のフロー(リードタイム30min、現在は手動運用)

• Webサーバ用のAMIで、インスタンスを追加>ec2-run-instances ami-xxxx -t c1.medium -k *****

• 最新のソースをステージングサーバからrsyncで同期>/root/ec2app_update.sh

• 以前のAMI作成後にアップデートされた処理をコピペで流す。

• 動作確認後、ロードバランサーにぶら下げてリリース完了

29

Page 30: EC2ナイトセミナプレゼン資料 Rel2

AMI作成後にアップデートされた作業リスト

• mkdir /var/session

• mount -o nolock -t nfs ip-xxxxxxxxxx.ec2.internal:/var/session /var/session

• /etc/init.d/sendmail start

• /sbin/chkconfig sendmail on

• pecl install channel://pecl.php.net/oAuth-0.99.9

• cp /var/www/twitter/cron/httpd_logrotate /etc/logrotate.d/

• その他 php.iniへの記述追加とWebサーバ再起動

• なかなかAMIを完璧にするのは難しい。

30

Page 31: EC2ナイトセミナプレゼン資料 Rel2

料金(参考)• 7月のコストインスタンス費用 $977 (Medium 約6インスタンス)帯域利用料 $225

ロードバランサー費用 $23

S3利用料 $1.2

トータルで、$1,226

• 8月のコストインスタンス費用 $1,200 (Medium 約7.8インスタンス)帯域利用料 $340

ロードバランサー費用 $24

S3利用料 $1.2

トータルで、$1,606

31

Page 32: EC2ナイトセミナプレゼン資料 Rel2

EC2運用の今後の課題、問題点

• 朝起きたらLoad BalancerのIPが変わってた!→ec2へのDNSは、原則CNAMEで割り当て。 movatwitter.jp から www.movatwitter.jpへ。

• Cloud watch or WAKAMEによる効率的なインスタンス運用でのコストダウン

• サーバ追加Scriptの自動化で、管理工数の低減

• EBSに共有ソースコード置き場?

• Reserved Instance ・・・コストダウンと、EC2の柔軟性と相反 キャッシュフローの問題。

• 寄付では、EC2は維持できません。

32

Page 33: EC2ナイトセミナプレゼン資料 Rel2

chapter 4

EC2の生かし方

時間確認タイム (35分経過?)

33

Page 34: EC2ナイトセミナプレゼン資料 Rel2

EC2のメリット サービス性

• 1h単位でリソースを使えるし、止められる

• 集客できるポータル + サブサイト(ec2)に最適e-learning、IRやスポーツ中継、広告キャンペーンなど。

34

Page 35: EC2ナイトセミナプレゼン資料 Rel2

コマンドラインツール

• GUIもあるが、コマンドラインツールでコントロールできるのは強力

インスタンス起動>ec2-run-instances ami-xxxxxxxx -t c1.medium -k *******

ロードバランサーにインスタンスを追加>elb-register-instances-with-lb movatwitter-lb --instances i-xxxxxx,i-xxxxx

ロードバランサーにぶら下がってるサーバのヘルスチェック>elb-describe-instance-health --lb movatwitter-lb

35

Page 36: EC2ナイトセミナプレゼン資料 Rel2

iPhoneによるサーバ管理

• Touch Term公開鍵認証に対応しているSSHクライアント

• このアプリを手に入れたらモバイルノートはいらなくなった。

36

Page 37: EC2ナイトセミナプレゼン資料 Rel2

chapter 5

クラウド時代のサーバエンジニア像

時間確認タイム (40分経過?)

37

Page 38: EC2ナイトセミナプレゼン資料 Rel2

クラウドに本当にビジネスメリットがあるのなら・・・

• 一度、AMIを作れば誰でもサーバを増やせる(OSのライブラリ化)

• 再起動管理がほとんど必要ない。

• サーバ構成の選択の余地が減る。

• HDDの故障などの運用業務が減る

• 監視系はあまり変わらないが、原則、アプリケーション都合になるのでは?

→アーキテクト+アプリケーションエンジニアで回る38

Page 39: EC2ナイトセミナプレゼン資料 Rel2

変われない予測

• アプリケーションエンジニアがサーバに関する勉強を放棄している会社(自分の仕事じゃない)

• 事業の経緯上サーバエンジニアの力の大きい会社

急速な変化は期待できない?!クラウドもまた小規模ベンチャーから?!

変化は周縁から起こる(湯川鶴章さんの言葉)

39

Page 40: EC2ナイトセミナプレゼン資料 Rel2

まとめ

40

Page 41: EC2ナイトセミナプレゼン資料 Rel2

• サーバのハード的な問題から解放されて精神的安定をもたらしてくれたEC2には素直に感謝。

• 1h単位で必要な時に足せて、必要な時に減らせる。これを収益に生かすビジネスモデルを作ったら最強

• これからのアプリケーションエンジニアは、インフラ(AMI)を自分で構築出来るようになるべきだし、サーバエンジニアはシステムアーキテクトを目指すなどキャリアパスを考えるべき。

41

Page 42: EC2ナイトセミナプレゼン資料 Rel2

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

是非、ご質問をどうぞ

42