Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
春のJAWS-UG 三都物語2013             開発環境としてのAWSを               真面目に考える                2013年3月9日                NRIネットコム株式会社 佐々木...
はじめに        ✦ 本日のアジェンダ             #jaws                                    ug3to             ‣ 自己紹介(5分)             ‣ AWS...
#jaws                                        ug3to                         自己紹介: 佐々木拓郎             ✦   プロフィール             ...
#jaws                                                  ug3to                            NRIネットコム             ✦   NRIグループで唯...
#jaws                                     ug3to                    NRIネットコムとAWSと私             •   2006年 米国の会社に出向中に、Amazon ...
#jaws                               ug3to             NRIネットコムのWebサイト                   調査結果も随時掲載中     http://www.nri-net....
#jaws                              ug3to                本日のテーマ             開発環境としてのAWSを               真面目に考える13年3月9日土曜日
#jaws                               ug3to               参加者している皆様への質問             • アプリケーション/インフラエンジニア?             • 自社で開...
#jaws                         ug3to             先ほどの質問は、  弊社で実際にあった問題でした。13年3月9日土曜日
#jaws                                    ug3to                   開発環境の故障              ☓                          • 代替機なし  ...
#jaws                                           ug3to                       増殖するサーバー             プロジェクトA   プロジェクトB   プロジェク...
#jaws                                                                                   ug3to                             ...
#jaws                              ug3to                本日のテーマ             開発環境としてのAWSを               真面目に考える  それって、AWSで解決...
#jaws                              ug3to             ハードウェアトラブルからの開放         物理サーバを仮想イメージ(AMI)として、テンプレート化         例え使用中のAW...
#jaws                              ug3to               必要な時に、必要なだけ         一度仮想化すれば、サーバーは必要な時にだけ起動         使っていない古い環境の維持コス...
#jaws                             ug3to             必要に応じて、リソース増強         スケールアップもスケールアウトも、1クリックで実現可能         使った分だけなので、最小...
#jaws                                      ug3to                      AWSの罠             • AWSは安くて便利             • 気がつくと至る所...
#jaws                              ug3to             対策 使う時だけ手動で立ち上げる             • 必要なインスタンスを、手動で立ちあげましょう             • 帰...
#jaws                           ug3to         インスタンスは自動で起動・停止する             • 構成管理サーバから、決まった時間に起動・停止             • 停止時間が決ま...
#jaws                              ug3to             リザーブド・インスタンスの購入              結構ややこしいです。              前払金の計上の仕方等、     ...
#jaws                             ug3to             セキュリティは?13年3月9日土曜日
#jaws                                             ug3to             VPCによるプライベート・ネットワークの構築             VPC機能により、サブネットの一部とし...
#jaws                                   ug3to                    管理部門の壁             • それでも、導入に難色を示す管理部門も多い             • 従...
#jaws                             ug3to             具体的なチップス13年3月9日土曜日
#jaws                                                  ug3to                          アカウントの管理         新規プロジェクト開始時に3つのAWSア...
#jaws                                          ug3to                     IAMの利用         マスターアカウントは、基本的に使わない。         個人事にI...
#jaws                                                   ug3to         一括決済(Consolidated Billing) によるアカウント紐付け              ...
#jaws                                       ug3to                         ネットワークの管理         複数プロジェクトで共通のVPC。 or プロジェクトごとのV...
#jaws                  ug3toこれで、ひと通り使えます。でも、 AWSで出来ることは、これだけ?13年3月9日土曜日
#jaws                              ug3to                本日のテーマ             開発環境としてのAWSを               真面目に考える    俺のAWSは、もっ...
#jaws                             ug3to              まずは、             米国での事例紹介13年3月9日土曜日
#jaws                              ug3to             Pinterest                   • 1,000万人以上の利用者                   • 数百台のサ...
#jaws                            ug3to             Amazon                 • 平均11秒に1回のリリ                  ース               ...
#jaws                                 ug3to             業態は違うものの、我々が知っている             システムの開発運用と違いすぎる!!                  何...
#jaws                           ug3to             答えの一つは              自動化13年3月9日土曜日
#jaws                                ug3to                継続的デリバリー             いつまで手動でデプロイしているのですか?13年3月9日土曜日
#jaws                                                                                     ug3to              アジャイルのレフトウィング...
#jaws                              ug3to              継続的デリバリーの5つの原則             • リリースは、繰り返し可能で信頼性が高い仕組み             • 全て...
#jaws                                   ug3to             全ての工程における、自動化がキーワード             この仕組を作りあげるには、             アプリチーム...
#jaws                                ug3to             DevOpsとは?    DevOpsとは、開発部門、運用部門、品質管理部門のあいだの、統    合、コミュニケーション、コラボレーシ...
#jaws                                                                                   ug3to                             ...
#jaws                                ug3to                DevOpsに大切なこと             • お互いの尊敬と信頼(企業文化)             • ツールとプロセ...
#jaws                            ug3to             それぞれの役割13年3月9日土曜日
#jaws                                ug3to                  アプリ開発者の責務             • バージョン管理は当たり前              ⇒出来ればGit等の分散...
#jaws                                   ug3to                   基盤開発者の責務             • 構成管理・バージョン管理でサーバ管理              ⇒構成...
#jaws                              ug3to                 両者の責務             システムを継続的にカイゼンする13年3月9日土曜日
#jaws                      ug3to AWSにピッタリじゃないですか?     再現性のある環境     自動化の為のAPI13年3月9日土曜日
#jaws                            ug3to             構成&フロー例13年3月9日土曜日
#jaws                  ug3to13年3月9日土曜日
#jaws                       ug3to             デモ13年3月9日土曜日
#jaws                                                           ug3to                                         デプロイ        ...
#jaws                                ug3to                 本日のテーマ             開発環境としてのAWSを                     た          ...
Upcoming SlideShare
Loading in …5
×

開発環境としてのAwsを真面目に考える jawsug2013三都物語公開用

9,891 views

Published on

Published in: Technology
  • Be the first to comment

開発環境としてのAwsを真面目に考える jawsug2013三都物語公開用

  1. 1. 春のJAWS-UG 三都物語2013 開発環境としてのAWSを 真面目に考える 2013年3月9日 NRIネットコム株式会社 佐々木拓郎13年3月9日土曜日
  2. 2. はじめに ✦ 本日のアジェンダ #jaws ug3to ‣ 自己紹介(5分) ‣ AWSで開発環境(20分) ‣ DevOps × AWS + デモ(20分)13年3月9日土曜日
  3. 3. #jaws ug3to 自己紹介: 佐々木拓郎 ✦ プロフィール ‣ NRIネットコム株式会社 インターネット事業部 @katotaku ‣ Twitter: @katotaku(実名)@dkfj(匿名)/ Facebook: takuro.sasaki ‣ blog: http://d.hatena.ne.jp/dkfj/ (匿名) ‣ 好きなAWSサービス: S3 ★ 備考 ‣ 認定スクラム・マスター ‣ 何かありましたら、Facebook・Twitterの方でお気軽にご連絡ください13年3月9日土曜日
  4. 4. #jaws ug3to NRIネットコム ✦ NRIグループで唯一関西を本社とする会社 ‣ Webシステムを得意としているシステム会社 ‣ 設計開発から運用まで全て行う為、 アプリケーション・インフラエンジニアが一杯いる ‣ Web系の仕事が多いため、ディレクター・デザイナーも一杯!! ‣ 大阪本社だけど、東京の方が人が多い。でも関西Love13年3月9日土曜日
  5. 5. #jaws ug3to NRIネットコムとAWSと私 • 2006年 米国の会社に出向中に、Amazon S3と出会うもEC2はスルー • 2007年 EC2が仮想サーバということを知って使いはじめる • 2008年 匿名ブログでAWSのことを書き始めると、そこそこ人気に ✦ 2009年 会社の一部システムで、EC2を利用し始める ✦ 2010年 iPadを使った「モバイル会議」システムのインフラにAWSを採用 ✦ 2011年 既存のお客様にも、徐々に勧め始める ✦ 2012年 AWSソリューションとして本格的に営業開始 ✦ 2013年 趣味で使っていたものが本職になる。 ← イマココ13年3月9日土曜日
  6. 6. #jaws ug3to NRIネットコムのWebサイト 調査結果も随時掲載中 http://www.nri-net.com/products/cloud/aws.html13年3月9日土曜日
  7. 7. #jaws ug3to 本日のテーマ 開発環境としてのAWSを 真面目に考える13年3月9日土曜日
  8. 8. #jaws ug3to 参加者している皆様への質問 • アプリケーション/インフラエンジニア? • 自社で開発用のPC/サーバの管理をしている? • 突然、開発機が壊れて困ったことがある? • プロジェクト毎に環境が増殖して管理出来ない?13年3月9日土曜日
  9. 9. #jaws ug3to 先ほどの質問は、 弊社で実際にあった問題でした。13年3月9日土曜日
  10. 10. #jaws ug3to 開発環境の故障 ☓ • 代替機なし • 開発ストップ • 復旧に多大な工数 障害発生 開発機 • 迫る納期13年3月9日土曜日
  11. 11. #jaws ug3to 増殖するサーバー プロジェクトA プロジェクトB プロジェクトC プロジェクトX • プロジェクトごとに多様な開発機 • 稼働していないプロジェクトの開発機も無くせない • 増え続ける開発機13年3月9日土曜日
  12. 12. #jaws ug3to 貧弱なサーバー 予算上の都合で、開発環境に潤沢な投資を出来る企業は少ない。 一方で、貧弱な開発環境の為に、貴重なリソースである開発者の時間がムダに なっているケースも。 必要なリソース 現実に割り当てられたリソース http://www.flickr.com/photos/jiteshjagadish/5178417174/ http://www.flickr.com/photos/gvtbc/188328021/13年3月9日土曜日
  13. 13. #jaws ug3to 本日のテーマ 開発環境としてのAWSを 真面目に考える それって、AWSで解決出来ない?13年3月9日土曜日
  14. 14. #jaws ug3to ハードウェアトラブルからの開放 物理サーバを仮想イメージ(AMI)として、テンプレート化 例え使用中のAWSで障害が起きたとしても、別の場所で簡単に起動出来る 物理サーバ 仮想化イメージ(AMI) インスタンス13年3月9日土曜日
  15. 15. #jaws ug3to 必要な時に、必要なだけ 一度仮想化すれば、サーバーは必要な時にだけ起動 使っていない古い環境の維持コストは、ストレージ利用料だけ ソースやデータなど可変部分は、S3やEBSで永続化13年3月9日土曜日
  16. 16. #jaws ug3to 必要に応じて、リソース増強 スケールアップもスケールアウトも、1クリックで実現可能 使った分だけなので、最小限のコストで実現可能 Large Small Small Small Small13年3月9日土曜日
  17. 17. #jaws ug3to AWSの罠 • AWSは安くて便利 • 気がつくと至る所で利用されだす • 積もり積もると、トータルではかなりの金額に 工夫次第で、費用の大幅な削減も可能13年3月9日土曜日
  18. 18. #jaws ug3to 対策 使う時だけ手動で立ち上げる • 必要なインスタンスを、手動で立ちあげましょう • 帰宅する前に、インスタンスを停止してね 必ず失敗します • 他の人が、まだ使うと思って停止しなかった • そもそも面倒くさい13年3月9日土曜日
  19. 19. #jaws ug3to インスタンスは自動で起動・停止する • 構成管理サーバから、決まった時間に起動・停止 • 停止時間が決まっているので、調整の必要なし平日日中だけの稼働で、コスト1/313年3月9日土曜日
  20. 20. #jaws ug3to リザーブド・インスタンスの購入 結構ややこしいです。 前払金の計上の仕方等、 経理の方と密に話し合ってください。13年3月9日土曜日
  21. 21. #jaws ug3to セキュリティは?13年3月9日土曜日
  22. 22. #jaws ug3to VPCによるプライベート・ネットワークの構築 VPC機能により、サブネットの一部として利用可能13年3月9日土曜日
  23. 23. #jaws ug3to 管理部門の壁 • それでも、導入に難色を示す管理部門も多い • 従量課金の恐怖 • 前例がないものを導入することへの恐怖 • そもそもよく解らない 地道に話し合い、説得しましょう13年3月9日土曜日
  24. 24. #jaws ug3to 具体的なチップス13年3月9日土曜日
  25. 25. #jaws ug3to アカウントの管理 新規プロジェクト開始時に3つのAWSアカウントの作成。 開発用・検証用・本番用を分けて、同じ環境を作る。 プロジェクトの段階ごとに、サポートを切り替える。 開発用アカウント 検証用アカウント 本番用アカウント 開発者 開発者 ビジネ サポー サポー スサポ ト ト ー ト13年3月9日土曜日
  26. 26. #jaws ug3to IAMの利用 マスターアカウントは、基本的に使わない。 個人事にIAMアカウントを作成し、細かく権限設定。 システムで使うアカウントは、それぞれで作成。 マスターアカウントを使って良いのは、 ハンズオンだけ!!13年3月9日土曜日
  27. 27. #jaws ug3to 一括決済(Consolidated Billing) によるアカウント紐付け 支払い用アカウント プロジェクトA プロジェクトA プロジェクトA プロジェクトB プロジェクトB プロジェクトB開発用アカウント 検証用アカウント 本番用アカウント 開発用アカウント 検証用アカウント 本番用アカウント メリット: デメリット: ・ 請求が一括で出来る ・ リザーブドインスタンスの問題 ・ ボリュームディスカウントの恩恵 ・ 請求書決済等に切り替え易い13年3月9日土曜日
  28. 28. #jaws ug3to ネットワークの管理 複数プロジェクトで共通のVPC。 or プロジェクトごとのVPC? VPN Gatewayの接続元IPアドレスの問題もあるので、 利用方法に応じて選択 プロジ ェクト A プロジェクトA プロジェクトB プロジ ェクト B プロジェクトC プロジ ェクト C13年3月9日土曜日
  29. 29. #jaws ug3toこれで、ひと通り使えます。でも、 AWSで出来ることは、これだけ?13年3月9日土曜日
  30. 30. #jaws ug3to 本日のテーマ 開発環境としてのAWSを 真面目に考える 俺のAWSは、もっと出来るはず13年3月9日土曜日
  31. 31. #jaws ug3to まずは、 米国での事例紹介13年3月9日土曜日
  32. 32. #jaws ug3to Pinterest • 1,000万人以上の利用者 • 数百台のサーバー • たった12名で開発運用13年3月9日土曜日
  33. 33. #jaws ug3to Amazon • 平均11秒に1回のリリ ース • 最大で1時間に1,079回 リリース • 平均で10,000台のサーバ にデプロイ13年3月9日土曜日
  34. 34. #jaws ug3to 業態は違うものの、我々が知っている システムの開発運用と違いすぎる!! 何が違うのか?13年3月9日土曜日
  35. 35. #jaws ug3to 答えの一つは 自動化13年3月9日土曜日
  36. 36. #jaws ug3to 継続的デリバリー いつまで手動でデプロイしているのですか?13年3月9日土曜日
  37. 37. #jaws ug3to アジャイルのレフトウィングとライトウィング ヒント? ※株式会社チャンジビジョン 平鍋さんの許可を得ての使用。 http://blogs.itmedia.co.jp/.shared/image.html?/photos/uncategorized/2012/09/09/whereisyouragile.png13年3月9日土曜日
  38. 38. #jaws ug3to 継続的デリバリーの5つの原則 • リリースは、繰り返し可能で信頼性が高い仕組み • 全ての工程で自動化されている • 全てをバージョン管理システムで管理されている • 工程内に品質をつくり込む仕組みを内包している • 継続的に改善する13年3月9日土曜日
  39. 39. #jaws ug3to 全ての工程における、自動化がキーワード この仕組を作りあげるには、 アプリチームだけでは無理! 基盤チームだけでも無理! もちろん品質管理部門でも無理! 両者の協調が必要13年3月9日土曜日
  40. 40. #jaws ug3to DevOpsとは? DevOpsとは、開発部門、運用部門、品質管理部門のあいだの、統 合、コミュニケーション、コラボレーションを行うための一連のメ ソッドとシステムである。これはまた、適切なソフトウェアとサー ビスによってビジネスゴールを実現するためのミーティングにおい て、開発と運用の相互依存として理解されつつある。13年3月9日土曜日
  41. 41. #jaws ug3to DevOps http://www.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-cooperation-at-flickr もちろん、デザイナー・営業など 関係する全ての人々への愛が大切13年3月9日土曜日
  42. 42. #jaws ug3to DevOpsに大切なこと • お互いの尊敬と信頼(企業文化) • ツールとプロセス(ノウハウ)13年3月9日土曜日
  43. 43. #jaws ug3to それぞれの役割13年3月9日土曜日
  44. 44. #jaws ug3to アプリ開発者の責務 • バージョン管理は当たり前 ⇒出来ればGit等の分散型で • ユニットテストは、もはや必須 ⇒最低でも分岐網羅(C1)まで • 1ビルドで、どこの環境でも動くアーキテクチャ ⇒環境(開発、検証、本番)の依存性を外出し13年3月9日土曜日
  45. 45. #jaws ug3to 基盤開発者の責務 • 構成管理・バージョン管理でサーバ管理 ⇒構成情報をバージョン管理 • 運用に関わる全て作業の手作業廃止 ⇒構築・リリース・メトリックス収集 • 環境の再現性の確保 ⇒いつでも、同じ環境を再現出来るようにする13年3月9日土曜日
  46. 46. #jaws ug3to 両者の責務 システムを継続的にカイゼンする13年3月9日土曜日
  47. 47. #jaws ug3to AWSにピッタリじゃないですか? 再現性のある環境 自動化の為のAPI13年3月9日土曜日
  48. 48. #jaws ug3to 構成&フロー例13年3月9日土曜日
  49. 49. #jaws ug3to13年3月9日土曜日
  50. 50. #jaws ug3to デモ13年3月9日土曜日
  51. 51. #jaws ug3to デプロイ SNS通知 SQS登録 Jenkins & App Server Selenium テスト指示 テスト SQSポーリング Windows Server Selenium Client13年3月9日土曜日
  52. 52. #jaws ug3to 本日のテーマ 開発環境としてのAWSを た 真面目に考える ありがとうございました。 後日の質問は、@dkfjまで13年3月9日土曜日

×