20120319 aws meister-reloaded-s3

47
AWSマイスターシリーズ Reloaded Amazon S3 2012年03月19日 大谷 晋平 (@shot6 ) ソリューションアーキテクト

Upload: amazon-web-services-japan

Post on 11-May-2015

3.800 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: 20120319 aws meister-reloaded-s3

AWSマイスターシリーズ Reloaded Amazon S3

2012年03月19日

大谷 晋平 (@shot6 ) ソリューションアーキテクト

Page 2: 20120319 aws meister-reloaded-s3

アジェンダ

S3とは?

S3のコンセプト

S3の機能

S3をうまく使うためには

S3の利用例

まとめ

Page 3: 20120319 aws meister-reloaded-s3

AWSサービス一覧

お客様のアプリケーション

ライブラリ & SDKs Java, PHP, .NET,

Python, Ruby

Web インターフェース

Management Console

IDE プラグイン

Eclipse

Visual Studio

デプロイと自動化 AWS Elastic Beanstalk AWS CloudFormation

認証 & 請求 AWS IAM

Identity Federation Consolidated Billing

モニタリング Amazon CloudWatch

スケーリング Auto Scale

ネットワーク&ルーティング Amazon VPC

Amazon Elastic LB Amazon Route 53

AWS Direct Connect

コンテンツ配信Amazon

CloudFront

メッセージ通知Amazon SNS

分散処理 Elastic MapReduce

メール配信 Amazon SES

コンピュータ処理 Amazon EC2

ストレージ

Amazon S3

Amazon EBS AWS Storage Gateway

データベース Amazon RDS

Amazon DynamoDB Amazon SimpleDB

Amazon Elasticache

AWS のグローバルなインフラ

キューイングAmazon SQS

Page 4: 20120319 aws meister-reloaded-s3

AWSストレージサービスのゴール

お客様がデータを安心して預けられる、サービスの提供

データが安全に保管されている

データが取りたい時に常に取得可能

データを保存したい時に常に保存可能

データが誰がいつアクセス出来るかを完璧にコントロールできる

データ保存が低価格で実現できる

Page 5: 20120319 aws meister-reloaded-s3

S3とは?

S3はWeb時代のストレージ

ユーザはデータを安全にどこからでも保存可能

AWSの主力サービスの1つ。2006年から開始

開発者が“Webスケール”なコンピューティングを可能にするよう設計された

高いスケーラビリティ

高い信頼性・堅牢性

セキュア

高速

低価格

Page 6: 20120319 aws meister-reloaded-s3

Amazon S3は、データ保存の基盤

東京リージョン

3か所以上で 自動複製

S3

バケット

高い耐久性で データ失わない:

99.999999999%

世界中の7拠点から選択

データセンターA

データ置くだけ。インフラ、電源、

気にしない。 容量無制限。

データセンターB

データセンターC

ファイル(バイナリ、 テキスト、画像、動画)

保存するデータは、自動で暗号化する

ことも可能

安価な従量課金

例:1GB/月 – 約10円

Page 7: 20120319 aws meister-reloaded-s3

S3の用語

バケット オブジェクト置場。最大100/アカウント。名前がユニークな必

要あり

オブジェクト S3に置くファイルでURLによるアドレスが付与。バケット内に

は無制限にオブジェクトを置くことが可能。1オブジェクトのサイズは5TBまで

キー オブジェクト毎に付与される一意なキー

ACL

アクセスコントロールリスト

Page 8: 20120319 aws meister-reloaded-s3

S3のネームスペース

Amazon S3

バケット バケット

オブジェクト オブジェクト オブジェクト オブジェクト

バケット

オブジェクト オブジェクト

Page 9: 20120319 aws meister-reloaded-s3

S3 –実例にあてはめてみる -

Amazon S3

mculver-images media.mydomain.com

Beach.jpg img1.jpg img2.jpg 2009/maui/sun.jpg

public.blueorigin.com

Installer.msi img/pic1.jpg

Page 10: 20120319 aws meister-reloaded-s3

S3のコンセプト

Durable(堅牢であること)

Available (いつでも利用可能であること)

Scalable (スケールすること)

Secure (安全であること)

Fast (高速に動くこと)

Simple (シンプルに使えること)

Cost Effective (低コストであること)

Page 11: 20120319 aws meister-reloaded-s3

Durable(堅牢であること)

ファイルを失わない設計

データを3箇所以上にレプリケーション

障害検知とデータ修復

2006年サービス開始以来データロストなし

99.999999999%の堅牢性を誇る

3つ以上同時にDCが消失しない限りデータを失わない

Page 12: 20120319 aws meister-reloaded-s3

Available(常に利用可能なこと)

常に利用可能なように設計

99.9%可用性SLA、実際はほぼ100%

計画停止無し

全世界からどの地域でもインターネット経由で利用可能

異なる8つのリージョンから選択

Page 13: 20120319 aws meister-reloaded-s3

Scalable(スケールすること)

論理的には無限にスケールする

どれだけのファイルでも保存可能

1バイトから1PBまでいくらでも保存可能

1つのファイルサイズは最大5TBまで

Page 14: 20120319 aws meister-reloaded-s3

Secure(安全であること)

全ての通信はSSL暗号化

認証・認可機能を持つ

ACLベース/ポリシーベース

ユーザアクセスコントロール

暗号化機能を持つ

サーバサイド/クライアントサイド暗号化

ログ機能

認定・認証の取得

Page 15: 20120319 aws meister-reloaded-s3

Fast(高速であること)

ピーク時最大50万RPS

常に安定したレイテンシ

世界8か所にリージョン展開

最も近い場所を利用可能

専用線で直結も可能

Page 16: 20120319 aws meister-reloaded-s3

Simple(シンプルに使えること)

ファイルのPUT/GET/DELETE/LIST

これだけ。とってもシンプル

データサイズも数も気にしなくてよい

サードパーティツールでFTPライクに利用

SDKで様々な言語からすぐに利用可能

PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, file); PutObjectResult result = this.client.putObject(putObjectRequest);

Page 17: 20120319 aws meister-reloaded-s3

Cost Effective(低コストなこと)

従量課金で使った分だけお支払い

初期費用もいらない

コストは下げ続けている

2012年2月に13%値下げ

ストレージ 旧 (GB / 月) 新 (GB / 月)

最初の1TB $0.150 $0.130

次の49TB

$0.135

$0.115

次の450TB $0.120

$0.100

次の500TB $0.105 $0.095

次の4000TB $0.090 $0.085

5000TB以上 $0.065 $0.060

Page 18: 20120319 aws meister-reloaded-s3

S3のコンセプト

Durable(堅牢であること)

Available (いつでも利用可能であること)

Scalable (スケールすること)

Secure (安全であること)

Fast (高速に動くこと)

Simple (シンプルに使えること)

Cost Effective (低コストであること)

Page 19: 20120319 aws meister-reloaded-s3

S3の機能

マルチパートアップロード

Webサイト機能

バージョニング

サーバアクセスログ

S3セキュリティ機能

データの暗号化

オブジェクトの期限付き保存

Page 20: 20120319 aws meister-reloaded-s3

S3マルチパートアップロード

巨大なオブジェクトを複数のチャンクに分割してアップロード

各チャンク < 5GB

チャンクがアップロードされたら、 単一オブジェクトに結合

• 自動で結合する場合

• 自分で分割→結合

Page 21: 20120319 aws meister-reloaded-s3

S3 Webサイト機能

静的なWebサイトのホスティングをS3で!

ファイルをアップロードして、Website機能をON!

Page 22: 20120319 aws meister-reloaded-s3

S3バージョニング 全てのオブジェクトのバージョン管理下におき保存、検索、リストアが可能。バージョニング中はオブジェクトは削除されない。

S3でよくみる光景はユーザアクションによるデータ消失。 こういったアプリケーションエラーから重要なデータを保護する。ただし課金はバージョニングの分、かかる

Page 23: 20120319 aws meister-reloaded-s3

S3サーバアクセスロギング

S3バケットへS3のアクセスログを保存

デフォルトでは出力しない

API/SDKで設定可能

アクセスログのデリバリではチャージしていない

ログの保存ではチャージ。ただしいつでも削除可能

アクセスログへのアクセスについては若干のチャージ

Page 24: 20120319 aws meister-reloaded-s3

S3の認証機構

S3を含む全AWSサービスでセキュリティは最優先事項

認証のないアクセスからはデータは確実に保護

オブジェクトは全てフルコントロール可能

特定ユーザに対して権限を与えることも勿論可能

How?

AWS Identity and Access Management(IAM) ポリシー

バケットポリシー

ACL

Page 25: 20120319 aws meister-reloaded-s3

AWS IAM

アカウント内で複数ユーザを作成し、セキュリティクレデンシャルや権限を付与する事が可能

S3のバケットにオブジェクトのPUT/LIST/GETなど

詳細は第4回セミナーにて!

IAMで出来る事:

ユーザレベルでのコントロール

• S3に対してのお客様要件にあわせた操作の制御

アクセスポリシー言語を記述する

JSON format

Page 26: 20120319 aws meister-reloaded-s3

S3バケットポリシー

S3バケットレベルのポリシーベースのコントロール

バケットオーナーだけが適用可能

バケットレベルでのAllow/Deny

バケット内のオブジェクトの権限のDeny

バケットオーナーがオブジェクトオーナーだった場合のみオブジェクトに適切な権限を与える

アクセスポリシー言語を記述する

JSON format

Page 27: 20120319 aws meister-reloaded-s3

バケットポリシーの一例

例:

ユーザ(1-22-333-4444, 3-55-678-9100)に“mybucket” (arn:aws:s3:::mybucket/*“,)というバケットに対してGETリクエストの発行を許可

{ "Version":"2008-10-17",

"Id":"aaaa-bbbb-cccc-dddd",

"Statement" : [

{ "Effect":"Allow",

"Sid":"1",

"Principal" : {

"AWS":["1-22-333-4444","3-55-678-9100"]

},

"Action":["s3:GetObject*"],

"Resource":"arn:aws:s3:::mybucket/*",

}

]

}

Page 28: 20120319 aws meister-reloaded-s3

S3 Access Control List

バケットからオブジェクトへのコントロール

バケットのACLをオブジェクトは継承しない

作成と適用はいつでも可能

100個ACLは作成可能: Owner

Email

Any AWS account

Anyone

パーミッション: READ – Object or bucket

WRITE – Create, overwrite, delete objects in bucket

READ_ACP – Read ACL for bucket or object

WRITE_ACP – Overwrite ACL for bucket or object

FULL_CONTROL – All of the above

Page 29: 20120319 aws meister-reloaded-s3

データの暗号化

サーバサイド暗号化

クライアントサイド暗号化

Page 30: 20120319 aws meister-reloaded-s3

サーバサイド暗号化

AmazonS3Client client = new AmazonS3Client(credentials); client.setEndpoint("s3-ap-northeast-1.amazonaws.com"); PutObjectRequest putRequest = new PutObjectRequest( "shot6jp", “S3に置くファイル名", new File(“実際のファイル")); ObjectMetadata objectMetadata = new ObjectMetadata(); objectMetadata.setServerSideEncryption( ObjectMetadata.AES_256_SERVER_SIDE_ENCRYPTION); putRequest.setMetadata(objectMetadata); PutObjectResult result = client.putObject(putRequest);

• マネージメントコンソールから実施する • GUIツールで実施する • コードで実施する

Page 31: 20120319 aws meister-reloaded-s3

クライアントサイド暗号化

KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA"); generator.initialize(512); KeyPair keyPair = generator.generateKeyPair(); EncryptionMaterials encryptionMaterials = new EncryptionMaterials(keyPair); AmazonS3EncryptionClient client = new AmazonS3EncryptionClient(credentials, encryptionMaterials); client.setEndpoint("s3-ap-northeast-1.amazonaws.com"); PutObjectResult ret = client.putObject( “バケット名”, “S3上のファイル名”, new File(“現状ファイル"));

• マネージメントコンソールから実施する • GUIツールで実施する • コードで実施する

Page 32: 20120319 aws meister-reloaded-s3

オブジェクトの期限付き保存

バケット単位でオブジェクトの生存期間を指定可能

Prefix単位

日付で指定可能

http://bit.ly/A9dE0b

Page 33: 20120319 aws meister-reloaded-s3

S3を上手に使うには?

Page 34: 20120319 aws meister-reloaded-s3

最近AWSブログを書きました。

Page 35: 20120319 aws meister-reloaded-s3

S3をうまく使うコツ(パフォーマンス)

大前提:ほとんどのケースでは普通に使ってもらえばいいだけ。

大量にオブジェクトを保存したり、取得したりする場合のみコツが必要

キー名はとても大事。キー名の先頭を散らす

• 先頭2、3をハッシュ値にするだけで十分スケールする

S3のパーティション分割

当然バケットが違えば更にスケール

Page 36: 20120319 aws meister-reloaded-s3

S3をうまく使うコツ

秒間数百以上のPUTをする場合には、エラーコードに注意

503が返ってきたらクライアント側でも送信側でも少し軽減する(エクスポネンシャルバックオフ)

Page 37: 20120319 aws meister-reloaded-s3

S3のよくある利用例

コンテンツの保存と配信 メディア・エンターテイメントのコンテンツ

ソフトウェアの配信

大規模データ分析のストレージ・データオリジナル

オンラインストレージ

アプリケーションそのもののストレージ

バックアップやディザスタリカバリ。低価格かつ安心のテープの代替

サーバのバックアップ

個人的なバックアップ

• 複数端末での共有

Page 38: 20120319 aws meister-reloaded-s3

5000万ユーザーを持つファイル共有サービス Amazon S3の上で構築 S3は、99.999999999%の耐久性

Page 39: 20120319 aws meister-reloaded-s3

European Space Agency

データ配信用の衛星写真およびデータをS3に保存

ESRIN: center of the European Space Agency for the Earth Observation Programs (*)

地球の衛星写真を生成し保存

EUの政府団体やNGOなどのデータ配信の元

(*) Source : http://www.esa.int/esaMI/ESRIN_SITE/index.html

Page 40: 20120319 aws meister-reloaded-s3

Oracle Secure Cloud BackupでDBのデータもS3

へ保存

Page 41: 20120319 aws meister-reloaded-s3
Page 42: 20120319 aws meister-reloaded-s3

Amazon.comの事例

テープバックアップからS3へ切替

Page 43: 20120319 aws meister-reloaded-s3

Amazon.comの事例

テープバックアップからS3へ切替

高速なバックアップ・リカバリ 以前:テープでは10-15時間

現在:S3で2.5時間で3.8TBリカバリ可能

貴重な人材を別のところで活用

テープは壊れるのと、維持するのが高価

Page 44: 20120319 aws meister-reloaded-s3

AWS自体もユーザ

AWSサービスの中心にS3がある

S3

EC2 EBS

EMR Dynamo DB

… …

… …

Page 45: 20120319 aws meister-reloaded-s3

S3のサードパーティツール

様々なサードパーティツールが存在する

自分が使っているものを紹介

CloudBerry

TND

Page 46: 20120319 aws meister-reloaded-s3

S3を通じて実現したいこと

お客様がデータを安心して預けられる、サービスの提供

S3上のデータは常に安全に保管

S3内データはいつでも取得可能

S3内データを常に保存可能

S3内へのデータアクセスは完璧にコントロールできる

データ保存が低価格で実現できる

Page 47: 20120319 aws meister-reloaded-s3

参考文献

Amazon S3

http://aws.amazon.com/jp/s3/

Amazon S3 Getting Started Guide

http://docs.amazonwebservices.com/AmazonS3/latest/gsg/

Amazon S3 Developer Guide

http://docs.amazonwebservices.com/AmazonS3/latest/dev/

Amazon Web Services Japan blog

http://aws.typepad.com/aws_japan/