SlidePub
Home
Categories
Login
Register
Home
General
20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-public
AmazonWebServicesJapan
1,535 views
55 slides
Jun 13, 2012
Slide
1
of 55
Previous
Next
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
About This Presentation
No description available for this slideshow.
Size:
1.34 MB
Language:
none
Added:
Jun 13, 2012
Slides:
55 pages
Slide Content
Slide 1
AWSマイスターシリーズ
~AWS SDK for Java &
AWS Toolkit for Eclipse ~
2012年05月28日
大谷 晋平( @shot6 )
片山 暁雄( @c9katayama )
ソリューションアーキテクト
Slide 2
Agenda
AWS Toolkit for Eclipse
AWS SDK オーバービュー
AWS SDK for Java
コードサンプル
まとめ
Copyright © 2011 Amazon Web Services
Slide 3
AWS Toolkit for Eclipse
Slide 4
AWS Toolkit for Eclipse
EclipseにAWS操作のための 機能を追加 するプラグイン
AWSを使用したアプリの 開発/テストをバックアップ
Slide 5
インストール前提
Java 1.5以上
Eclipse IDE for Java EE Developers 3.6
3.7推奨
AWS Elastic Beanstalk Deployment:
Eclipse Web Tools Platform 2.0以上
Amazon SimpleDB Management
Eclipse Data Tools Platform 1.7 以上
Java EE Developer
に入ってます
Slide 6
インストール方法
Plugin更新サイトからインストール
http://aws.amazon.com/eclipse/
Eclipse MarketPlaceからインストール
Slide 7
機能
アカウント管理
AWS Explorer
各種サービスの情報表示/ 操作
EC2 コンソール
EC2のコントロールパネル
AWS Elastic Beanstalk
デプロイ、デバッグ、 環境構築
AWS SDK for Java integration
Javaプロジェクト /Webプロジェクトウィザード
Slide 8
アカウント管理
Access Key IDとSecret Access keyを登録
複数のアカウント登録 が可能
Slide 9
AWS Explorer
各サービス情報 の一覧
Amazon SNS
Amazon S3
Amazon SQS
Amazon SimpleDB
Amazon EC2
AWS Elastic Beanstalk
Amazon CloudFront
Amazon DynamoDB
Amazon RDS
ツリーから情報 にアクセス
Slide 10
リージョンとアカウント
メニューからリージョンとアカウントの切 り替え
Slide 11
AWS Explorer – Amazon SNS
トピックの一覧表示
トピックの作成
サブスクリプションの 作成/削除
Slide 12
AWS Explorer – Amazon S3
Bucketの作成/削除、権限設定
オブジェクト の一覧
ツリー状 に表示
オブジェクト の削除 、権限設定 、Pre-signed URLの 生成
オブジェクトアップロード
EclipseへのD&D でアップロード
Slide 13
AWS Explorer – Amazon SQS
キューの 作成、削除
キューへのメッセージ送信
キュー内 の一覧
メッセージの 削除
Slide 14
AWS Explorer – Amazon SimpleDB
ドメイン の作成/削除
ドメイン 内の一覧
行の追加/削除
SimpleDBクエリーエディタ
コードアシストあり
Slide 15
AWS Explorer – Amazon CloudFront
既存Distributionの一覧
Distributionの内容表示
Distributionの有効化/無効化
Slide 16
AWS Explorer – Amazon DynamoDB
テーブル の追加/削除
キャパシティの変更
テーブル 内アイテム 一覧
属性追加
スキャンの実行
Slide 17
AWS Explorer – Amazon RDS
既存RDSの 一覧
DBへの接続
情報はData Management に格納
•パスワード変更などは
Preferences>DataManagementから
接続後は通常のJDBC接続で管理
Slide 18
EC2 コンソール
AMI管理
検索、削除 、AMIからの起動
インスタンス 管理
右クリックから状態変更 、SSH接続、 AMI作成、 EBSの操作
インスタンスタイプおよびセキュリティグループによるフィル
ター
Slide 19
EC2コンソール
EBS管理
EBS作成、削除、 スナップショット作成
スナップショット一覧 、削除
Slide 20
EC2コンソール
セキュリティグループ管理
セキュリティグループ 作成、削除
アクセス条件の追加、 削除
Slide 21
AWS Elastic Beanstalk
Elastic Benstalkの 環境情報表示 と編集
各環境に属するAutoScaling,ELB,EC2 の一覧表示
Slide 22
AWS Elastic Beanstalk
各種詳細設定
AutoScalingポリシー
•トリガー条件、インスタンス起動設定、ゾーン設
定
JavaVM設定
ELB設定
通知設定
Slide 23
AWS SDK for Java integration
プロジェクト 構築時のウィザートを 提供
通常Javaプロジェクトと Webプロジェクトを構築 し、クラス
マスにAWS SDK for Javaを 追加
AWS SDKはeclipse updateを通じて最新版 を取得可能 サンプルコードと AWSアカウント設定 が可能
すぐに動作 するサンプルがソース提供
Slide 24
まとめ
AWS Toolkit for Eclipseは 開発者に焦点
EC2、Beanstalkは機能が充実
それ以外 はサービス情報 の確認に利用
AWS SDKを利用する場合に便利
SDKバージョンの 選択
AWSアカウントが選択可能
SDKにソースアタッチ済 み
AWS Toolkit for Eclipseを使用するなら 、コードでAWS ク
ラウドをコントロールしよう!
Slide 25
機能が足りない場合は・・・
AWS Toolkit for Javaは OSS
https://github.com/amazonwebservices/aws -toolkit-for-
eclipse
拡張はご 自由に!
Slide 26
AWS SDK オーバービュー
Slide 27
AWSのサービス操作と言えば
AWS Management Console
AWSコマンドラインツール
Slide 28
これらの裏側では・・・
各サービスの各操作に対して、API が定義されている
AWSでは・・・
人間がGUI またはCUI越しに叩く
プログラミングしてそれを自動化・簡易化・カスタマイズ
•人間が手でやらなくてはいけない事をプログラミ
ングして自動化できる、これがSDK で実現可能
•しかも簡単
•AWSの実は最も優れた一面
Slide 29
AWSのサービスを操作できるSDK
プログラムでクラウドを操作できるAPI 群
さまざまな言語で提供
•AWS SDK for Java
•AWS SDK for C#
•AWS SDK for Ruby
•AWS SDK for PHP
•AWS SDK for Android
•AWS SDK for iOS
•有志の方による実装(Python やActionScript)も
通信は原則HTTPS
署名による暗号化
AWS SDKとは
Slide 30
起動、停止
Put,Get
DB起動、バックアップ
情報取得
REST
SOAP
Slide 31
操作の種類
例えばEC2
インスタンス起動・・・ RunInstances
リブート・・・ RebootInstances
IPアドレス付与・・AllocateAddress
など100種類以上の操作が、プログラムから実行可能
Slide 32
AWS SDK for Java
Slide 33
AWS SDK for Java
AWS SDK for Java
Amazon提供のAWS 開発用Java SDK
http://aws.amazon.com/sdkforjava/
環境:Java5 以降
最新版 1.3.10
依存ライブラリ
•Commons-codec,httpclient,logging
•Jackson
•Javamail
•stax
Slide 34
操作可能サービス
EC2 S3
Autoscaling Cloudwatch
ElasticLoadBalancing SimpleWorkflow
ElasticBeanstalk IdentityManagement
ElasticMapReduce ImportExport
RDS ElastiCache
Simpledb SimpleDB
SNS SES
DynamoDB SQS
StorageGateway CloudSearch
Slide 35
はじめに取得するもの
AWSの認証キー(アクセスキー、シークレットキ-)
AWSログイン後、[ アカウント]>[セキュリティ証明書] の画面
から確認OK
Slide 36
Java SDKクライアントクラスの基本
クレデンシャル情報を渡す
アクセスキー
シークレットキー
方法としては
BasicAWSCredentialsで直接渡す
PropertiesCredentialsでプロパティファ
イルに記述する
独自でAWSCredentials を拡張する
Slide 37
このような感じ
AWSCredentials credentials = null;
try {
credentials = new PropertiesCredentials(Util.class
.getResourceAsStream ("AwsCredentials.properties"));
} catch (IOException e) {
//例外処理
}
//このクレデンシャルを使ってClient を生成する
IAM利用時は、IAMユーザーのアクセスキー、シークレットキーを利用。
IAMユーザーでアクセス権のないメソッドを呼ぶと、例外が発生。
Slide 38
EC2
AmazonEC2Client
// EC2操作用のクライアント
AmazonEC2 ec2
= new AmazonEC2Client(credentials);
// 立ち上げたいインスタンス情報の作成
RunInstancesRequest runInstancesRequest = new
RunInstancesRequest ("ami-xxxxx", 5, 5)
.withKeyName (“yourkeyname")
.withSecurityGroupIds (“yoursecgroup")
.withMonitoring (true)
.withInstanceType (InstanceType.M1Small);
// インスタンスの起動
ec2.runInstances(runInstancesRequest);
Slide 39
S3
// S3操作用クライアント
AmazonS3 s3 = new AmazonS3Client(credentials);
// bucket作成
s3.createBucket(“mybucket ");
//オブジェクトのPUT
PutObjectResult ret = client.putObject("mybucket",
"aaa.txt", file);
AmazonS3Client
Slide 40
S3での巨大ファイルの簡易アップロード
//TransferManagerを作成
AmazonS3Client client = new AmazonS3Client(cred);
TransferManager manager =
new TransferManager( client);
//最低1 チャンクを5MB に設定
TransferManagerConfiguration c = new
TransferManagerConfiguration();
c.setMinimumUploadPartSize (5 * 1024L * 1024L);
manager.setConfiguration(configuration);
//巨大ファイルのアップロード実行と進捗の監視
Upload upload = manager.upload(bucketName,
bigfileName, target, o);
while (upload.isDone() == false) {…
Slide 41
RDS
AmazonRDSClinet
// RDS操作用クライアント
AmazonRDS amazonRDS =
new AmazonRDSClient (credentials);
// DB instance作成
CreateDBInstanceRequest createDBInstanceRequest
= new CreateDBInstanceRequest ()
.withAllocatedStorage(5)
.withMultiAZ(true)
.withDBInstanceClass("db.m1.small")
…
.withEngine("MySQL ");
DBInstance result =
rds.createDBInstance(createDBInstanceRequest );
Slide 42
Java SDKの構成
各サービス毎にクライアントクラスが付属
面倒な下記のようなことは利用者から隠ぺいしてくれる
•HTTP通信及び例外ハンドリング
•署名
•エラー時のリトライ処理
サービスどれでもほぼ同一で直感的な使い勝手の提供
極力、利用者は単純に呼び出すだけでよい
プラガブルな構成で、部分的に入れ替えられる
挙動を変えたい
例外のハンドリング方法を変えたい
処理速度を上げたい
Slide 43
Java SDKの構成イメージ
AmazonEC2
Client
AmazonEC2
AsyncClient
<<abstract>>
AmazonWeb
ServiceClient
AmazonHttp
Client
保持
execute(
リクエスト,
レスポンスハンドラー,
エラーハンドラー,
ExecutionContext)
ExecutionCo
ntext
保持 ・利用する署名方法
・クレデンシャル
・リトライ
Slide 44
Java SDKのパッケージ構成
com.amazonaws
auth : 署名関連
handlers : SDKの挙動をカスタマイズするハンドラー
http : 実際のHTTP リクエストを処理する
internal : リトライ関連
sdk : バージョン情報
services : 各サービス毎の実体
transform : API経由で返ってくるXML をパースする実体
util : ユーティリティ
Slide 45
Java SDKの各サービス毎の構成
クライアントは実体が2 つ
同期通信を中心としたクライアント : XxxClient
非同期通信を追加した非同期クライアント : XxxAsyncClient
Slide 46
リージョンを選択する
リージョンの選択
デフォルトはどれもus- east
setEndpointメソッドで指定
setEndpoint("ec2.ap-southeast-1.amazonaws.com")
サービス 毎のエンドポイントは 下記URL 参照
http://docs.amazonwebservices.com/general/latest/gr/r
ande.html
Slide 47
有効な利用方法
利用方法(運用面)
決まったインスタンスを起動するバッチ
固定ディスク(EBS )のスナップショットを定期取得
S3からデータを定期的に取得
S3上のデータを監視して、無くなったら通知
利用方法(アプリから)
アプリのバックエンドとして、DynamoDBを使う
メール送信のためにSMS を使う
データ保存のためにS3 を使う
Slide 48
Tips等
実行はどこからでも可能
インターネットのエンドポイントへアクセス出来れば、EC2 イ
ンスタンスからでも、自分のPC からでもアクセス可能
EC2からであれば、メタデータと組み合わせて自己構成できる
便利なフレームワークがついている場合も
DynamoDB ORマッパー
S3 ハイレベルAPI
SimpleWorkflow FlowFramework
Slide 49
setterとwith
各種リクエストオブジェクトに 対して 値を設定する場合 、
setXXXと withXXXが利用可能 。
withXXXの 場合、戻り値がリクエストオブジェクトになるの
で、fluentな形での実装が可能 。
複数追加 できるようなパラメータ(add 系)の場合、setterに
はCollectionの引数しかない 場合が多いが、 withだと実際の
型の引数 が取れる。
//setter
req.setBlockDeviceMappings(Arrays.asList(new BlockDeviceMapping()));
//with
req.
withBlockDeviceMappings(new BlockDeviceMapping()).
withBlockDeviceMappings(new BlockDeviceMapping());
Slide 50
アドバンスドなトピック
Java SDKは拡張性をかなり確保した状態になっている
Client/AsyncClient自体も自分で拡張できる
おおざっぱなやり方はインターフェースをそのまま継承
細かく拡張ポイントを入れ替えることも可能
ClientConfiguration
RequestHandler
CustomBackoffStrategy
Marshaller/UnMarshaller
Slide 51
ClientConfiguration
各Clientクラスの基本的な挙動を決定する設定
ソケットのタイムアウト値
最大コネクション数
最大リトライ数
使用するプロトコル( デフォルト HTTPS)
プロキシ関連設定
コネクションタイムアウト
各Client生成時にClientConfiguration を渡す
Slide 52
RequestHandler
Servletでいうところのいわゆる Filter
デバッグ時や、何か統一的に処理させたい場合など便利
beforeRequest : リクエスト送信前
afterResponse : レスポンス受信後
afterError : エラー受信後
各サービスごとに定義可能
Clientで普通に渡す
com/amazonaws/services/xxx/request.handlersというファ
イルをおいて、これに定義するとロードされる
標準で既に定義されているものも
EC2RequestHandler
QueueUrlHandler
Route53IdRequestHandler
Slide 53
CustomBackoffStrategy
AWSクラウド側へのリトライ間隔をコントロールする
カスタマイズして現状使っているのは DynamoDBのみ
実行コンテキストである ExecutionContextに設定して渡す
AmazonHttpClientの600行目付近
pauseExponentiallyメソッド
private void pauseExponentially(int retries, AmazonServiceException
previousException, CustomBackoffStrategy backoffStrategy) {
long delay = 0;
if (backoffStrategy != null) {
delay = backoffStrategy.getBackoffPeriod(retries);
} else {
long scaleFactor = 300;
…
delay = ( long) (Math.pow(2, retries) * scaleFactor);
}
…
}
Slide 54
Marshaller/Unmarshaller
AWSが提供しているXMLパース( 一部JSON パース) では遅い
ので色々いらないものを省略してパースしたい
Java SDKではStAX というプルモデル型のパーサー
•XMLのどこを読むかをコントロールしやすい
Clientを書いて、自分でMarshaller /Unmarshallerする 各サービス. model.transformの下
ここにMarshaller /Unmarshallerが大量にいる
コーディングポリシー的には
Clientの各メソッド内でMarshall してRequest<X>を作成
UnmarshallerはResponseHandlerにセットされて、
AmazonHttpClientに渡されてレスポンス帰ってきたら実行
Slide 55
Java SDKのまとめ
JavaのSDKを使うことで
運用管理での煩雑な手間をコーディングして落とすことが可能
•もしかしてCloudFormation よりも楽?
どのサービスでも同じような使い勝手で利用可能で楽
実際のサービス開発のお供に
•S3
•SNS/SQS/SWF
•DynamoDB AWSはコーディングする方の力を最大限に引き出すインフラ
HAPPY CODING!!
Tags
eclipse aws
Categories
General
Download
Download Slideshow
Get the original presentation file
Quick Actions
Embed
Share
Save
Print
Full
Report
Statistics
Views
1,535
Slides
55
Favorites
5
Age
4926 days
Related Slideshows
22
Pray For The Peace Of Jerusalem and You Will Prosper
RodolfoMoralesMarcuc
35 views
26
Don_t_Waste_Your_Life_God.....powerpoint
chalobrido8
38 views
31
VILLASUR_FACTORS_TO_CONSIDER_IN_PLATING_SALAD_10-13.pdf
JaiJai148317
34 views
14
Fertility awareness methods for women in the society
Isaiah47
31 views
35
Chapter 5 Arithmetic Functions Computer Organisation and Architecture
RitikSharma297999
30 views
5
syakira bhasa inggris (1) (1).pptx.......
ourcommunity56
31 views
View More in This Category
Embed Slideshow
Dimensions
Width (px)
Height (px)
Start Page
Which slide to start from (1-55)
Options
Auto-play slides
Show controls
Embed Code
Copy Code
Share Slideshow
Share on Social Media
Share on Facebook
Share on Twitter
Share on LinkedIn
Share via Email
Or copy link
Copy
Report Content
Reason for reporting
*
Select a reason...
Inappropriate content
Copyright violation
Spam or misleading
Offensive or hateful
Privacy violation
Other
Slide number
Leave blank if it applies to the entire slideshow
Additional details
*
Help us understand the problem better