タスクコントローラはVMを立ち上げ,そのアドレ スに対してLOCサービス呼び出しを行うようにする とともに,一定時間経過後にVMの終了も行う
例題: 作業手順一例(5)
例題: 実際の作業(EC2の利用コード)
RunInstancesRequest req
= new RunInstancesRequest(amiID, minNum, maxNum);
req.setInstanceType(instanceType);
req.withSecurityGroupIds(securityGroupID);
RunInstancesResult res = ec2.runInstances(req);
AmazonEC2 ec2 = new AmazonEC2Client(…); 認証情報を与え スタブ作成
各種の設定とともにインスタンス起動
・ イメージID
・ 立ち上げ個数(最小・最大): 同時立ち上げ可能な数の 制限と照らし合わせて実際の個数が決定
・ インスタンスタイプ(CPU/Memoryのサイズを表す)
・ セキュリティグループ(ファイアウォール設定を指定)
[http://aws.amazon.com/jp/documentation/ec2/]
例題: 実際の作業(EC2の利用コード)
DescribeInstancesResult res
= ec2.describeInstances(
new DescribeInstancesRequest());
AmazonEC2 ec2 = new AmazonEC2Client(…); 認証情報を与え スタブ作成
現在起動中のインスタンス情報の取得
(例: 立ち上げたインスタンスの起動処理 が終わり利用可能になっているか チェックするため)
ec2.stopInstances(new StopInstancesRequest(instanceIDs));
インスタンス停止 [http://aws.amazon.com/jp/documentation/ec2/]
Java 6のソースコード(ファイル7000個超)
S3へのアップロード(並行化せず): 2時間弱 キューへの送信(並行化せず): 約20分
VM10個を立ち上げ,全結果が集まるまで: 約1時間
注:性能最適化していない,LOC処理が小さいので通信 などのオーバーヘッドが相対的に大きい
実行結果
ローカルで 直列にLOC
今回のLOC
通信などのオーバーヘッド
キュー収束
オーバーヘッド
クラウドとは
Webサービスの技術的基礎 例題: AWS上のLOC
議論・おわりに 参考文献
目次
EC2サービスを直接使わずとも,自動スケーリ ングなど多様な機能が利用できる
Amazon自体のサービス
サードパーティのサービス・ライブラリ 他の提供者によるIaaS/PaaS
VMの設定はもっと柔軟・動的にもできる
指定されたサービス設定を起動時に読み込み,必要 なサービス配備を動的に行う,など
処理時間が非常に短い
並列化効果に対して,キューの情報反映や通信の オーバーヘッドが大きくなりがち
例題の限界
クラウドが活きる特徴とSEにおけるタスク 分割して独立に捌ける処理を大量に行う
ビルド,インテグレーション,テスト,静的検証,
メトリクス解析,リファクタリング,・・・
(分割できる?どう分割?)
様々な仮想マシンを手軽に自動で利用する
異なるCPU速度・メモリ量,異なるOSやパッチ状況,
異なるソフトウェア(ブラウザなど),異なる環境 設定ごとのテストを行いやすい
おわりに: SEに活かす?(1)
クラウドが活きる特徴とSEにおけるタスク
データ転送(コスト・オーバーヘッド)が少な い方がよい
コードのデータ量はたかがしれている
(が,取り得る入出力やたどりうる実行パスなど,
組み合わせでテストなどの処理は膨大になり得る)
時間順序や最新情報の正確な反映が必ずしも必 要でない場合の方がよい
SEにおけるタスクはWeb検索などと異なり,そんな ことはない?
バックアップやアーカイブを対象としたメトリクス 分析など?
おわりに: SEに活かす?(2)
今回は本当に基礎的な内容
これくらいでもぜひご自身で触ってみて下さい
(これくらいならほぼ無料で済む)
それが難しくとも,本チュートリアルが何か考える ための「実感」を提供できたなら幸いです
ご自身の「専門領域」でぜひサービス・クラウ ドとの関連を考えてみて下さい!
自分のツールをサービス化・公開?
研究・開発にWebサービス・クラウドを利用?
特にクラウドにおける課題を同定,研究対象に?
おわりに
クラウドとは
Webサービスの技術的基礎 例題: AWS上のLOC
議論・おわりに 参考文献
目次
The NIST Definition of Cloud Computing (Draft)
Special Publication 800-145, NIST, Jan 2011
http://csrc.nist.gov/publications/drafts/800-145/Draft-SP-800-145̲cloud-definition.pdf
Above the clouds: A berkeley view of cloud computing
M. Armbrust et. al., Technical Report No. UCB/EECS-2009-28, Feb 2009
クラウド大全 サービス詳細から基盤技術まで(第2版)
日経BP社出版局,2010
Cloud Computing and Emerging IT Platforms: Vision, Hype, and Reality for Delivering Computing as the 5th Utility
R. Buyya et. al., Future Generation Computer Systems, 2009
参考文献(クラウド全般)
Amazon Web Services
http://aws.amazon.com/jp/
AWS Documentation
http://aws.amazon.com/jp/documentation/
AWS SDK for Java
http://aws.amazon.com/jp/sdkforjava/
Architecting for The Cloud: Best Practices
J. Varia,
http://media.amazonwebservices.com/AWS̲Cloud̲Best̲Practices.
Migrating your Existing Applications to the AWS Cloud
J. Varia, http://media.amazonwebservices.com/CloudMigration-main.pdf