AWSで行こう!
at eXtream HAGO 3(みーち)
仮想サーバだけじゃない!? アマゾンのクラウドサービスのご紹介



2012/03/03 @k_nishijima / 西島 幸一郎
自己紹介
西島 幸一郎 / にしじま こういちろう
twitter : @k_nishijima

とある会社のCTOをやっております。基本はJavaな人。
主戦場はBigData系 / MapReduceとか、Cassandraとか。。。
ダイビング好きが高じて2011年9月頭に沖縄に移住してきました
JAWS−UG沖縄の副代表、やらせて頂いてます
JAWSって何?
http://jaws-ug.jp/
『AWS User Group - Japan(通称JAWS-UG)は、
Amazon Web Services(AWS)の利用促進や
情報交換のためのユーザーグループです。』

完全にコミュニティベースです。
(全支部紹介:沖縄は34P)
JAWS-UG沖縄は日本最南端のUG!
JAWS-UG沖縄ご紹介
大将にサイオンの米須さん @asumaslv
ご意見番にジャスミンの贄さん @yoshinorinie
についていただき、もう安心。
(僕は雑用係です。)


昨年9月にキックオフイベント、12月に第1回勉強会
を開催し、次は4−5月くらいかな?
まて、そもそもAWSって何?
http://aws.amazon.com/jp/
Amazon Web Services(AWS)が提供する、
クラウドサービスの総称。
AWSの名のもとに、多数のサービス/プロダクトが
ぶら下がります。
こんな感じ
しかも、恐ろしい勢いで追加されていきます。。。
でもさ、クラウドって
いっぱいあるよね
さくらのクラウド / ニフティクラウド / ホワイトクラウ
ドなどなどなど。

しかし世の中、「クラウド」という名前だけ
取ってつけたようなサービスが
溢れているので要注意!
ではクラウドの定義は?
一般的には、NIST(アメリカ国立標準技術研究所)の
定義が持ち出されます via wikipedia
 Cloud computing is a model for enabling convenient, on-demand network access to a shared
 pool of configurable computing resources (e.g., networks, servers, storage, applications, and
 services) that can be rapidly provisioned and released with minimal management effort or
 service provider interaction. This cloud model promotes availability and is composed of five
 essential characteristics, three service models, and four deployment models.



サービス提供形態によって、SaaSからIaaSまでにレイヤリング
出来るってのもおなじみの定義。
 SaaSはApplication / salesforce.comとかGoogleApps
 PaaSはPlatform / GAEとかherokuとかAzure
 IaaSはInfrastructure / AWS EC2とか国内仮想サーバサービス等
ではクラウドの定義は?
エンジニアは各自で考えて、もうちょっと違う定義でいいので
は?と思います。

自分の中の定義は
  『かつて物理的だったものを含め、
  全てをAPI経由でプログラミングできる』
のがクラウド、かな。

世の中的には、これに加えて「時間単位の課金=使った分だけ
お金を払う」という定義が非常に重要視されています。
※この構図には法人利用の場合、良し悪しがあるんですが、
 これはまた別途勉強会の時にでも深く突っ込んで。。。
具体的なAWSの使い方
お題:mathematicaみたいな自作プログラムを使って、
なんかでかい計算をする。初めは自分のMacBookで始めるが、
・・・ヤバイ、全然計算が終わらない。。。

Amazon EC2で仮想サーバをポチポチッっと立てて、計算実
行!
  →1時間単位でかかった分だけ課金。$0.085/時から
  CPUとメモリのサイズにより、小粒なサーバから
  スーパーコンピュータクラスまで(財布が許せば)
  選択することが出来る。
具体的なAWSの使い方
あるシステム管理者の一日:
普段誰も見てないうちのホームページに、とある写真を載せた
とたんサーバが死ぬほどアクセスが来た。。。

 →この状況ですべきことは1つ、この一瞬のアクセスをどこかに逃がして
 サーバを瀕死の状態から救うこと。
 もし同じネットワークが自分たちの作業環境なのであれば、自分たちの帯域を
 確保して、通常の作業に影響が出ないようにすること。。。


まあ良くあるパターン。
これが嫌なのが、嵐が過ぎ去れば
元のトラフィックに戻ること。
具体的なAWSの使い方
Amazon S3でWebサイトをホスティング
  S3とは、ファイル単位の分散ストレージシステム。
 イレブンナイン(99.999999999%)というとてつもない堅牢性。
 ちなみに可用性は99.99%=年間約1時間は止まるかも)。
 Dropboxとかストレージが必要なWebサービスはみんな使ってます。


 ここにHTMLのみの静的コンテンツを置いて公開可能。
 アップしたファイルの容量と、配信時の帯域で課金。
 (初めの1TB/月までは $0.125/GB)

 嵐が過ぎたら、DNS書き換えて元に戻せば
 それ以上の課金は発生しない。
具体的なAWSの使い方
ありがたい事例:
  作ったソーシャルゲームが当たった!
  アメリカとかヨーロッパのユーザが
  「面白いけど遅い、何とかしろ」って怒ってる!?

解答:
  分かった、静的コンテンツをユーザの近くに配置しよう。
  →Amazon CloudFrontでCDNする

 ついでにサーバも最寄りのデータセンターに置こう。
 →データセンター(Regionという)は現在8箇所。
具体的なAWSの使い方
via http://aws.amazon.com/jp/about-aws/globalinfrastructure/
具体的なAWSの使い方
     何よりも恐ろしいのは、
      今まで書いた例が
 全部マウスクリック or コマンドで「さくっ」と
        出来ること。

    サーバ買ってきて組み立てたり、
      ハブに繋いで結線したり、
 IPアドレス貰ってきてデプロイしたりとか、
       面倒なこと一切なし!
まとめ
独自サービス作ってサーバ立てるなら
1. まず自分のローカルで
2. とりあえず公開するときはheroku.comで
  (ご存知かと思いますがこれもEC2上で動いてます)
3. 育ちそうならEC2で自前で運用
   とりあえず初期一年は無料枠あり

そんな感じでやってみては如何でしょうか。
まとめ
色々試してみたい!という方は是非やってみて、
ハマったネタをJAWS-UG沖縄で語ろう!

あんな困った/こんなハマったがあれば、
お気軽に @k_nishijima までコンタクトください。

また、JAWS-UGにもご参加ください!
facebookで「JAWS-UG沖縄」を検索!
付録:各種ポインタ
AWSのウェブサイトとブログ
http://aws.amazon.com/jp/
http://aws.typepad.com/aws_japan/

evaの玉川さんのslideshare
http://www.slideshare.net/kentamagawa

JAWS-UG沖縄
https://www.facebook.com/groups/jawsug.okinawa/

AWSで行こう