Upload
shinchi-fujikawa
View
3.863
Download
2
Embed Size (px)
DESCRIPTION
2009年9月9日 JJUG主催 アマゾンEC2ナイトセミナ資料
Citation preview
究極のスモールスタートの方法
自宅サーバからEC2へ
2009/9/8 アマゾンEC2ナイトセミナ 第2回
1
今日の目標
• 多分、高度な知識みたいなものは得られません。(ごめんなさい)
• EC2を使うと、こんなスキルセットの人でも、こんなことができるんだ!
と言うことを知ってもらうこと。
2
Agenda
• 自己紹介
• モバツイッターの生い立ち
• そしてEC2へ
• EC2の生かし方
• クラウド時代のエンジニア像(特にサーバ)• まとめ
3
chapter 1
自己紹介(ちょっと詳しく)
目標時間10分
4
自己紹介 :リアルサイド
• 名前:藤川 真一
• (株)paperboy&co.
EC・コミュニティ事業本部カラメルチーム プロデューサー
レンタルサーバー(lolipop) 、 ブログ(JUGEM)GMOインターネットグループ昨年末ジャスダック上場 (3633)
5
テキストテキスト
月額1,000円からのネットショップASP6
カラメルのチーム体制
• カラメルチーム プロデューサー プログラマ (サービス開発) ディレクター、デザイナー (その他サポート、マーケ)
• サーバチーム サーバ構築、管理、監視業務 EC担当 2名
7
スキル、経験
• ~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
自己紹介 ネットサイド• ハンドルネームえふしん
• ネット歴 20年
• 2ちゃんねらの後にF’s Garage (blog)2003年からhttp://www.milkstand.net/fsgarage
9
自宅サーバ(元々)
• 2006年7月から本格運用
• FedoraCore5
• PowerEdge SC430 (Celeron D)
• Bフレッツ、マンションタイプ(上り1Mbps www)
• メール 、F’s Garage (apache 2.0)
• DNS (bind)
• Drupal ( RSSリーダーポータル)
10
自宅サーバ運用の目的
• 自宅サーバの限界を見極めたかった。
• 自分でインフラ運用をしたかった
• 尊敬する増井俊之さん「必要なものは、自分で作る。」
11
chapter 2
モバツイッターの生い立ち
時間確認タイム (10分経過?)
12
モバツイッターとは?
• 日本の携帯電話に最適化した ツイッタークライアント (PC, iPhone , Windows Mobile, Androidにも対応)
• 2007年4月開始、自宅で運用
• 歩きながらチャット最初は自分用ツール
• PHP5 + MySQL (eoと言うシンプルなMVCフレームワーク)
13
モバツイッターの特徴
• 携帯からアクセスするとapi経由でデータを取得し、携帯に最適化された画面を表示
• 写真や位置情報をツイッターに送る機能(はてなフォトライフ、携帯百景と連携)
• ツイッターにURLが書かれたWebページを携帯電話向けに変換して表示
14
ユーザー増加推移、アクティブ数
• 登録済みユニークアカウント数で15万人(ツイッターの日本人シェアで、10%以上!?)
• 24時間以内に、4万人程度アクセス
twitterポータルからリンク誘導
15
16
モバツイッター(自宅)のトラブル履歴
17
モバツイッター(自宅)のトラブル履歴
• RAIDのHDDが壊れて徹夜でメンテ(楽天アフィリエイトのポイントでHDDを購入)
• サーバの増加で、ブレーカーが落ちる
• 雷でサーバが落ちる
• ハブが壊れて、仕事を抜け出して家に帰る
• 部屋が暑い、エアコンが効かない
• Webサーバの過負荷対策に、クアッドコアのハイパワーCPU (AMD Phenom 9950)を購入 → 更に部屋が暑い
• ルーター過負荷。家からUStreamが見られなくなる
18
• HDDが壊れて、/bin以下が時間と共に崩壊
19
システム増強の歴史
SC430で開始
DBサーバ独立ML115(Opteron)
Webサーバ入れ替え1HP ML115
(Athlon64 X2)
Webサーバ入れ替え2(HP ML115
Phenom 9950)
ルーター入れ替えYamaha RT1000
EC2へ移転
twitterポータルからリンク誘導
20
自宅サーバの限界評価
• AMD クアッドコア1台で、モバツイ換算月間600万PVが限界
(最終的なボトルネックはルーターか帯域)
※モバツイは、in/outが同時に発生する。 (ただし画像がほとんどない)
21
EC2に移転したきっかけ
• セレボ社のエンジニアの方が設計した直流電源自作サーバとEC2を迷っていた。
• EC2の問題点はランニングコストを払いきれるか?という不安
• モバツイッターの寄付を募った分で、数ヶ月の評価は可能だと思った。
• 最終的にはルーター過負荷による緊急対応(モバツイが調子悪いと僕の機嫌が悪い)
22
そもそも、何故EC2か?
• 初期導入コストがかからない
• 決断して、すぐ導入できる(選択の余地がなかった)
• レイテンシについては、そもそもtwitter apiが海外なので関係ない。
携帯 → 埼玉県 → twitter api(西海岸) vs
携帯 → EC2(東海岸)→ twitter api(西海岸)
23
chapter 3
そしてEC2へ
時間確認タイム (20分経過?)
24
まず、EC2を始めるのに必要な情報
• ぶっちゃけ、id:rx7さんのはてなダイヤリーしか見てません。本当にありがとうございます。
http://d.hatena.ne.jp/rx7/20080528/p1
Amazon EC2/S3を使ってみた -
まとめ (Amazon Web Services関連エントリ目次)
25
現在の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
それ以外のシステム構成
• 画像はほとんどない。プロフィール画像は本家から配信、Web画像のproxyは、hetemlで運用、写真は外部サービス
• バックアップDB (EC2にsmallインスタンス)
• ログ検索用に、家のMySQLにレプリケーション全文検索DBをEC2に置くのは値段が高い。(最低でもLarge Instance 0.4$/hour メモリ7.5GB)
• メール投稿、DNSは、家の環境で動作
27
EC2インスタンスの選択について
• 単体のインスタンスのCPU性能はかなり低い!
• I/O負荷の高いWebサーバ用途に、small instance
では全然動かなかったので、もう使わない。 (月間200万PVぐらいのサイトで試してみたい)
• 感覚的には、medium × 3インスタンスで、1 Phenom (9950BE)ぐらい。
• medium instanceは、smallで構築したイメージ(AMI)をそのまま使えるのでsmallで構築してからmediumで運用すると安く済むので最初はオススメ。
28
Webサーバ追加のフロー(リードタイム30min、現在は手動運用)
• Webサーバ用のAMIで、インスタンスを追加>ec2-run-instances ami-xxxx -t c1.medium -k *****
• 最新のソースをステージングサーバからrsyncで同期>/root/ec2app_update.sh
• 以前のAMI作成後にアップデートされた処理をコピペで流す。
• 動作確認後、ロードバランサーにぶら下げてリリース完了
29
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
料金(参考)• 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
EC2運用の今後の課題、問題点
• 朝起きたらLoad BalancerのIPが変わってた!→ec2へのDNSは、原則CNAMEで割り当て。 movatwitter.jp から www.movatwitter.jpへ。
• Cloud watch or WAKAMEによる効率的なインスタンス運用でのコストダウン
• サーバ追加Scriptの自動化で、管理工数の低減
• EBSに共有ソースコード置き場?
• Reserved Instance ・・・コストダウンと、EC2の柔軟性と相反 キャッシュフローの問題。
• 寄付では、EC2は維持できません。
32
chapter 4
EC2の生かし方
時間確認タイム (35分経過?)
33
EC2のメリット サービス性
• 1h単位でリソースを使えるし、止められる
• 集客できるポータル + サブサイト(ec2)に最適e-learning、IRやスポーツ中継、広告キャンペーンなど。
34
コマンドラインツール
• 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
iPhoneによるサーバ管理
• Touch Term公開鍵認証に対応しているSSHクライアント
• このアプリを手に入れたらモバイルノートはいらなくなった。
36
chapter 5
クラウド時代のサーバエンジニア像
時間確認タイム (40分経過?)
37
クラウドに本当にビジネスメリットがあるのなら・・・
• 一度、AMIを作れば誰でもサーバを増やせる(OSのライブラリ化)
• 再起動管理がほとんど必要ない。
• サーバ構成の選択の余地が減る。
• HDDの故障などの運用業務が減る
• 監視系はあまり変わらないが、原則、アプリケーション都合になるのでは?
→アーキテクト+アプリケーションエンジニアで回る38
変われない予測
• アプリケーションエンジニアがサーバに関する勉強を放棄している会社(自分の仕事じゃない)
• 事業の経緯上サーバエンジニアの力の大きい会社
急速な変化は期待できない?!クラウドもまた小規模ベンチャーから?!
変化は周縁から起こる(湯川鶴章さんの言葉)
39
まとめ
40
• サーバのハード的な問題から解放されて精神的安定をもたらしてくれたEC2には素直に感謝。
• 1h単位で必要な時に足せて、必要な時に減らせる。これを収益に生かすビジネスモデルを作ったら最強
• これからのアプリケーションエンジニアは、インフラ(AMI)を自分で構築出来るようになるべきだし、サーバエンジニアはシステムアーキテクトを目指すなどキャリアパスを考えるべき。
41
ご清聴ありがとうございました。
是非、ご質問をどうぞ
42