Awsをつかってみた

4,483 views
4,415 views

Published on

第1回岡山Amazon Web Service勉強会

Published in: Technology
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,483
On SlideShare
0
From Embeds
0
Number of Embeds
1,589
Actions
Shares
0
Downloads
0
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide
  • では早速はじめて行きたいとおもいます。\nまずは僕の発表で「AWSをつかってみた」ということで。\n
  • まずは自己紹介を。\n栩平智行といいます。\n株式会社aguuuという会社を経営しています。\nTwitterアカウントは@aguuuです。\nアイコンはこんなのです。\n主にiOSのネイティブアプリとか作っています。\n去年からRubyの勉強を始めました。\n主に仕事はiOSのネイティブアプリとかiOSの企業向け講習とかをやっていることが多いです。\n
  • では本題に入りたいと思います。\n実はAWSについては数年前からずーっと気になっていまして、主に自社サーバーはレンタルサーバーとか、さくらVPSを使っていたんです。\nでも、これからは「やっぱりクラウドだよね」っと流行り言葉に乗せられてクラウドも気になっていました。\nでも、AWS、dot Cloud、さくらクラウド、GAEと数多のクラウドサービスがある訳でいったいどれが良いのっと悩んでいたわけです。\nそんなときに、今年の2月に大阪の「日本一社員満足度の高い会社」で有名な某会社の研修がありましてそれに参加したんですね。\nその某会社には岡山出身の優秀なエンジニアがおりまして、そのエンジニアが数多のクラウドサービスを使いこなしているので、根掘り葉掘り聞いたわけですよ。\nそしたら帰ってきた答えが【クリック】\nえ!AWS一択でしょ\nかなり表現を誇張していますが、こう言っているわけでならばAWSを取り敢えず触ってみるかなということでAWSの勉強を始めました。\nまた、世界の有名ベンチャー企業のクラウドサービス利用状況の様な資料をどこかで見まして、その資料に乗っているベンチャー企業の内の70%程度がAWSを使っているので「AWSがこれだけ選ばれるには何か理由があるな」っという事もありました。\n
  • じゃあ、AWSをはじめる前の僕が持っていたAWSに対するイメージなんですが。\n
  • 「うわ、AWS高すぎ」AWSは従量課金制なので月末にトンデモナイ金額を請求されるてビックリみたい事になるんじゃないかと。\nそんな不安がありました。\n\n
  • 次にこんなイメージです【クリック】ここに書かれているのはAWSの数多のサービスですが。\n
  • 次にこんなイメージです【クリック】ここに書かれているのはAWSの数多のサービスですが。\n
  • 次にこんなイメージです【クリック】ここに書かれているのはAWSの数多のサービスですが。\n
  • 次にこんなイメージです【クリック】ここに書かれているのはAWSの数多のサービスですが。\n
  • 次にこんなイメージです【クリック】ここに書かれているのはAWSの数多のサービスですが。\n
  • 次にこんなイメージです【クリック】ここに書かれているのはAWSの数多のサービスですが。\n
  • 次にこんなイメージです【クリック】ここに書かれているのはAWSの数多のサービスですが。\n
  • 次にこんなイメージです【クリック】ここに書かれているのはAWSの数多のサービスですが。\n
  • 次にこんなイメージです【クリック】ここに書かれているのはAWSの数多のサービスですが。\n
  • 次にこんなイメージです【クリック】ここに書かれているのはAWSの数多のサービスですが。\n
  • 次にこんなイメージです【クリック】ここに書かれているのはAWSの数多のサービスですが。\n
  • 次にこんなイメージです【クリック】ここに書かれているのはAWSの数多のサービスですが。\n
  • 次にこんなイメージです【クリック】ここに書かれているのはAWSの数多のサービスですが。\n
  • 次にこんなイメージです【クリック】ここに書かれているのはAWSの数多のサービスですが。\n
  • 次にこんなイメージです【クリック】ここに書かれているのはAWSの数多のサービスですが。\n
  • 次にこんなイメージです【クリック】ここに書かれているのはAWSの数多のサービスですが。\n
  • 次にこんなイメージです【クリック】ここに書かれているのはAWSの数多のサービスですが。\n
  • 次にこんなイメージです【クリック】ここに書かれているのはAWSの数多のサービスですが。\n
  • 次にこんなイメージです【クリック】ここに書かれているのはAWSの数多のサービスですが。\n
  • 「うわサービス多すぎ」\nサービスが多くて複雑すぎて、サーバー管理の素人の僕には難しいんじゃないかと。\n
  • 色々と勝手に想像したって仕方が無いので、取り敢えず実践してつかって見ることにしました。取り敢えずは最小構成でサーバーを構築してみました。\n因みにAWSを使い始めて1ヶ月程度なのでこれからお話することには多々間違いが含まれているかもしれません。\n間違いについては、きっと他の講師陣が優しく指摘してくれると思いますので、この時間は恥を忍んで発表したいと思います。\n
  • まずは構成の概要です。\n今回はRubyOnRailsのWebアプリを動かしたかったのこんな構成にしました。\nOSはLinuxを使います。\nAWSではRedhatやUbuntuやWindows Serverのディスクイメージが容易されていてこれらをつかってサーバーを構築する事ができます。\n因みに今回はアマゾンさんが提供しているAmazon Linuxを使用しました。\nこれはRedHat系ですよね?\nそして、WebサーバーはApache 2.2、WebアプリはRuby on Rails3.2でそれを動かす為にPassengerを入れています。\nデータベースはMySQL 14.14です。\nよくある構成ですね。PHPを動かす場合でもWebアプリのところが変わるだけでほとんど同じですね。\n\n
  • 次に先に用語の説明をしておきます。\n乱暴な表現かもしれませんが分かりやすさを優先する為にアマゾンさんのサービスを既存の分かる言葉に置き換えてみます。\nElastic Computer Cloud、略してEC2と呼ばれたりしますが、これはメモリ、CPUを積んだサーバー本体です。EC2の注意点としては、ローカルのディスクは一時保持領域であってEC2を停止するとHDDの中身は消えてしまいます。\n次にElastic Block Store、略してEBSと呼ばれたりしますがこれがHDDです。こちらはEC2を停止してもデータの中身は保持されている、つまり永続化されています。\nなので、アプリケーションのデータなどはEBSの方に保存します。\n因みにじゃあEC2のローカルディスクはどういう時に使う物なのかイマイチ使いドコロが分かっていません。。。\n
  • 次に先ほど紹介したサーバー本体のEC2にはスペックによって幾つかの種類があります。\n【表を読む】\nその他にもメモリをたっぷり搭載したハイメモリエクストララージとかCPU性能を重視したハイCPUエクストラ・ラージとかがあります。\nマイクロにはディスクはなく、その他のタイプもディスクはあるけどあくまでも一時保持領域ですのでEC2を停止すると中身は消えてしまいます。\n今回はマイクロのタイプでEC2を起動しました。\n
  • 今回の構成図はこんな感じです。\nEC2マイクロをサーバー本体として、OSもアプリケーションもデータも全てEBSに入れてEC2にマウントしています。\nこれが僕が考えた最もシンプルな構成です。\nそして気になるのはお値段ですよね。\n
  • お値段の前にもう一つ、EC2の料金体型にはタイプがあります。\nデータセンターの場所は東京です。\n因みにAWSではデータセンターの場所のことをリージョンと呼びます。\nこの表は1時間あたりの金額で、 1$は80円で小数点第2位を四捨五入して計算しています。\nEC2のサービスはマイクロです。勿論EC2のサービスタイプによって金額は異なります。\nオンデマンドとは必要ななった時に必要な分だけ利用するタイプで、Linuxは1時間あたり2.2円、Windowsは2.8円。\n次にリザーブとは事前に前払金を払うことで時間あたりの料金を割り引いてもらうことです。\n前払金を多く払うことで割引率が大きくなります。\n【表を読む】\n因みにリザーブには1年と3年の契約があってこの表は1年契約の場合です。\n3年契約にすればここから更に時間あたりの割引率が大きくなります。\nなので、1年間や3年間同じEC2のタイプを使い続けるのであれば重度リザーブの3年間を契約するのが最もお得になります。\n今回は24時間365日で1年契約としました。\n\nそしてついにお値段です。\n\n\n
  • お値段はあくまでも概算ですが、\n【表を読む】\n年間で18000円くらいですね。\n金額的には最近のSqaleとか、さくらVPSの980円に比べればまあまあかなっと。\nでもここからがAWSの能力発揮です。\n
  • では妄想タイムとしましょう。\n
  • みなさん目をつぶって頭を真っ白にします。\nそして妄想してみてください。\n
  • もしも、はてブのホッテントリ入りしたり、はてブが数百も付くようなブログで自分のサイトやサービスが紹介されたら。\nきっと通常の数十、数百倍のアクセス数が自分のサイトにあるでしょう。\nうれしさと同時に、最小構成のサーバーはリクエストを捌けずに激重になるかダウンしてしまうでしょう。\n\n\n
  • そこでスケールアップです。\nAWSでは簡単にサーバーの構成を変更することができます。\n要は多くのリクエストをさばくためにサーバーのスペックを上げてしまえばいいんです。\n
  • こんな感じです。\n元のEC2マイクロを停止してタイプをラージに変更して起動するだけです。\nディスクのインストールやセットアップは一切不要です。\nダウンタイムは切り替えに必要な数分間です。\n例えばアクセス増加が3日間続いてその後に通常のアクセス数まで戻れば、またEC2マイクロに戻すことだってできます。\nじゃあこの場合のお値段を計算してみましょう。\n
  • こんな感じです。\n【表を読む】\n実際にはデータ転送量も増えるるし、EC2マイクロの稼働から3日間をマイナスしないといけないので合計額は増減すると思います。\nこれで一時的な機会損失を防げるのであれば安いものかなっと。\nそして、アクセスが通常に戻ってEC2マイクロに戻して運用すれば月額費用も1500円程度に戻る分けです。\n
  • では皆さんもう一度目をつぶって頭を真っ白にします。\nそして妄想してみてください。\n
  • もしもYahooのトップニュースに自分のサイトやサービスが紹介されたら。\nすなわち Yahoo砲を受けたら\nきっと通常の数千、数万倍のアクセス数が自分のサイトにあるでしょう。\nうれしさと同時に、最小構成のサーバーはリクエストを捌けずに激重になるかダウンしてしまうでしょう。\nもしかするとスケールアップで最強の構成にしてもリクエストを捌けないかもしれません。\n\n\n
  • そんな時はスケールアウトします。\n
  • その前に少しだけ用語解説。\n【表を読む】\nAMIはインストールCDのイメージ\n
  • スケールアウト構成はこんな感じでしょうか。\n元のEBSのHDDからAMI、ディスクイメージを取得します。\nこのディスクイメージの取得はサービスを動かしたまま行えます。\n取得したAMIからEBSを作成してEC2マイクロを複数起動します。\nインターネットとの間にロードバランサーを挟んで複数のEC2に負荷分散します。\nこれでどんなに多くのレクエストを受けても捌けるかもしれません。\n但しこの場合に注意することは、DBをEBSにインストールしているためデータが複数箇所にわかれることになります。\nなので、サービス上、データの登録修正が無いもしくは、後でデータのマージをおこう必要はある。\nそしてこの場合のお値段です。\nもちろんこの場合も、アクセス数が通常に戻ったら最小構成に戻せます。\n
  • スケールアップより安くなるのか、甚だ(はなはだ)疑問ですが。\n【表を見る】\n
  • 先ほどのスケールアウトの構成ではデータベースとWebサーバーが一緒になっているのでスケールアウトしてもデータの登録や修正があった場合に後々面倒くさいです。\nそういった場合もWebサーバーとデータベースを別サーバーに切り離す事で面倒くささから解放されます。\n
  • ここでも用語解説。\n【表を読む】\nこれはデータベースに特化したEC2といった感じですかね?\n
  • このRDSにもEC2同様に幾つかのタイプが存在します。\n【表を見る】\n
  • まずは準備段階としてWebサーバーとデータベースを切り離します。\n構成はこんな感じです。\n
  • 料金体系もEC2と同様に時間あたりの従量課金となり、オンデマンドとリザーブがあります。\n【表を見る】\n因みに先ほどの構成ではRDSのマイクロを想定しています。\nほぼEC2と同様の料金体系ですね。\n
  • お値段ですが、こんな感じです。\n最小構成にデータベース部分だけを追加する感じですね。\n毎月2700円を支払えば急激なリクエスト増加にも耐えうるスケールアウトにも対応できる準備ができます。\n
  • 急激なアクセス増加の場合には先ほどの場合のようにEC2をスケールアウトしてRDSを一本にしてデータの整合性を保つことができます。\nRDSだけマイクロからラージなどにスケールアップすることもできます。\nまた、AWSのRDSにはリードレプリカという機能があるようで、データベースを簡単にマスター・スレーブ構成にしてデータベースをスケールアウトする方法もあるみたいです。\n\n
  • その他にも色々なAWSの構成パターンがあります。\n詳しくはAmazon Cloud Design Patternを参照してください。\nAWSの数多のサービスを駆使したパターンが詳しく掲載されているので必見です。\n
  • 今回は詳しく紹介しませんでしたが、AWSにはその他にも気になる便利なサービスがあります。\n
  • 先ほどまでのEC2のスケールアップやディスクの割り当て等はアマゾンが提供するコンソールから操作することができます。\nしかし、これらの操作を自作のプログラムから行うことも可能です。\nその為のSDKがアマゾンから提供されています。\n例えばWebサーバーなどを立てずにiOSからAWSの各種サービスにアクセスすることもできますし、RubyやPHPなどのプログラムから直接EC2を増やす事だってできます。\nプログラムからエンドユーザーの操作によって一時的に自動スケールアップすることだってできますし、アマゾンの他のサービスと組み合わせることで負荷が高くなったら自動的にスケールアップやスケールアウトすることだって可能です。\nこの辺はプログラマ的にはかなり嬉しいですね。\n深夜にサーバーがダウンしたとか激重になったからっと言って呼び出されることは無いわけです。\n
  • 次は気になるのが Elastic Beanstalkです。\n例えば、いつもどおりアプリを作成してVisual StudioやEclipseやgitのデプロイメントによって自動的にデプロイが行われる環境が、サーバーのセットアップ無しで簡単に手に入ります。\n現在は.NET、PHP、Java用に準備されています。\n残念ながらRubyが無いのですが、今後に期待して待ちたいと思います。\nここにRubyが無いから、HerokuやSqaleと言ったサービスが出てきたんでしょうね。\n
  • オススメの書籍としては、Amazon Web Serivicesガイドブックですね。\nAWSの主要なサービスについて体系的に記述されています。\nAmazon SDK for PHPを使った実践コードも記載されています。\nあとで僕のアフェリエイトリンクで本のリンクを流して起きます是非ともリンクを踏んで購入してください。\n\n
  • 最後に僕が注目している他のサービスと比較してみたいと思います。\n
  • 【表を見る】\nSqaleもAWS上で動いている\nSqaleはRDSのスケールが無い?\nさくらクラウドもSDKを提供するという話はあった。\n
  • 最後に感想です。\n僕はアマゾンの関係者では無いので、AWSをひいきにするつもりはありません。\n正直、明瞭会計のさくらクラウドとかも気になるけどリリース直後のトラブルで発生したディスク障害とかディスク障害とかディスク障害とかあるので不安です。\nなんちゃらサーブみたいにデータ飛んだら真っ青なので。\n【表を見る】\nスケールの柔軟性ではAWSが今のところ最強かな。\nそして最後に一言でまとめると。\n
  • 【表を見る】\nそして、実はAWSには一年間は、制限の範囲内でで無料で使える無料枠があります。\n取り敢えず使ってみて本当にあの金額で収まりそうならそのまま続けて見ようかと思います。\n
  • ということで皆さんもAWSを使って開発を楽しんでください。\n
  • Awsをつかってみた

    1. 1. AWSをつかってみた
    2. 2. 自己紹介• Tomoyuki Tochihira• aguuu Inc. 代表取締役• @aguuu• http://www.aguuu.com• iOS, Ruby, PHP...
    3. 3. え!AWS一択でしょ! by @twingo_b
    4. 4. AWSのイメージ
    5. 5. Simple Notification Service Import/Export Route 53 Relational Database Service DynamoDB SimpleDB Elastic Load Balancing Simple Storage Service Simple Queue Service Elastic Compute Cloud Simple Email Service SimpleWorkflow Service Elastic Beanstalk CloudFront CloudWatch Elastic MapReduce Virtual Private CloudElastic Block Store CloudSearch
    6. 6. 構築例
    7. 7. 構成 Linux OS (Amazon Linux)Webサーバー Apache 2.2 Passenger 3.0Webアプリ Ruby on Rails 3.2データベース MySQL 5.5
    8. 8. 用語 Elastic Compute サーバー本体 Cloud(EC2) (HDDは一時保持領域)Elastic Block Store HDD (EBS)
    9. 9. EC2のタイプ ディスクタイプ名 仮想コア メモリ (一時領域)マイクロ 1 613MB -スモール 1 1.7GB 160GBラージ 2 7.5GB 850GBエクストラ 4 15GB 1,690GB ラージ
    10. 10. Internet Linux Apache EC2 マイクロ PassengerRuby on Rails MySQL EBS
    11. 11. 東京 1時間あたり 1$=80円 マイクロ タイプ 前払い Linux Windowsオンデマンド - 2.2円 2.8円 軽度 1,920円 1.4円 2.2円 リザーブ 中度 4,560円 0.9円 1.7円 リザーブ 重度 5,200円 0.7円 1.5円 リザーブ
    12. 12. 1ヶ月のお値段EC2 マイクロ 重度リザーブ 958.9円 (24時間365日) EBS(5GB) 48.0円 データ転送 95.9円(目安:インスタンスの5%∼10%) 合計 1,102.8円
    13. 13. 妄想タイム
    14. 14. 妄想してみて下さい
    15. 15. 人気ブログに紹介されたら
    16. 16. スケールアップで対応
    17. 17. InternetEC2 EC2マイクロ ラージ EBS
    18. 18. 1ヶ月のお値段EC2 マイクロ 重度リザーブ 958.9円 (24時間365日) EBS(5GB) 48.0円 データ転送 95.9円(目安:インスタンスの5%∼10%)EC2 ラージ オンデマンド 2,125.4円 (3日) データ転送 212.5円(目安:インスタンスの5%∼10%) 合計 3,440.7円
    19. 19. 妄想してみて下さい
    20. 20. Yahoo!に紹介されたら
    21. 21. スケールアウトで対応
    22. 22. 用語 Elastic Load トラフィックの負荷分散 Balancing(ELB)Amazon Machine Image ディスクイメージ (AMI)
    23. 23. Internet ELBEC2 EC2 EC2マイクロ マイクロ マイクロEBS EBS EBS AMI
    24. 24. 1ヶ月のお値段EC2 マイクロ 重度リザーブ 958.9円 (24時間365日) EBS(5GB) 48.0円 データ転送 95.9円(目安:インスタンスの5%∼10%)EC2 マイクロ オンデマンド 155.5円 (3日 2台) データ転送 287.7円(目安:インスタンスの5%∼10%) EBS(5GB 2本) 144円 AMI(5GB) ELB(3日+100GB) 208円 合計 1898.0円
    25. 25. データベースも含めてスケールアウトで対応
    26. 26. 用語Amazon Relational MySQLDatabase Service Oracle(Amazon RDS) SQL Server
    27. 27. RDSのタイプ タイプ名 仮想コア メモリ マイクロ 1 613MB スモール 1 1.7GB ラージ 2 7.5GBエクストララージ 4 15GB
    28. 28. Internet Linux EC2 マイクロ Apache Passenger RDSRuby on Rails EBS マイクロ
    29. 29. 東京 1時間あたり 1$=80円 マイクロ タイプ 前払い 時間あたりオンデマンド - 2.8円 軽度 1,920円 1.8円 リザーブ 中度 4,560円 1.2円 リザーブ 重度 5,200円 1.0円 リザーブ
    30. 30. 1ヶ月のお値段EC2 マイクロ 重度リザーブ 958.9円 (24時間365日) EBS(5GB) 48.0円 データ転送 95.9円 (目安:インスタンスの5%∼10%)RDB マイクロ 重度リザーブ 1,192.5円 (24時間365日) RDSストレージ(5GB) 48.0円 合計 2,343.3円
    31. 31. Internet ELBEC2 EC2 EC2マイクロ マイクロ マイクロEBS EBS EBS RDS
    32. 32. Amazon Cloud Design Patternhttp://aws.clouddesignpattern.org
    33. 33. その他にも
    34. 34. AWSの為のSDK
    35. 35. デプロイまでを簡単
    36. 36. 比較
    37. 37. さくら さくら AWS Sqale クラウド VPS最小構成 1,473円 2,500円 980円 980円 価格Root権限 ⃝ ⃝ ⃝ △スケール ⃝ ⃝ △プログラマ ⃝ △ ブル
    38. 38. 感想• とにかく安価 さくらVPS、Sqaleとか• スケールする可能性があるなら AWS、さくらクラウド
    39. 39. AWSは凄く柔軟性が 高くて何でも できちゃう レンタルサーバー だった
    40. 40. Please enjoydevelopment

    ×