SlideShare a Scribd company logo
1 of 25
Download to read offline
第3回 Backlog
    Backlog
    Backlogチャンネル

テスト環境まるごとAWSにのっけてみた


株式会社シャノン
インフラストラクチャエンジニア 藤倉 和明



2011/07/21
自己紹介


藤倉和明について
シャノンのインフラを守るお仕事
 サーバ/ネットワークざっくりだいたい全部見てる
 Twitter: @fujya
 Facebook:http://ja-jp.facebook.com/people/Kazuaki-Fujikura/100001844796436




好きなAWSサービス
 EBS(snapshotカワイイよsnapshot♪)

                                                                              2
技術部ブログの宣伝

            http://shanon-tech.blogspot.com/
            私はfujya.shで書いてます

                                     最
                                       低
                                          週
                                               1で
                                                 更
                                                  新
                                                   され
                                                     て
                                                      い
                                                       ま
                                                        す




ブクマよろしくです
                                                      3
テスト環境をAWSに乗っけた経緯


QA
QAチームがなにやら困ってるらしい



 自動テスト全部終わるのが24時間以上かかる
    いま社内に1台しかテストサーバが無い
  サーバ増やしたいけどオフィスに電力がない

          とりあえずAWS触ってみたいからチャンス!!


 「AWSにテスト環境作るから予算プリーズ!僕にあそb・・・いや、やらせてください!」


                                        4
どうやってテストしているのか



  「Hudson(今Jenkins)活用事例セミナー」で弊社西野が
  発表した内容見ていただけると詳細が分かります

   https://docs.google.com/present/view?id=0AbDvtUF_P-4uZDl0cGo4aF8zMWdmNXhnZ3M2&hl=en


   今日はAWSの上にテスト環境が
   乗っているよっていう紹介です




「Hudson
 Hudson
 Hudson活用事例セミナー 西野」で検索すれば出てきます

                                                                                   5
テスト環境全体像
テストの流れ(全体図)




              7
Jenkinsでテストの流れを管理

複数のジョブを連鎖させ、インスタンス起動・テスト実行・インスタンス停止など実施
テスト対象の量が増えたらジョブも合わせて増えていく
一定量のジョブが増えたらインスタンスを追加(コピー)する

(予算があれば)何百時間分のジョブも数時間で完了できる設計




   ジョブの                      ジョブの
   塊1                        塊2
                              2




                                     8
自動テスト用インスタンスはOpenVZで再仮想されている


all in one instance

OS
- CentOS 5.x


network
- bridge interface + iptables


virtual server
- Loadbalancer
- Application
- Database
- cache                         このネタは技術ブログにも書いてあ
                                るので是非ブクマをw
                                               9
Why OpenVZ ?



元々OpenVZでサーバのイメージ管理していた
より安価にするため複数台立てるより1台に集約
AP/DBの負荷ポイントが異なるので同居は◯
  AP:CPU
  DB:DiskIO
  キャッシュサーバ:メモリ

仮想サーバ単位でのリソース管理ができるので、
管理側面的に負荷のコントロールしやすくなる
                      10
起動時にインスタンス自身で初期設定



ElasticIPの取得
S3FSでS3のマウント
NFSマウント
  アプリケーションソースはNFSサーバ上に配置

メール経路変更
  送信メールサーバは固定で1台(規制緩和申請済みサーバ)

  経路は25番ポートではなく587番ポートを利用

                            11
APIで起動・停止 ソースは自動更新 テストも自動


インスタンスの起動・停止はAPI経由で実行
  Jenkinsが実行出来るスクリプトを作成


アプリケーション起動前にソースの自動更新
  自動更新の仕組みはQAエンジニアがプラットフォームを構築
         みはQA




テストケースも自動で実行される
  汗と涙と何かが凝縮されたSeleniumによる自動テスト
           されたSelenium



                                 12
テストが一貫して自動化されたので人間様のお仕事は

  S社 QA
     QAリーダー I
            I氏


                   テストやれよ!




                 はひぃぃぃぃ!!




                             13
だけではなく・・・自動テストプラットフォームのメンテナンスが必要


メンテナンス対象
 Jenkins
 インスタンスイメージ
 自動更新の仕組み
 Seleniumのテストケース

     QAの仕事は「テストを実施する」から
「テストプラットフォームを創る」によりシフトした
 QAチームのレバレッジがきくようになった!
                              14
運用上の涙ぐましい努力
ごめんなさい!ごめんなさい!ごめんなさい!


社内で申請した予算は低めに見積もっていた
 AWSを本格的に使うようになったら・・・




・経理の人に使い過ぎ!って怒られた
・社長が接待でカード切れなかったwwww
                        16
節電に貢献してます → 節約
          →


使うときだけ電気を付ける
電気の消し忘れ対策として、アクセスが一定時間
無かったら自動でシャットダウン




これぞエコシステム(違
                 停止の際にこんなメールを通知
                 6月は200通ぐらいのシャットダウン通知
                                  17
製造原価出したい

 案件で使いたいけど内訳わかんないよね
                                  google spreadsheets

 Instanceの起動時間を計測するツールを作成
 Instanceの起動時間を計測するツールを作成




                                      ②:spreadsheets
                                       :spreadsheets
                                       :spreadsheetsの一覧を取得
①:boto
  boto     Instance
  botoで稼働中のInstance
           Instanceの                  ①で取得した情報とぶつけて、起
情報一覧を取得                               動時間ををインクリメントしていく

                                      インスタンスに案件毎のタグを追
                       boto +
                                      加して集計
                       gdata
                                cron
                                cronで毎分実行
                                                        18
月初に経理に提出




                    為替は経理が後でシートを編集して調整

 製造原価と製品開発費の金額が出る




                    EBS/トラフィックは従量割で後で加算
                    EBS/トラフィックは従量割で後で加算
                    この辺りもそのうち集計できるようにしたい
インフラ担当目線での
   AWS使って良かった事・悪かった事
良かった事



当初の目的である自動テストの時間が短くなった

 始める前:20時間 → 現在:6時間
 スイートを分割すればもう少し早くなるかも



APIが充実しているのでどんな要件にもマッチ

プラットフォームとしての方向性が参考になった

会社のお金でAWS遊べて楽しかったw
                        21
悪かったこと



使ってみると結構お金が掛かる(怒られたw)

原因不明の突然死の調査が困難

Tokyo RegioにVPCが無い (早くこないかな)

QAからAWS関連でインフラへの要望も増えた


                          22
今後の展望
今後狙ってる所




社内・本番インフラの乗せ変え

オフショア(予定有?)時に開発・QA環境構築

AWS上のインフラでToBアプリの成功事例を作る


AWSを乗りこなしてレバレッジがきく
プラットフォームを構築する!!
                     24
ご清聴ありがとうございました!




       AWS上でテストされた高品質な
       AWS上でテストされた高品質な
 マーケティングプラットフォームもよろしくおねがいします!
                            25

More Related Content

What's hot

Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
torutk
 
継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング
Takayuki Kondou
 

What's hot (20)

Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
 
元気玉的 分散テスト 実行システム TestStreamer
元気玉的 分散テスト 実行システム TestStreamer元気玉的 分散テスト 実行システム TestStreamer
元気玉的 分散テスト 実行システム TestStreamer
 
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
 
jjugccc2018 app review postmortem
jjugccc2018 app review postmortemjjugccc2018 app review postmortem
jjugccc2018 app review postmortem
 
jenkinsで遊ぶ
jenkinsで遊ぶjenkinsで遊ぶ
jenkinsで遊ぶ
 
Jenkins 2.0 (日本語)
Jenkins 2.0 (日本語)Jenkins 2.0 (日本語)
Jenkins 2.0 (日本語)
 
テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術
 
DevOpsを実現するChef活用テクニック
DevOpsを実現するChef活用テクニックDevOpsを実現するChef活用テクニック
DevOpsを実現するChef活用テクニック
 
継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング
 
第六回Jenkins勉強会
第六回Jenkins勉強会第六回Jenkins勉強会
第六回Jenkins勉強会
 
テスティングフレームワークに入門してみた - Swift編
テスティングフレームワークに入門してみた - Swift編テスティングフレームワークに入門してみた - Swift編
テスティングフレームワークに入門してみた - Swift編
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
 
初めての単体テスト
初めての単体テスト初めての単体テスト
初めての単体テスト
 
マニアックツール紹介、マネジメントのKnife-Zero(Chef)とテストスイートInSpec
マニアックツール紹介、マネジメントのKnife-Zero(Chef)とテストスイートInSpecマニアックツール紹介、マネジメントのKnife-Zero(Chef)とテストスイートInSpec
マニアックツール紹介、マネジメントのKnife-Zero(Chef)とテストスイートInSpec
 
phpspecで始めるBDD
phpspecで始めるBDDphpspecで始めるBDD
phpspecで始めるBDD
 
OpenJDK コミュニティに参加してみよう #jjug
OpenJDK コミュニティに参加してみよう #jjugOpenJDK コミュニティに参加してみよう #jjug
OpenJDK コミュニティに参加してみよう #jjug
 
Visual studio online and Agile
Visual studio online and AgileVisual studio online and Agile
Visual studio online and Agile
 
Web技術勉強会 第31回
Web技術勉強会 第31回Web技術勉強会 第31回
Web技術勉強会 第31回
 
Open Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere LibertyOpen Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere Liberty
 

Viewers also liked

開発環境としてのAwsを真面目に考える jawsug2013三都物語公開用
開発環境としてのAwsを真面目に考える jawsug2013三都物語公開用開発環境としてのAwsを真面目に考える jawsug2013三都物語公開用
開発環境としてのAwsを真面目に考える jawsug2013三都物語公開用
Takuro Sasaki
 
第4回はじめてのAws jaws ug-iwata
第4回はじめてのAws jaws ug-iwata第4回はじめてのAws jaws ug-iwata
第4回はじめてのAws jaws ug-iwata
iwata jaws-ug
 
Google Container Engine と Kubernetes で 無理をしないコンテナ管理
Google Container Engine と Kubernetes で 無理をしないコンテナ管理Google Container Engine と Kubernetes で 無理をしないコンテナ管理
Google Container Engine と Kubernetes で 無理をしないコンテナ管理
Ryosuke Suto
 
ELB & CloudWatch & AutoScaling - AWSマイスターシリーズ
ELB & CloudWatch & AutoScaling - AWSマイスターシリーズELB & CloudWatch & AutoScaling - AWSマイスターシリーズ
ELB & CloudWatch & AutoScaling - AWSマイスターシリーズ
Amazon Web Services Japan
 

Viewers also liked (19)

開発環境としてのAwsを真面目に考える jawsug2013三都物語公開用
開発環境としてのAwsを真面目に考える jawsug2013三都物語公開用開発環境としてのAwsを真面目に考える jawsug2013三都物語公開用
開発環境としてのAwsを真面目に考える jawsug2013三都物語公開用
 
初心者向けWebinar AWSで開発環境を構築しよう
初心者向けWebinar AWSで開発環境を構築しよう初心者向けWebinar AWSで開発環境を構築しよう
初心者向けWebinar AWSで開発環境を構築しよう
 
JAWS-UG 情シス支部 #3
JAWS-UG 情シス支部 #3JAWS-UG 情シス支部 #3
JAWS-UG 情シス支部 #3
 
Qihoo 360 Advertising 101
Qihoo 360 Advertising 101Qihoo 360 Advertising 101
Qihoo 360 Advertising 101
 
ほぼ1人でAzureからGCPに移行した話
ほぼ1人でAzureからGCPに移行した話ほぼ1人でAzureからGCPに移行した話
ほぼ1人でAzureからGCPに移行した話
 
Docker inside containers
Docker inside containersDocker inside containers
Docker inside containers
 
Hello JAWS HPC@JAWSUG Tokyo May 26, 2016
Hello JAWS HPC@JAWSUG Tokyo May 26, 2016Hello JAWS HPC@JAWSUG Tokyo May 26, 2016
Hello JAWS HPC@JAWSUG Tokyo May 26, 2016
 
第3回勉強会
第3回勉強会第3回勉強会
第3回勉強会
 
第4回はじめてのAws jaws ug-iwata
第4回はじめてのAws jaws ug-iwata第4回はじめてのAws jaws ug-iwata
第4回はじめてのAws jaws ug-iwata
 
JAWS-UG 磐田支部 第7回勉強会Agenda
JAWS-UG 磐田支部 第7回勉強会AgendaJAWS-UG 磐田支部 第7回勉強会Agenda
JAWS-UG 磐田支部 第7回勉強会Agenda
 
Ossフル活用でinfrastructure as codeやってみた
Ossフル活用でinfrastructure as codeやってみたOssフル活用でinfrastructure as codeやってみた
Ossフル活用でinfrastructure as codeやってみた
 
Awsを学ぶ上で必要となる前提知識(DNS/LB)
Awsを学ぶ上で必要となる前提知識(DNS/LB)Awsを学ぶ上で必要となる前提知識(DNS/LB)
Awsを学ぶ上で必要となる前提知識(DNS/LB)
 
Google Container Engine と Kubernetes で 無理をしないコンテナ管理
Google Container Engine と Kubernetes で 無理をしないコンテナ管理Google Container Engine と Kubernetes で 無理をしないコンテナ管理
Google Container Engine と Kubernetes で 無理をしないコンテナ管理
 
ELB & CloudWatch & AutoScaling - AWSマイスターシリーズ
ELB & CloudWatch & AutoScaling - AWSマイスターシリーズELB & CloudWatch & AutoScaling - AWSマイスターシリーズ
ELB & CloudWatch & AutoScaling - AWSマイスターシリーズ
 
インフラ系自主トレするならAWS
インフラ系自主トレするならAWSインフラ系自主トレするならAWS
インフラ系自主トレするならAWS
 
AWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
AWS Black Belt Online Seminar 2016 Amazon EC2 Container ServiceAWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
AWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
 
EC2のストレージどう使う? -Instance Storageを理解して高速IOを上手に活用!-
EC2のストレージどう使う? -Instance Storageを理解して高速IOを上手に活用!-EC2のストレージどう使う? -Instance Storageを理解して高速IOを上手に活用!-
EC2のストレージどう使う? -Instance Storageを理解して高速IOを上手に活用!-
 
ECS for Docker Meetup #4
ECS for Docker Meetup #4ECS for Docker Meetup #4
ECS for Docker Meetup #4
 
AWS Black Belt Online Seminar Amazon Aurora
AWS Black Belt Online Seminar Amazon AuroraAWS Black Belt Online Seminar Amazon Aurora
AWS Black Belt Online Seminar Amazon Aurora
 

Similar to テスト環境まるごとAwsにのっけてみた

PostgreSQL on Amazon EC2の可能性
PostgreSQL on Amazon EC2の可能性PostgreSQL on Amazon EC2の可能性
PostgreSQL on Amazon EC2の可能性
Serverworks Co.,Ltd.
 
20120827 第7回jaws ug札幌.key
20120827 第7回jaws ug札幌.key20120827 第7回jaws ug札幌.key
20120827 第7回jaws ug札幌.key
Tetsuya Chiba
 
AWSを会社で使ってみた
AWSを会社で使ってみたAWSを会社で使ってみた
AWSを会社で使ってみた
Satoshi Ishikawa
 
Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築
VOYAGE GROUP
 
Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築
Kenta Suzuki
 
エンターテイメント業界におけるAWS活用事例
エンターテイメント業界におけるAWS活用事例エンターテイメント業界におけるAWS活用事例
エンターテイメント業界におけるAWS活用事例
Amazon Web Services Japan
 

Similar to テスト環境まるごとAwsにのっけてみた (20)

Eight meets AWS
Eight meets AWSEight meets AWS
Eight meets AWS
 
20120914 aws summit_lt
20120914 aws summit_lt20120914 aws summit_lt
20120914 aws summit_lt
 
作られては消えていく泡のように儚いクラスタの運用話
作られては消えていく泡のように儚いクラスタの運用話作られては消えていく泡のように儚いクラスタの運用話
作られては消えていく泡のように儚いクラスタの運用話
 
PostgreSQL on Amazon EC2の可能性
PostgreSQL on Amazon EC2の可能性PostgreSQL on Amazon EC2の可能性
PostgreSQL on Amazon EC2の可能性
 
あなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CIあなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CI
 
Ansible night
Ansible nightAnsible night
Ansible night
 
Azure 高速サイトソリューション
Azure 高速サイトソリューションAzure 高速サイトソリューション
Azure 高速サイトソリューション
 
弊社IoT事例とAlexaSkil開発レシピ
弊社IoT事例とAlexaSkil開発レシピ弊社IoT事例とAlexaSkil開発レシピ
弊社IoT事例とAlexaSkil開発レシピ
 
データ可視化とコスト管理 Slideshare
データ可視化とコスト管理 Slideshareデータ可視化とコスト管理 Slideshare
データ可視化とコスト管理 Slideshare
 
20120827 第7回jaws ug札幌.key
20120827 第7回jaws ug札幌.key20120827 第7回jaws ug札幌.key
20120827 第7回jaws ug札幌.key
 
AWSを会社で使ってみた
AWSを会社で使ってみたAWSを会社で使ってみた
AWSを会社で使ってみた
 
コスト削減から考えるAWSの効果的な利用方法
コスト削減から考えるAWSの効果的な利用方法コスト削減から考えるAWSの効果的な利用方法
コスト削減から考えるAWSの効果的な利用方法
 
Aws st 20130617-auto_scaling
Aws st 20130617-auto_scalingAws st 20130617-auto_scaling
Aws st 20130617-auto_scaling
 
PowerShell DSC と連携して監視を効率化してみる
PowerShell DSC と連携して監視を効率化してみるPowerShell DSC と連携して監視を効率化してみる
PowerShell DSC と連携して監視を効率化してみる
 
Ansible AWXで一歩進んだプロビジョニング
Ansible AWXで一歩進んだプロビジョニングAnsible AWXで一歩進んだプロビジョニング
Ansible AWXで一歩進んだプロビジョニング
 
Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築
 
Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築
 
エンターテイメント業界におけるAWS活用事例
エンターテイメント業界におけるAWS活用事例エンターテイメント業界におけるAWS活用事例
エンターテイメント業界におけるAWS活用事例
 
[excite open beerbash 特別篇]レガシーシステムをAWS移行で幸せになった話
[excite open beerbash 特別篇]レガシーシステムをAWS移行で幸せになった話[excite open beerbash 特別篇]レガシーシステムをAWS移行で幸せになった話
[excite open beerbash 特別篇]レガシーシステムをAWS移行で幸せになった話
 
[AWS Start-up ゼミ] よくある課題を一気に解説!〜御社の技術レベルがアップする 2017 夏期講習〜
[AWS Start-up ゼミ] よくある課題を一気に解説!〜御社の技術レベルがアップする 2017 夏期講習〜[AWS Start-up ゼミ] よくある課題を一気に解説!〜御社の技術レベルがアップする 2017 夏期講習〜
[AWS Start-up ゼミ] よくある課題を一気に解説!〜御社の技術レベルがアップする 2017 夏期講習〜
 

More from Kazuaki Fujikura (7)

Aws re invent2018_security_recap_introducing_securityhub_ja
Aws re invent2018_security_recap_introducing_securityhub_jaAws re invent2018_security_recap_introducing_securityhub_ja
Aws re invent2018_security_recap_introducing_securityhub_ja
 
通信の安全を守るためにエンジニアができること
通信の安全を守るためにエンジニアができること通信の安全を守るためにエンジニアができること
通信の安全を守るためにエンジニアができること
 
cross2012a fujya
cross2012a fujyacross2012a fujya
cross2012a fujya
 
Open vzでdr hbstudy
Open vzでdr hbstudyOpen vzでdr hbstudy
Open vzでdr hbstudy
 
Open vzでdr
Open vzでdrOpen vzでdr
Open vzでdr
 
Monit
MonitMonit
Monit
 
Open VZ
Open VZOpen VZ
Open VZ
 

テスト環境まるごとAwsにのっけてみた