SlideShare a Scribd company logo
春のJAWS-UG 三都物語2013

             開発環境としてのAWSを
               真面目に考える

                2013年3月9日
                NRIネットコム株式会社 佐々木拓郎



13年3月9日土曜日
はじめに


        ✦ 本日のアジェンダ             #jaws
                                    ug3to
             ‣ 自己紹介(5分)

             ‣ AWSで開発環境(20分)

             ‣ DevOps × AWS + デモ(20分)




13年3月9日土曜日
#jaws
                                        ug3to
                         自己紹介: 佐々木拓郎

             ✦   プロフィール

                 ‣   NRIネットコム株式会社 インターネット事業部                        @katotaku

                 ‣   Twitter: @katotaku(実名)@dkfj(匿名)/ Facebook: takuro.sasaki

                 ‣   blog: http://d.hatena.ne.jp/dkfj/ (匿名)

                 ‣   好きなAWSサービス: S3

             ★   備考

                 ‣   認定スクラム・マスター

                 ‣   何かありましたら、Facebook・Twitterの方でお気軽にご連絡ください


13年3月9日土曜日
#jaws
                                                  ug3to
                            NRIネットコム



             ✦   NRIグループで唯一関西を本社とする会社

                 ‣   Webシステムを得意としているシステム会社

                 ‣   設計開発から運用まで全て行う為、

                     アプリケーション・インフラエンジニアが一杯いる

                 ‣   Web系の仕事が多いため、ディレクター・デザイナーも一杯!!

                 ‣   大阪本社だけど、東京の方が人が多い。でも関西Love




13年3月9日土曜日
#jaws
                                     ug3to
                    NRIネットコムとAWSと私

             •   2006年 米国の会社に出向中に、Amazon S3と出会うもEC2はスルー

             •   2007年 EC2が仮想サーバということを知って使いはじめる

             •   2008年 匿名ブログでAWSのことを書き始めると、そこそこ人気に

             ✦   2009年 会社の一部システムで、EC2を利用し始める

             ✦   2010年 iPadを使った「モバイル会議」システムのインフラにAWSを採用

             ✦   2011年 既存のお客様にも、徐々に勧め始める

             ✦   2012年 AWSソリューションとして本格的に営業開始

             ✦   2013年 趣味で使っていたものが本職になる。 ← イマココ

13年3月9日土曜日
#jaws
                               ug3to
             NRIネットコムのWebサイト
                   調査結果も随時掲載中
     http://www.nri-net.com/products/cloud/aws.html




13年3月9日土曜日
#jaws
                              ug3to


                本日のテーマ

             開発環境としてのAWSを
               真面目に考える




13年3月9日土曜日
#jaws
                               ug3to
               参加者している皆様への質問



             • アプリケーション/インフラエンジニア?

             • 自社で開発用のPC/サーバの管理をしている?

             • 突然、開発機が壊れて困ったことがある?

             • プロジェクト毎に環境が増殖して管理出来ない?




13年3月9日土曜日
#jaws
                         ug3to




             先ほどの質問は、
  弊社で実際にあった問題でした。




13年3月9日土曜日
#jaws
                                    ug3to
                   開発環境の故障




              ☓
                          • 代替機なし

                          • 開発ストップ

                          • 復旧に多大な工数
                   障害発生
             開発機          • 迫る納期




13年3月9日土曜日
#jaws
                                           ug3to
                       増殖するサーバー




             プロジェクトA   プロジェクトB   プロジェクトC   プロジェクトX




             • プロジェクトごとに多様な開発機

             • 稼働していないプロジェクトの開発機も無くせない

             • 増え続ける開発機
13年3月9日土曜日
#jaws
                                                                                   ug3to
                                       貧弱なサーバー
          予算上の都合で、開発環境に潤沢な投資を出来る企業は少ない。
          一方で、貧弱な開発環境の為に、貴重なリソースである開発者の時間がムダに
          なっているケースも。




              必要なリソース                                          現実に割り当てられたリソース
   http://www.flickr.com/photos/jiteshjagadish/5178417174/   http://www.flickr.com/photos/gvtbc/188328021/




13年3月9日土曜日
#jaws
                              ug3to
                本日のテーマ

             開発環境としてのAWSを
               真面目に考える


  それって、AWSで解決出来ない?


13年3月9日土曜日
#jaws
                              ug3to
             ハードウェアトラブルからの開放

         物理サーバを仮想イメージ(AMI)として、テンプレート化
         例え使用中のAWSで障害が起きたとしても、別の場所で簡単に起動出来る




         物理サーバ     仮想化イメージ(AMI)         インスタンス




13年3月9日土曜日
#jaws
                              ug3to
               必要な時に、必要なだけ

         一度仮想化すれば、サーバーは必要な時にだけ起動
         使っていない古い環境の維持コストは、ストレージ利用料だけ
         ソースやデータなど可変部分は、S3やEBSで永続化




13年3月9日土曜日
#jaws
                             ug3to
             必要に応じて、リソース増強

         スケールアップもスケールアウトも、1クリックで実現可能
         使った分だけなので、最小限のコストで実現可能




                          Large

             Small


                         Small Small Small

13年3月9日土曜日
#jaws
                                      ug3to
                      AWSの罠

             • AWSは安くて便利

             • 気がつくと至る所で利用されだす

             • 積もり積もると、トータルではかなりの金額に




         工夫次第で、費用の大幅な削減も可能


13年3月9日土曜日
#jaws
                              ug3to
             対策 使う時だけ手動で立ち上げる

             • 必要なインスタンスを、手動で立ちあげましょう

             • 帰宅する前に、インスタンスを停止してね




                     必ず失敗します

        • 他の人が、まだ使うと思って停止しなかった

        • そもそも面倒くさい

13年3月9日土曜日
#jaws
                           ug3to
         インスタンスは自動で起動・停止する

             • 構成管理サーバから、決まった時間に起動・停止

             • 停止時間が決まっているので、調整の必要なし




平日日中だけの稼働で、コスト1/3

13年3月9日土曜日
#jaws
                              ug3to
             リザーブド・インスタンスの購入




              結構ややこしいです。
              前払金の計上の仕方等、
              経理の方と密に話し合ってください。
13年3月9日土曜日
#jaws
                             ug3to




             セキュリティは?




13年3月9日土曜日
#jaws
                                             ug3to
             VPCによるプライベート・ネットワークの構築

             VPC機能により、サブネットの一部として利用可能




13年3月9日土曜日
#jaws
                                   ug3to
                    管理部門の壁

             • それでも、導入に難色を示す管理部門も多い

             • 従量課金の恐怖

             • 前例がないものを導入することへの恐怖

             • そもそもよく解らない



                地道に話し合い、説得しましょう

13年3月9日土曜日
#jaws
                             ug3to




             具体的なチップス




13年3月9日土曜日
#jaws
                                                  ug3to
                          アカウントの管理

         新規プロジェクト開始時に3つのAWSアカウントの作成。
         開発用・検証用・本番用を分けて、同じ環境を作る。
         プロジェクトの段階ごとに、サポートを切り替える。




         開発用アカウント          検証用アカウント          本番用アカウント



              開発者               開発者               ビジネ
                    サポー               サポー               スサポ
                       ト                 ト                  ー   ト




13年3月9日土曜日
#jaws
                                          ug3to
                     IAMの利用

         マスターアカウントは、基本的に使わない。
         個人事にIAMアカウントを作成し、細かく権限設定。
         システムで使うアカウントは、それぞれで作成。




       マスターアカウントを使って良いのは、
       ハンズオンだけ!!



13年3月9日土曜日
#jaws
                                                   ug3to
         一括決済(Consolidated Billing) によるアカウント紐付け



                           支払い用アカウント




 プロジェクトA     プロジェクトA    プロジェクトA    プロジェクトB    プロジェクトB    プロジェクトB
開発用アカウント     検証用アカウント   本番用アカウント   開発用アカウント   検証用アカウント   本番用アカウント

       メリット:                       デメリット:
       ・ 請求が一括で出来る                 ・ リザーブドインスタンスの問題
       ・ ボリュームディスカウントの恩恵
       ・ 請求書決済等に切り替え易い


13年3月9日土曜日
#jaws
                                       ug3to
                         ネットワークの管理
         複数プロジェクトで共通のVPC。 or プロジェクトごとのVPC?
         VPN Gatewayの接続元IPアドレスの問題もあるので、
         利用方法に応じて選択


                                             プロジ
                                                ェクト
                                                   A



         プロジェクトA     プロジェクトB


                                             プロジ
                                                ェクト
                                                      B




               プロジェクトC
                                             プロジ
                                                ェクト
                                                      C



13年3月9日土曜日
#jaws
                  ug3to



これで、ひと通り使えます。でも、
 AWSで出来ることは、これだけ?




13年3月9日土曜日
#jaws
                              ug3to
                本日のテーマ

             開発環境としてのAWSを
               真面目に考える


    俺のAWSは、もっと出来るはず


13年3月9日土曜日
#jaws
                             ug3to




              まずは、
             米国での事例紹介




13年3月9日土曜日
#jaws
                              ug3to
             Pinterest

                   • 1,000万人以上の利用者

                   • 数百台のサーバー

                   • たった12名で開発運用




13年3月9日土曜日
#jaws
                            ug3to
             Amazon
                 • 平均11秒に1回のリリ
                  ース

                 • 最大で1時間に1,079回
                  リリース

                 • 平均で10,000台のサーバ
                  にデプロイ


13年3月9日土曜日
#jaws
                                 ug3to



             業態は違うものの、我々が知っている
             システムの開発運用と違いすぎる!!



                  何が違うのか?




13年3月9日土曜日
#jaws
                           ug3to




             答えの一つは
              自動化




13年3月9日土曜日
#jaws
                                ug3to
                継続的デリバリー




             いつまで手動でデプロイしているのですか?
13年3月9日土曜日
#jaws
                                                                                     ug3to
              アジャイルのレフトウィングとライトウィング




                                                                                             ヒント?
    ※株式会社チャンジビジョン 平鍋さんの許可を得ての使用。
    http://blogs.itmedia.co.jp/.shared/image.html?/photos/uncategorized/2012/09/09/whereisyouragile.png
13年3月9日土曜日
#jaws
                              ug3to
              継続的デリバリーの5つの原則


             • リリースは、繰り返し可能で信頼性が高い仕組み

             • 全ての工程で自動化されている

             • 全てをバージョン管理システムで管理されている

             • 工程内に品質をつくり込む仕組みを内包している

             • 継続的に改善する



13年3月9日土曜日
#jaws
                                   ug3to

             全ての工程における、自動化がキーワード


             この仕組を作りあげるには、
             アプリチームだけでは無理!
             基盤チームだけでも無理!
             もちろん品質管理部門でも無理!


                   両者の協調が必要


13年3月9日土曜日
#jaws
                                ug3to
             DevOpsとは?

    DevOpsとは、開発部門、運用部門、品質管理部門のあいだの、統
    合、コミュニケーション、コラボレーションを行うための一連のメ
    ソッドとシステムである。これはまた、適切なソフトウェアとサー
    ビスによってビジネスゴールを実現するためのミーティングにおい
    て、開発と運用の相互依存として理解されつつある。




13年3月9日土曜日
#jaws
                                                                                   ug3to
                                        DevOps




             http://www.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-cooperation-at-flickr


                       もちろん、デザイナー・営業など
                       関係する全ての人々への愛が大切
13年3月9日土曜日
#jaws
                                ug3to
                DevOpsに大切なこと




             • お互いの尊敬と信頼(企業文化)

             • ツールとプロセス(ノウハウ)




13年3月9日土曜日
#jaws
                            ug3to




             それぞれの役割




13年3月9日土曜日
#jaws
                                ug3to
                  アプリ開発者の責務

             • バージョン管理は当たり前

              ⇒出来ればGit等の分散型で

             • ユニットテストは、もはや必須

              ⇒最低でも分岐網羅(C1)まで

             • 1ビルドで、どこの環境でも動くアーキテクチャ

              ⇒環境(開発、検証、本番)の依存性を外出し


13年3月9日土曜日
#jaws
                                   ug3to
                   基盤開発者の責務

             • 構成管理・バージョン管理でサーバ管理

              ⇒構成情報をバージョン管理

             • 運用に関わる全て作業の手作業廃止

              ⇒構築・リリース・メトリックス収集

             • 環境の再現性の確保

              ⇒いつでも、同じ環境を再現出来るようにする


13年3月9日土曜日
#jaws
                              ug3to
                 両者の責務




             システムを継続的にカイゼンする




13年3月9日土曜日
#jaws
                      ug3to

 AWSにピッタリじゃないですか?


     再現性のある環境
     自動化の為のAPI




13年3月9日土曜日
#jaws
                            ug3to




             構成&フロー例




13年3月9日土曜日
#jaws
                  ug3to




13年3月9日土曜日
#jaws
                       ug3to




             デモ




13年3月9日土曜日
#jaws
                                                           ug3to


                                         デプロイ
                 SNS通知

             SQS登録        Jenkins
                             &                          App Server
                         Selenium

                                テスト指示             テスト

             SQSポーリング
                                    Windows Server
                                    Selenium Client




13年3月9日土曜日
#jaws
                                ug3to


                 本日のテーマ

             開発環境としてのAWSを
                     た
               真面目に考える

              ありがとうございました。
              後日の質問は、@dkfjまで

13年3月9日土曜日

More Related Content

PDF
早稲田大学授業 - モバイルプログラミング
PDF
BuddyPressの導入からカスタマイズまでの日記4
PDF
初心者向けWebinar AWSで開発環境を構築しよう
PDF
AWS Black Belt Online Seminar 2017 Amazon EC2
PDF
AWS Black Belt Online Seminar 2017 初心者向け クラウドコンピューティング はじめの一歩
PDF
誰でもわかる!AWSを使って超簡単・短時間でスリーランドスケープ(本番・ステージング・開発)環境を作っちゃおう!
PDF
20110709 第1回jaz女子会 jaz紹介
PDF
クラウドジャパン春 ナレコムクラウド資料
早稲田大学授業 - モバイルプログラミング
BuddyPressの導入からカスタマイズまでの日記4
初心者向けWebinar AWSで開発環境を構築しよう
AWS Black Belt Online Seminar 2017 Amazon EC2
AWS Black Belt Online Seminar 2017 初心者向け クラウドコンピューティング はじめの一歩
誰でもわかる!AWSを使って超簡単・短時間でスリーランドスケープ(本番・ステージング・開発)環境を作っちゃおう!
20110709 第1回jaz女子会 jaz紹介
クラウドジャパン春 ナレコムクラウド資料

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

PDF
Androidアプリ屋だけどWebフロントエンド開発にアサインされた件について
PDF
JAWS-UG 仙台 2013 Spring 発表資料 「クラウド時代の考え方 - アマゾンクラウドのご紹介 -」
PDF
AWS Game Day2013に参戦してきた〜改めて気づいたAWSの良さを最大限活かすためのDevOps
PPTX
JAWS-UG三都物語_企業でのAWS導入のエントリーポイント
PDF
サラリーマン
PDF
JAWS-UG 三都物語 2013 New world of IT – クラウド時代を生き抜くための考え方
PDF
【15-B-1】AmazonのDevOpsを支えるAWSクラウド
PPTX
Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語
PDF
JAWS-UG 青森 第0回勉強会 発表資料
PDF
2013年08月 夏サミ2013-A5「DevOpsってどうなのよ?」
PDF
ワンクリックデプロイ 〜いつまで手でデプロイしてるんですか〜 #devsumiA
PPTX
Azure Machine Learningを触ってみた!
PDF
スマフォ時代に乗り遅れない為のレスポンシブ・ウェブデザイン
PPTX
次世代エンタープライズの開発環境をライブで読み解く
PPTX
Global Azure Bootcamp 2019@Tokyo資料【ExpressRoute構築でハメられた】
PDF
SnapDish 画像配信について
PDF
小規模SI案件で、 AWS + Chefを使ってみて
PDF
Jaws niigata#8
PDF
スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)
PDF
Kddi mugen lab
Androidアプリ屋だけどWebフロントエンド開発にアサインされた件について
JAWS-UG 仙台 2013 Spring 発表資料 「クラウド時代の考え方 - アマゾンクラウドのご紹介 -」
AWS Game Day2013に参戦してきた〜改めて気づいたAWSの良さを最大限活かすためのDevOps
JAWS-UG三都物語_企業でのAWS導入のエントリーポイント
サラリーマン
JAWS-UG 三都物語 2013 New world of IT – クラウド時代を生き抜くための考え方
【15-B-1】AmazonのDevOpsを支えるAWSクラウド
Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語
JAWS-UG 青森 第0回勉強会 発表資料
2013年08月 夏サミ2013-A5「DevOpsってどうなのよ?」
ワンクリックデプロイ 〜いつまで手でデプロイしてるんですか〜 #devsumiA
Azure Machine Learningを触ってみた!
スマフォ時代に乗り遅れない為のレスポンシブ・ウェブデザイン
次世代エンタープライズの開発環境をライブで読み解く
Global Azure Bootcamp 2019@Tokyo資料【ExpressRoute構築でハメられた】
SnapDish 画像配信について
小規模SI案件で、 AWS + Chefを使ってみて
Jaws niigata#8
スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)
Kddi mugen lab
Ad

More from Takuro Sasaki (20)

PDF
JAWSUG初心者支部 AWSの勉強の仕方
PDF
Crawler for Non engineer
PDF
JAWSUG architecture-crowler
PDF
Innovation eggcloudnative
PDF
Lambda認証認可パターン
PDF
Swaggerで始めるモデルファーストなAPI開発
PDF
Jawsug chiba API Gateway
PDF
DevLove Kansai AWS
PDF
Rubyで操るAWS 第67回Ruby関西 勉強会
PDF
JAWS-UG初心者支部 AWS書籍活用術
PDF
JAWSUG Kansai Simple Workflow Service (SWF)
PDF
JAWSUG Osaka S3 CloudSearch
PDF
AWS Lambdaで作るクローラー/スクレイピング
PDF
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
PDF
サイト/ブログから本文抽出する方法
PDF
Rubyで作るクローラー Ruby crawler
PDF
JAWS-UG三都物語2014 初心者向け Elasticity ELB/AutoScaling/EIP
PDF
Rubyで始めるWebスクレイピング
PDF
Jawsug osaka10 service&regions
PDF
第9回Jawsug大阪 ServiceProviders 現場で使えるAWS付随サービス!!
JAWSUG初心者支部 AWSの勉強の仕方
Crawler for Non engineer
JAWSUG architecture-crowler
Innovation eggcloudnative
Lambda認証認可パターン
Swaggerで始めるモデルファーストなAPI開発
Jawsug chiba API Gateway
DevLove Kansai AWS
Rubyで操るAWS 第67回Ruby関西 勉強会
JAWS-UG初心者支部 AWS書籍活用術
JAWSUG Kansai Simple Workflow Service (SWF)
JAWSUG Osaka S3 CloudSearch
AWS Lambdaで作るクローラー/スクレイピング
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
サイト/ブログから本文抽出する方法
Rubyで作るクローラー Ruby crawler
JAWS-UG三都物語2014 初心者向け Elasticity ELB/AutoScaling/EIP
Rubyで始めるWebスクレイピング
Jawsug osaka10 service&regions
第9回Jawsug大阪 ServiceProviders 現場で使えるAWS付随サービス!!
Ad

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

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