クラウドサービスamazon ec2を活用した「skipaas」構築事例
TRANSCRIPT
Developers Summit 2010
クラウドサービスクラウドサービスクラウドサービスクラウドサービスクラウドサービスクラウドサービスクラウドサービスクラウドサービスAmazon EC2Amazon EC2をををををををを活用した「活用した「活用した「活用した「活用した「活用した「活用した「活用した「SKIPaaSSKIPaaS」構築事例」構築事例」構築事例」構築事例」構築事例」構築事例」構築事例」構築事例
TIS株式会社
社内ベンチャーカンパニー
「SonicGarden」
並河 祐貴(id:rx7, @namikawa)
1 http://www.sonicgarden.jp/
自己紹介
�並河 祐貴 (NAMIKAWA Yuuki)
� TIS株式会社
�社内ベンチャーカンパニー 「SonicGarden」
� SonicGardenでは、Amazon EC2/S3を活用しています
� ブログ / Twitter
� http://d.hatena.ne.jp/rx7/
– Amazon EC2について日本一詳しく紹介しているブログと思う
� http://twitter.com/namikawa/
�著書、寄稿多数
�Amazon Web Services 関連も
2 http://www.sonicgarden.jp/
絶賛発売中!
� EC2/S3に関するノウハウを書籍にまとめました!
筆者らが、Amazon EC2/S3を活用したサービスを作り上げ、
運用していく過程で得られた知識やノウハウをまとめた書籍です!
クラウド Amazon EC2/S3のすべて~実践者から学ぶ設計/構築/運用ノウハウ~
TIS株式会社 / SonicGarden並河祐貴 / 安達輝雄 著
日経BP社より、2009/11/05発売(税込) 2,940円
※ 紹介エントリ : http://d.hatena.ne.jp/rx7/20091026/p1
3 http://www.sonicgarden.jp/
アジェンダ
� Amazon EC2/S3の概要、メリット、利用事例
�弊社事例の紹介と、EC2採用の理由
� Amazon EC2の機能の活用ポイント
�カスタムAMI、スケールアップ
�実運用する上での課題とその対策・ポイント
�ネットワーク、ストレージ、バックアップ
�メールサーバ、オペレーションミスの影響、障害対応
� EC2で構築・運用してみて
4 http://www.sonicgarden.jp/4
Amazon EC2/S3とは
Amazon EC2(仮想サーバ)
Amazon S3(オンラインストレージ)
� サービスの特徴
�ロードバランサや監視など、運用に必要となるサービスが揃っている
�初期費用無料、1時間/1GB単位での従量課金($0.085~/1h)
�高い稼働率保障(EC2: 99.95%, S3: 99.9%)
Amazon.com社の提供するITインフラ(ハードウェア/ネットワーク)のクラウドサービス
5 http://www.sonicgarden.jp/5
Amazon EC2/S3のメリット
� インフラの準備にかかる期間を大幅に短縮できる
� 稼働状況に応じてサーバの増強/縮退ができる
� インフラの運用管理にかかるコストを削減できる
� 世界中にセンターがあり災害対策にも対応できる
� VPNにより自社内ネットワークのリソースとして利用できる
短納期短納期
低コスト低コスト
高セキュリティ高セキュリティ
6 http://www.sonicgarden.jp/
(参考)Amazon EC2のサーバスペック、価格体系
64-bit1690 GB20 EC2 Compute Units(8 virtual cores with2.5 EC2 Compute Units each)
7 GB$0.68High-CPUExtra LargeInstance
64-bit850GB13 EC2 Compute Units(4 virtual cores with3.25 EC2 Compute Units each)
34.2GB$1.20High-Memory Double Extra Large Instance
64-bit1690 GB26 EC2 Compute Units(8 virtual cores with3.25 EC2 Compute Units each)
68.4GB$2.40High-Memory Quadruple Extra Large Instance
32-bit350 GB5 EC2 Compute Units(2 virtual cores with2.5 EC2 Compute Units each)
1.7 GB$0.17High-CPUMediumInstance
64-bit1690 GB8 EC2 Compute Units(4 virtual cores with2 EC2 Compute Units each)
15 GB$0.68Extra Large Instance
64-bit850 GB4 EC2 Compute Units(2 virtual cores with2 EC2 Compute Units each)
7.5 GB$0.34Large Instance
32-bit160 GB1 EC2 Compute Unit(1virtual core with1 EC2 Compute Unit)
1.7 GB$0.085Small Instance(Default)
Platform Disk CPU※2Memory Price※1Instance
※1: US-eastで、Linuxタイプのサーバを1時間稼動させた時の料金、他別途、転送料が必要($0.1~/1GB)※2: EC2 Compute Unit (ECU) は OpteronもしくはXeonの1.0~1.2GHzクラスに相当
7 http://www.sonicgarden.jp/
� The New York Times
� 数TBの過去記事をS3に保存、アーカイブ処理を100台規模のEC2インスタンスを使用して処理
� NASDAQ
� 過去の株式市場データをS3に保存
� SmugMug
� オンラインフォトストレージ、500TB以上の画像データをS3に保存
� ANIMOTO
� スライドショー作成サービス、動画処理、ファイル保管にEC2/S3を使用、ピーク時は3500~4000のEC2インスタンスを同時使用
� 画像等の配信に、S3やCloudFrontを利用
Amazon EC2/S3が利用されている事例
8 http://www.sonicgarden.jp/8
Amazon EC2/S3が利用されている事例
� eco ideas net
�パナソニック(株)が運営する、エコアイデアを世界中から集めるWebサイト、EC2やS3などを活用
� クックパッド
�レシピ検索・共有サイト、ログ解析用のバッチシステムで、EC2を利用
� ウェブポ
�日本郵便と提携し、構築されたオンライン年賀状作成ツール、年賀状シーズンのみ数十台規模のEC2やS3など、フル活用
� SKIPaaS
9 http://www.sonicgarden.jp/9
弊社運用事例 「SKIPaaS」
� SKIP(社内SNS)をSaaSで提供
�2008/7より提供開始、商用で1年半以上の運用実績
�数十台規模のEC2仮想サーバにて運用中
�様々な業界のお客様にご利用いただいています
http://www.skipaas.jp/
10 http://www.sonicgarden.jp/
Amazon EC2の採用
� 社内ベンチャーがSaaS事業を短期間で立ち上げ
�サービスインまでのスピード感
� 利用申請から数分でコンピューティングリソースを利用開始できる
�初期投資が不要
� 従量課金制のため、インフラのコスト(在庫)が発生しない
� APIでの操作と高い自由度
�操作は全てAPI経由で即時実行、ストレージとの容易な連携
�既存のアプリケーションが改修無しで稼動
�OSイメージのカスタマイズなど、多くの仮想化技術の恩恵を享受できる
11 http://www.sonicgarden.jp/11
Amazon EC2の機能を活用
http://aws.amazon.com/
12 http://www.sonicgarden.jp/
Amazon EC2の基本機能
� AMI
�Amazon EC2で利用できる仮想OSイメージ
� Key Pairs
� リモートログイン時に必要となるキーの生成(秘密鍵・公開鍵)
� Security Groups
�仮想サーバへのアクセス制限(ファイヤーウォール)を実施
バックアップ/リストアで使用、環境の複製が容易となる
仮想サーバにて指定の鍵認証を実施、ログインセキュリティの強化
接続元ネットワークの制限や、接続先ポートの制限を実施
13 http://www.sonicgarden.jp/
カスタムAMIの活用
1. ベースとなるOSを起動
2. 内容をカスタマイズ (アプリのインストールなど)
3. カスタマイズ済OSをイメージ化し、AMIとして保存 (バックアップ)
4. 保存されたAMIをもとに、仮想サーバの複製を実施 (リストア)
Amazon S3
ベースOS
カスタマイズ済OS
カスタマイズ
イメージ化
AMI
イメージを基に起動
カスタマイズ済OS(クローン)
カスタマイズ済OS(クローン)
他ユーザに公開も可能
カスタマイズ(AMI化)の流れ
※ AMI = Amazon Machine Image
14 http://www.sonicgarden.jp/
スケールアップ
EBS
ボリューム
EBS
ボリュームインスタンス(small)
インスタンス(small)
インスタンス(medium)
Amazon S3 (ストレージ)
バックアップ リカバリ
スケールアップ
� AMI / Amazon EBSの活用
�システム領域は、AMIへバックアップ
�データ領域は、Amazon EBSに配置
15 http://www.sonicgarden.jp/
実運用する上での課題とその対策・ポイントについて
http://www.sonicgarden.jp/
16 http://www.sonicgarden.jp/
1. ネットワーク面の課題
�Webページがもっさりと表示されるんだけど?
� コンテンツのダウンロードが遅いんだけど?
17 http://www.sonicgarden.jp/
ネットワーク遅延への対策
� 日本~アメリカ・ヨーロッパのRTT (Round Trip Time)
�日本 ⇔ US-east : 190~200msec
�日本 ⇔ US-west : 120~130msec
�日本 ⇔ EU-west : 280~290msec
� Webページ内で参照するファイルが多いと体感速度低下
Amazon CloudFrontの活用もしくは
国内に静的コンテンツ配信用のサーバを併設
� 以下注意点が許容できるのであればCloudFrontがオススメ
� 初回アクセス時の通信速度が遅い
� キャッシュされたデータの生存時間が最低24時間
� HTTPSでのコンテンツ配信に非対応
18 http://www.sonicgarden.jp/
Amazon CloudFront
Amazon CloudFrontキャッシュサーバ (Tokyo)
Amazon S3(US, EU)
ネットワーク距離が近いため、帯域が太くレスポンスも良い
ネットワーク距離が遠いため、帯域が細くレスポンスも悪い
ユーザ(Tokyo)
S3のデータを
キャッシュ
� CDN (Contents Delivery Network) サービス
� S3に配置されたコンテンツを高速配信
� 日本国内にもキャッシュサーバ有り (高速)
� ただし初回アクセスは遅い、そのタイミングでキャッシュ
� キャッシュサーバの料金は各国で異なる
� 日本では、$0.095~$0.221/1GB
� 1000Mbps, 1000reqs/secにも耐えるスペック
� SSL通信は非対応、キャッシュの生存時間は24時間
19 http://www.sonicgarden.jp/
SKIPaaSシステム構成 (2009/Spring)
SKIPaaS(Amazon EC2/S3)
ユーザ
基本、1社毎に1EC2インスタンスを割当
画像配信サーバ監視サーバ(国内)
システム管理者
画像配信サーバ(国内)
メンテナンス用サーバ監視サーバ(国内)
DNSサーバ(国内)
DNS
ラウンドロビン
メンテナンスライン
監視
監視
メールサーバ(Google Apps)
20 http://www.sonicgarden.jp/
2. ストレージの選定
� いくつかストレージの種類があるんだけど、どれを選べばいいの?
� ストレージはどう使い分けるのが良いの?
21 http://www.sonicgarden.jp/
ストレージ設計
� EC2周辺には3種類のストレージが存在
� 仮想サーバのローカルディスク、EBS、S3
Amazon EC2
仮想サーバ Amazon S3
Amazon EBS
データ書き込み時に、データを物理的に異なる2ヵ所以上のZoneのディスクへ書き込む。障害時は、別のZoneのディスクより復旧。
Amazon S3
データ書き込み時に複製を実施。ただし、同一のZone内でのデータ
保持。
Amazon EBS
特に複製は実施されない。そのため重要なデータは要バックアップ。Amazon EC2
※ 利用できるストレージごとの信頼性の基準
22 http://www.sonicgarden.jp/
ストレージ設計
� 注意点
�仮想サーバのローカルディスクは、サーバを停止させると内容が消滅する
�Amazon EBSは、1ボリュームあたりの利用容量に上限がある
ロストしたくないデータの保持については、EBSの利用が必須EBSで大容量のデータを扱う場合は、ソフトウェアRAIDでカバー
� EBSは仮想サーバの停止や障害に左右されない
� EBSでは、バックアップしやすいスナップショット機能も有している
� SKIPaaS事例でのストレージ利用方法
基本的に変更しないシステムデータ
Amazon EC2
アプリケーションで扱うデータ(ファイル、DB)
ログデータ等
Amazon EBS
バックアップデータカスタムAMI
Amazon S3
23 http://www.sonicgarden.jp/
3. バックアップの実際
�結局、EC2では、バックアップって勝手にやってくれる
の?
� EC2上で、バックアップは実際にどうやってやるの?
24 http://www.sonicgarden.jp/
バックアップ設計
� システムバックアップは、AMI化 (S3へ)
� SKIPaaSでは、各インスタンスでシステム領域の内容はほぼ同一
�変更点の少ないデータを、EC2サーバのローカルディスクに配置
� 必要に応じて、Amazon EBSを利用
� EC2インスタンスのディスク内容はシャットダウン時に消滅
� EBS(ディスクボリューム)は永続的に保管
� 更新頻度の高いデータ(アプリデータ、DB、ログ等)を配置
� S3へのスナップショット機能も使える
� データバックアップは、S3Syncを利用して、S3へ
� S3Sync : rsyncライクな、S3とのデータ同期ツール
25 http://www.sonicgarden.jp/
4. メールサーバ運用の課題
� EC2インスタンスから送信したメールの一部がスパム
メール扱いで返ってくるんだけど?
� EC2インスタンスのIPアドレスに対するDNS逆引き
の設定ってどうやるの?
26 http://www.sonicgarden.jp/
EC2でのメールサーバ運用の課題
� EC2インスタンスで利用されるIPアドレスの一部がスパムメールのDULに登録されている
� spamhaus.org
� mail-abuse.com (maps)
� スパムメールの判定に、DNS逆引きチェックが行われるケースがあるが、EC2ユーザはそれを設定できない
� 174.129.xxx.xxx ⇒
ec2-174-129-xxx-xxx.compute-1.amazonaws.com
27 http://www.sonicgarden.jp/
EC2インスタンスでのDNS逆引き設定
� Developer Forumにて、AWSのスタッフが、Betaなサービスとして、DNS逆引き設定を受付※
�Public beta soon. とのこと
� メールサーバのログ等から、スパムリストに引っかかっているかを確認
上記の設定後に、スパムリストを保持するサービス(spamhaus or maps) に対して、解除申請を実施。
※ http://developer.amazonwebservices.com/connect/thread.jspa?messageID=155999#155999
28 http://www.sonicgarden.jp/
5. オペレーションミスの影響範囲
� すぐにサーバが起動・停止できるのは良いんだけど、間違えて違うサーバを停止してしまいそう!
29 http://www.sonicgarden.jp/
本番環境用とテスト環境用のアカウントID分離
� EC2では、本番環境と同一の環境を生成しやすいメリット
�AMIを活用、テスト用や不具合時の解析用など
� ただし、AWS用のIDが1つの場合、テスト環境向けの操作が、本番環境へ影響を与えるリスク
�テスト環境のインスタンスを停止させるつもりが誤って・・・
�秘密鍵を様々な環境で共有していたが、ステージング環境から誤って流出・・・
�テスト環境の何らかの挙動が、AWSの規定に接触・・・
AWSのIDは、本番用とテスト用で分離させ、
問題発生時の影響範囲を小さくする
30 http://www.sonicgarden.jp/
6. EC2インスタンスの障害
� EC2インスタンスにアクセスできなくなった場合は、ど
うすればよいの?
� EC2のサポートって、どうなってるの?
31 http://www.sonicgarden.jp/
障害が発生した際に、確認できるリソース
� AWS Service Health Dashboard
� AWS Developer Community Forum
� AWS Premium Support (有償)
http://developer.amazonwebservices.com/connect/forumindex.jspa
http://status.aws.amazon.com/
AWS Service Health Dashboard AWS Developer Community Forum
32 http://www.sonicgarden.jp/
EC2仮想サーバの障害事例
� アクセスできなくなった際の復旧のパターン
�自然復旧
�API経由でのリブートによる復旧
�AWSサポートスタッフによる復旧
� Developer Forum、AWS Premium Support
�その他
� ユーザ側による別インスタンスへのマイグレーション
� AWS側による別インスタンスへのマイグレーション
ケースは様々だが、対応フローを準備しておき、手動でのマイグレーションで復旧できる算段を組んでおく。AWS Premium Support(有償)も活用すると良い。
33 http://www.sonicgarden.jp/
障害発生時の対応フロー例
インターネットから応答確認
内部ネットワークから応答確認
AWSPremiumSupport
コンソールでの出力ログ確認
DashBoardやForumに情報が
ないか確認
サポートに連絡し指示を仰ぐ
情報に基づき対応
仮想サーバのリブート
応答無し
応答無し
異常無し
利用登録無し
利用登録有り
情報無し
情報有り
34 http://www.sonicgarden.jp/
EC2で構築・運用してみて
� 何も設備を持たない状況から、EC2を利用し、約1ヶ月程度で
のサービス立ち上げを実現
�誰でも簡単にサーバをすぐに使い始められる
� 安定しているクラウドサービス
� 当初と比較し、価格も値下がりし続けている
� リモートでH/W保守を実施するイメージ
�ハードウェアやファシリティ、ネットワーク面のお守り(心配)をしなくなった
� OSより上のレイヤはユーザが責任をもって運用しなければいけ
ない
�バックアップ、セキュリティパッチ適用、HTTP死活監視、スケールなど
�サービス仕様の特性・注意点を抑えて、オプションサービスの選択や、設計・運用する必要有
35 http://www.sonicgarden.jp/
絶賛発売中!
� EC2/S3に関するノウハウを書籍にまとめました!
筆者らが、Amazon EC2/S3を活用したサービスを作り上げ、
運用していく過程で得られた知識やノウハウをまとめた書籍です!
クラウド Amazon EC2/S3のすべて~実践者から学ぶ設計/構築/運用ノウハウ~
TIS株式会社 / SonicGarden並河祐貴 / 安達輝雄 著
日経BP社より、2009/11/05発売(税込) 2,940円
※ 紹介エントリ : http://d.hatena.ne.jp/rx7/20091026/p1
36 http://www.sonicgarden.jp/
今後・・・
� SonicGardenでは、以下の取組を予定しています
�専用サイトによるAmazon EC2関連TIPSの情報発信
�Amazon EC2関連サービスの展開
�導入支援や技術トレーニング等
開始時に、ブログやTwitterで報知していきますので、
今後ともフォローいただけると幸いです!
http://twitter.com/namikawa/
http://d.hatena.ne.jp/rx7/