テスト環境まるごとAwsにのっけてみた
-
Upload
kazuaki-fujikura -
Category
Documents
-
view
7.097 -
download
0
Transcript of テスト環境まるごとAwsにのっけてみた
株式会社シャノン
インフラストラクチャエンジニア 藤倉 和明
テスト環境まるごとAWSにのっけてみた
2011/07/212011/07/212011/07/212011/07/212011/07/212011/07/212011/07/212011/07/21
第3回 BacklogBacklogBacklogBacklogチャンネル
2
自己紹介
藤倉和明についてシャノンのインフラを守るお仕事 サーバ/ネットワークざっくりだいたい全部見てる Twitter: @fujya Facebook:http://ja-jp.facebook.com/people/Kazuaki-Fujikura/100001844796436
好きなAWSサービスEBS(snapshotカワイイよsnapshot♪)
3
技術部ブログの宣伝
http://shanon-tech.blogspot.com/私はfujya.shで書いてます
最低週1で
更新され
ています
ブクマよろしくですブクマよろしくです
4
テスト環境をAWSに乗っけた経緯
自動テスト全部終わるのが24時間以上かかる自動テスト全部終わるのが24時間以上かかる
いま社内にいま社内に11台しかテストサーバが無い台しかテストサーバが無い
サーバ増やしたいけどオフィスに電力がないサーバ増やしたいけどオフィスに電力がない
とりあえずAWS触ってみたいからチャンス!!
「AWSにテスト環境作るから予算プリーズ!僕にあそb・・・いや、やらせてください!」
QAQAQAQAチームがなにやら困ってるらしい
5
どうやってテストしているのか
https://docs.google.com/present/view?id=0AbDvtUF_P-4uZDl0cGo4aF8zMWdmNXhnZ3M2&hl=en
「「HudsonHudson(今(今JenkinsJenkins)活用事例セミナー」で弊社西野が)活用事例セミナー」で弊社西野が
発表した内容見ていただけると詳細が分かります発表した内容見ていただけると詳細が分かります
今日はAWSの上にテスト環境が乗っているよっていう紹介です
「HudsonHudsonHudsonHudson活用事例セミナー 西野」で検索すれば出てきます
テスト環境全体像
7
テストの流れ(全体図)
8
Jenkinsでテストの流れを管理
複数のジョブを連鎖させ、インスタンス起動・テスト実行・インスタンス停止など実施複数のジョブを連鎖させ、インスタンス起動・テスト実行・インスタンス停止など実施テスト対象の量が増えたらジョブも合わせて増えていくテスト対象の量が増えたらジョブも合わせて増えていく一定量のジョブが増えたらインスタンスを追加(コピー)する一定量のジョブが増えたらインスタンスを追加(コピー)する
((予算予算があれば)があれば)何百時間分何百時間分のジョブものジョブも数時間数時間でで完了完了できるできる設計設計
ジョブの塊1
ジョブの塊2222
9
自動テスト用インスタンスはOpenVZで再仮想されている
all in one instanceall in one instanceall in one instanceall in one instanceall in one instanceall in one instanceall in one instanceall in one instance
OSOSOSOSOSOSOSOS - CentOS 5.x - CentOS 5.x - CentOS 5.x - CentOS 5.x - CentOS 5.x - CentOS 5.x - CentOS 5.x - CentOS 5.x
networknetworknetworknetworknetworknetworknetworknetwork - bridge interface + iptables - bridge interface + iptables - bridge interface + iptables - bridge interface + iptables - bridge interface + iptables - bridge interface + iptables - bridge interface + iptables - bridge interface + iptables
virtual servervirtual servervirtual servervirtual servervirtual servervirtual servervirtual servervirtual server - Loadbalancer - Loadbalancer - Loadbalancer - Loadbalancer - Loadbalancer - Loadbalancer - Loadbalancer - Loadbalancer - Application - Application - Application - Application - Application - Application - Application - Application - Database - Database - Database - Database - Database - Database - Database - Database - cache - cache - cache - cache - cache - cache - cache - cache
このネタは技術ブログにも書いてあるので是非ブクマをw
10
Why OpenVZ ?
元々元々OpenVZOpenVZでサーバのイメージ管理していたでサーバのイメージ管理していた
より安価にするため複数台立てるより1台に集約より安価にするため複数台立てるより1台に集約
AP/DBAP/DBの負荷ポイントが異なるので同居はの負荷ポイントが異なるので同居は◯◯
AP:CPU
DB:DiskIO
キャッシュサーバ:メモリ
仮想サーバ単位でのリソース管理ができるので、仮想サーバ単位でのリソース管理ができるので、
管理側面的に負荷のコントロールしやすくなる管理側面的に負荷のコントロールしやすくなる
11
起動時にインスタンス自身で初期設定
ElasticIPElasticIPの取得の取得
S3FSS3FSででS3S3のマウントのマウント
NFSNFSマウントマウント
アプリケーションソースはアプリケーションソースはNFSNFSサーバ上に配置サーバ上に配置
メール経路変更メール経路変更
送信メールサーバは固定で1台(規制緩和申請済みサーバ)送信メールサーバは固定で1台(規制緩和申請済みサーバ)
経路は経路は2525番ポートではなく番ポートではなく587587番ポートを利用番ポートを利用
12
APIで起動・停止 ソースは自動更新 テストも自動
インスタンスのインスタンスの起動起動・・停止停止ははAPIAPI経由経由でで実行実行
JenkinsJenkinsがが実行出来実行出来るスクリプトをるスクリプトを作成作成
アプリケーションアプリケーション起動前起動前にソースのにソースの自動更新自動更新
自動更新自動更新のの仕組仕組みはみはQAQAエンジニアがプラットフォームをエンジニアがプラットフォームを構築構築
テストケースもテストケースも自動自動でで実行実行されるされる
汗汗とと涙涙とと何何かがかが凝縮凝縮されたされたSeleniumSeleniumによるによる自動自動テストテスト
13
テストが一貫して自動化されたので人間様のお仕事は
テストやれよ!テストやれよ!
SSSS社 QA QA QA QAリーダー I I I I氏
はひぃぃぃぃ!!はひぃぃぃぃ!!
14
だけではなく・・・自動テストプラットフォームのメンテナンスが必要
メンテナンス対象メンテナンス対象
JenkinsJenkins
インスタンスイメージインスタンスイメージ
自動更新の仕組み自動更新の仕組み
SeleniumSeleniumのテストケースのテストケース
QAの仕事は「テストを実施する」から
「テストプラットフォームを創る」によりシフトした
QAチームのレバレッジがきくようになった!
運用上の涙ぐましい努力
16
ごめんなさい!ごめんなさい!ごめんなさい!
社内で申請した予算は低めに見積もっていた社内で申請した予算は低めに見積もっていたAWSAWSを本格的に使うようになったら・・・を本格的に使うようになったら・・・
・経理の人に使い過ぎ!って怒られた・経理の人に使い過ぎ!って怒られた・社長が接待でカード切れなかったwwww・社長が接待でカード切れなかったwwww
17
節電に貢献してます →→→→ 節約
停止の際にこんなメールを通知停止の際にこんなメールを通知6月は200通ぐらいのシャットダウン通知6月は200通ぐらいのシャットダウン通知
使うときだけ電気を付ける使うときだけ電気を付ける
電気の消し忘れ対策として、アクセスが一定時間電気の消し忘れ対策として、アクセスが一定時間
無かったら自動でシャットダウン無かったら自動でシャットダウン
これぞエコシステム(違これぞエコシステム(違
18
製造原価出したい
boto +boto +boto +boto +boto +boto +boto +boto +gdatagdatagdatagdatagdatagdatagdatagdata
①:botobotobotobotoで稼働中のInstanceInstanceInstanceInstanceの情報一覧を取得
google spreadsheetsgoogle spreadsheetsgoogle spreadsheetsgoogle spreadsheets
②:spreadsheets:spreadsheets:spreadsheets:spreadsheetsの一覧を取得①で取得した情報とぶつけて、起動時間ををインクリメントしていく
インスタンスに案件毎のタグを追加して集計
croncroncroncronで毎分実行
案件で使いたいけど内訳わかんないよね案件で使いたいけど内訳わかんないよね
InstanceInstanceInstanceInstanceInstanceInstanceInstanceInstanceの起動時間を計測するツールを作成の起動時間を計測するツールを作成
月初に経理に提出
EBS/EBS/EBS/EBS/EBS/EBS/EBS/EBS/トラフィックは従量割で後で加算トラフィックは従量割で後で加算
この辺りもそのうち集計できるようにしたいこの辺りもそのうち集計できるようにしたい
為替為替はは経理経理がが後後でシートをでシートを編集編集してして調整調整
製造原価と製品開発費の金額が出る製造原価と製品開発費の金額が出る
AWS使って良かった事・悪かった事
インフラ担当目線での
21
良かった事
当初の目的である自動テストの時間が短くなった当初の目的である自動テストの時間が短くなった
始める前:20時間 始める前:20時間 →→ 現在:6時間 現在:6時間
APIAPIAPIAPIAPIAPIAPIAPIが充実しているのでどんな要件にもマッチが充実しているのでどんな要件にもマッチ
プラットフォームとしての方向性が参考になったプラットフォームとしての方向性が参考になった
会社のお金で会社のお金でAWSAWSAWSAWSAWSAWSAWSAWS遊べて楽しかったw遊べて楽しかったw
スイートを分割すればもう少し早くなるかも
22
悪かったこと
使ってみると結構お金が掛かる(怒られたw)使ってみると結構お金が掛かる(怒られたw)
原因不明の突然死の調査が困難原因不明の突然死の調査が困難
Tokyo RegioTokyo RegioTokyo RegioTokyo RegioTokyo RegioTokyo RegioTokyo RegioTokyo RegioににVPCVPCVPCVPCVPCVPCVPCVPCが無い (早くこないかな)が無い (早くこないかな)
QAQAQAQAQAQAQAQAからからAWSAWSAWSAWSAWSAWSAWSAWS関連でインフラへの要望も増えた関連でインフラへの要望も増えた
今後の展望
24
今後狙ってる所
社内・本番インフラの乗せ変え社内・本番インフラの乗せ変え
オフショア(オフショア(予定有予定有?)?)時時にに開発開発・・QAQAQAQAQAQAQAQA環境構築環境構築
AWSAWSAWSAWSAWSAWSAWSAWS上のインフラで上のインフラでToBToBToBToBToBToBToBToBアプリの成功事例を作るアプリの成功事例を作る
AWSAWSAWSAWSAWSAWSAWSAWSを乗りこなしてレバレッジがきくを乗りこなしてレバレッジがきく
プラットフォームを構築する!!プラットフォームを構築する!!
25
ご清聴ありがとうございました!
AWSAWSAWSAWSAWSAWSAWSAWS上でテストされた高品質な上でテストされた高品質な
マーケティングプラットフォームもよろしくおねがいします!マーケティングプラットフォームもよろしくおねがいします!