• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
AWS Black Belt Techシリーズ Amazon Simple Storage Service (Amazon S3)
 

AWS Black Belt Techシリーズ Amazon Simple Storage Service (Amazon S3)

on

  • 2,633 views

AWS Black Belt Tech Webinar 2014

AWS Black Belt Tech Webinar 2014
(旧マイスターシリーズ)

Amazon Simple Storage Service (Amazon S3)

Statistics

Views

Total Views
2,633
Views on SlideShare
2,616
Embed Views
17

Actions

Likes
10
Downloads
54
Comments
0

4 Embeds 17

https://cybozulive.com 12
http://www.slideee.com 2
http://localhost 2
http://s.deeeki.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    AWS Black Belt Techシリーズ Amazon Simple Storage Service (Amazon S3) AWS Black Belt Techシリーズ Amazon Simple Storage Service (Amazon S3) Presentation Transcript

    • Amazon Simple Storage Service AWS  Black  Belt  Tech  Webinar  2014  (旧マイスターシリーズ) ⼤大⾕谷  晋平
    • ⾃自⼰己紹介 •  名前:⼤大⾕谷  晋平 – ohtani@amazon.co.jp – @shot6 •  ソリューションアーキテクト –  エマージングソリューション部 •  好きなAWSのサービス:  S3
    • Agenda •  Amazonがもつストレージサービス •  Amazon  Simple  Storage  Service(S3)とは? •  Amazon  S3の機能 •  Amazon  S3のアドバンスTips •  まとめ
    • AWSストレージサービスのゴール •  お客様がデータを安⼼心して預けられる、サー ビスの提供 – データが安全に保管されている – データが取りたい時に常に取得可能 – データを保存したい時に常に保存可能 – データが誰がいつアクセス出来るかを完璧に コントロールできる – データ保存が低価格で実現できる
    • AWSストレージサービス S3 安価かつ⾼高い耐久性を持つオンライン ストレージサービス Glacier 超安価かつ⾼高い耐久性を持つコールド ストレージサービス StorageGateway オンプレミス環境と連携したバックアッ プ&ストレージサービス 仮想サーバ(Amazon  EC2)にマウント できるディスクサービス
    • Amazon  S3とは? •  Amazon  S3はWeb時代のストレージ •  ユーザはデータを安全にどこからでも保存可能 •  AWSの主⼒力力サービスの1つ。2006年年から開始 •  開発者が“Webスケール”なコンピューティングを可能にする よう設計された –  ⾼高いスケーラビリティ –  ⾼高い信頼性・堅牢牢性 –  セキュア –  ⾼高速 –  低価格 •  最近の値下げでクラウドストレージの新たな時代へ
    • Trillions Of  Unique  Customer  Objects
    • 1.5  Million+ Peak  Transactions  Per  Second
    • S3の概要 東京リージョン 3か所以上で ⾃自動複製 バケット ⾼高い耐久性で データ失わない: 99.999999999% 世界中の8拠点(リージョン) から選択 データセンターA データ置くだけ。 インフラ、電源、 気にしない。 容量量無制限。 データセンターB データセンターC ファイル(バイナリ、テキスト、画像、動画) 保存するデータは、 ⾃自動で暗号化する ことも可能 安価な従量量課⾦金金 例例:1GB/⽉月  –  約3円
    • S3の価格(東京リージョン) •  ストレージ価格、⼤大幅値下げ!⾃自動適⽤用です。 スタンダード 低冗⻑⾧長化※ 最初の1TB/⽉月 $0.1000/GB $0.080/GB 次の49TB/⽉月 $0.0850/GB $0.068/GB 次の450TB/⽉月 $0.0750/GB $0.060/GB 次の500TB/⽉月 $0.0700/GB $0.056/GB 次の4PB/⽉月 $0.0650/GB $0.052/GB 次の5PB/⽉月 $0.0600/GB $0.044/GB スタンダード 低冗⻑⾧長化※ $0.0330/GB $0.0264/GB $0.0324/GB $0.0259/GB $0.0319/GB $0.0255/GB $0.0313/GB $0.0250/GB $0.0308/GB $0.0246/GB $0.0302/GB $0.0242/GB 旧価格 新価格(2014年4月から) ※低冗⻑⾧長化ストレージ(RRS)     2拠点への複製により堅牢牢性が99.99%
    • S3の価格(東京リージョン) リクエストタイプ 価格 PUT,COPY,POST,LISTリク エスト $0.0047  1,000リクエス トあたり 削除リクエスト Free GETおよびその他リクエス ト $0.0037  10,000リクエ ストあたり 転送⽅方向 価格 IN 全てのデータ転送「IN」 $0.000/GB OUT 最初の1GB/⽉月 $0.000/GB 10TBまで/⽉月 $0.201/GB 次の40TB/⽉月 $0.158/GB 次の100TB/⽉月 $0.137/GB 次の350TB/⽉月 $0.127/GB 350TB/⽉月以上 お問い合わせ "   リクエスト料料⾦金金"   データ転送 "   AWSリージョン間データ転送またはCloudFrontでのデータ転送 –  $0.090  /  GB
    • Amazon  S3のよくある利利⽤用例例 •  コンテンツの保存と配信 –  メディア・エンターテイメントのコンテンツ –  ソフトウェアの配信 •  ⼤大規模データ分析のストレージ・データオリジナル –  オンラインストレージ –  アプリケーションそのもののストレージ •  バックアップやディザスタリカバリ –  各サーバのバックアップ –  データベースのバックアップ –  個⼈人的なバックアップ •  複数端末での共有
    • AWSの各サービス⾃自体もユーザ •  AWSサービスの中⼼心にS3がある S3 EC2 EBS EMR Dyna mo DB … … ……
    • Amazon  S3の⽤用語 •  バケット –  オブジェクトの保存場所。各アカウントで最⼤大100個まで。名前が ユニークな必要あり •  オブジェクト –  Amazon  S3に置くファイルでURLが付与される。バケット内には 無制限にオブジェクトを置くことが可能。 –  1オブジェクトのサイズは5TBまで •  キー –  オブジェクト毎に付与される⼀一意なキー •  ACL –  アクセスコントロールリスト
    • S3の構成 Amazon  S3 バケット バケット オブジェクト オブジェクト オブジェクトオブジェクト バケット オブジェクト オブジェクト
    • 実際の構成例例 Amazon S3 mculver-images media.mydomain.com Beach.jpg img1.jpg img2.jpg2009/maui/sun.jpg public.blueorigin.com Installer.msi img/pic1.jpg
    • Amazon  S3の機能
    • S3の基本的な使い⽅方 •  ファイルのPUT/GET/DELETE/LIST –  これだけ。とってもシンプル –  データサイズも数も気にしなくてよい •  サードパーティツールでFTPライクに利利⽤用 •  SDKで様々な⾔言語から、直感的に利利⽤用可能 PutObjectRequest  putObjectRequest  =          new  PutObjectRequest(bucketName,  key,  file); PutObjectResult  result  =  this.client.putObject(putObjectRequest);
    • Amazon  S3の機能 •  マルチパートアップロード •  Webサイト機能 •  バージョニング •  サーバアクセスログ •  S3セキュリティ機能 •  データの暗号化 •  オブジェクトの期限付き保存 •  CORS対応 •  Webページリダイレクト •  S3-‐‑‒Glacier連携機能
    • Amazon  S3マルチパートアップロード •  巨⼤大なオブジェクトを複数のチャンク に分割してアップロード –  各チャンク  <  5GB –  チャンクがアップロードされたら、  単 ⼀一オブジェクトに結合 •  各SDKにはマルチパートアップ ロード機能がついているため、 すぐに利利⽤用可能 •  ⾃自動で結合する場合 •  ⾃自分で分割→結合
    • Amazon  S3  Webサイト機能 •  静的なWebサイトのホスティングをS3で! –  ファイルをアップロードして、Website機能をON!
    • Amazon  S3  Webサイト機能の嬉しい点 •  データが消える⼼心配がない •  スケールするWebサーバが構築の必要なくすぐ に使える •  可⽤用性も⾮非常に⾼高く、Webサーバのマネージな どが必要ない
    • Amazon  S3バージョニング •  ユーザさんによる誤操作による削除防⽌止に有効 •  オブジェクトをバージョン管理理下におく –  保存、検索索、リストアが可能。バージョニング中はオブジェク トは削除されない。 –  課⾦金金はバージョニング分かかる
    • Amazon  S3サーバアクセスロギング •  Amazon  S3バケットへアクセスログを保存 –  デフォルトでは出⼒力力しない •  API/SDKで設定可能 •  アクセスログのデリバリではチャージしない –  ログの保存ではチャージ。ただしいつでも削除可能 –  アクセスログへのアクセスについては若若⼲干のチャージ
    • Amazon  S3の認証機構 •  Amazon  S3を含む全AWSサービスでセキュリティは最 優先事項 •  認証のないアクセスからはデータは確実に保護 •  オブジェクトは全てフルコントロール可能 •  特定ユーザに対して権限を与えることも勿論論可能 •  How? –  AWS  Identity  and  Access  Management(IAM)  ポリシー –  バケットポリシー –  ACL
    • AWS  Identity  and  Access  Management  (IAM) •  アカウント内で複数ユーザを作成し、セキュリ ティクレデンシャルや権限を付与する事が可能 –  S3のバケットにオブジェクトのPUT/LIST/GETなど   •  IAMで出来る事: –  IAMユーザレベルでのコントロールお客様要件にあわせた操作 の制御 •  アクセスポリシー⾔言語を記述する –  JSON  format
    • Amazon  S3バケットポリシー •  Amazon  S3バケットレベルのポリシーベースのコント ロール •  バケットオーナーだけが適⽤用可能 –  バケットレベルでのAllow/Deny –  バケット内のオブジェクトの権限のDeny –  バケットオーナーがオブジェクトオーナーだった場合のみオブ ジェクトに適切切な権限を与える •  アクセスポリシー⾔言語を記述する –  JSON  format
    • バケットポリシーの⼀一例例 •  ユーザ(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/*", } ] }
    • Amazon  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
    • データの暗号化 •  サーバサイド暗号化 •  クライアントサイド暗号化
    • サーバサイド暗号化 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ツールで実施する •  コードで実施する
    • クライアントサイド暗号化 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ツールで実施する •  コードで実施する
    • オブジェクトの期限付き保存 •  バケット単位でオブジェクトの⽣生存 期間を指定可能 – Prefix単位 – 期間・⽇日付で指定可能 http://bit.ly/A9dE0b
    • CORSサポート •  CORS(Cross  Origin  Resource  Sharing) – クロスドメインでリソース取得が可能 – より簡単にリソースの共有が可能に WebサイトAバケット データバケット WebサイトAがオ リジンならデータ をGETさせますよ ブラウザ
    • Webページリダイレクト •  Amazon  S3でWebページのリダイレ クトが可能になりました
    • Webページリダイレクト •  リダイレクトルールを渡して、条件を満たす場 合のみリダイレクト –  キーのプレフィックスを⼀一部変更更 –  削除したディレクトリから別ページへ –  HTTPエラーコードで <RoutingRules>    <RoutingRule>        <Condition>            <KeyPrefixEquals>images/</KeyPrefixEquals>        </Condition>        <Redirect>            <ReplaceKeyWith>index.html</ReplaceKeyWith>        </Redirect>    </RoutingRule> </RoutingRules> imagesにマッチしたら、 index.htmlにリダイレクト
    • S3-‐‑‒Glacier連携機能 •  S3に格納されたファイルを⾃自動的にGlacierに退避 •  AWSで安価な階層化ストレージを実現 –  ルールベースで⼀一定期間経過したS3上のファイルを⾃自動的にGlacier退避 –  インデックス情報はS3で管理理 –  簡単な操作でGlacierに退避されたファイルをS3上に取出可能  (3-‐‑‒5時間) –  Glacierに退避されると格納コストが1/10に Upload ⾃自動 Archive メタデータ Bucket (ルール設定)
    • S3アドバンスドTips
    • Amazon  S3をうまく使うコツ(パフォーマンス) •  ⼤大前提:ほとんどのケースでは普通に使ってもらえ ばいいだけ。 •  定常的に100RPS以上出す場合にコツが必要 –  ワークロードとしては2つ •  GET/PUT/POSTなどが混在している場合  →  ネーミング(後述) •  GETのみの場合  →  CloudFrontを検討しましょう •  ネーミングルールが⼤大事 –  バケット名/ディレクトリ名/オブジェクト名で⼀一意なキー名 –  先頭部分で差異異があればあるほどパーティションが別になる
    • Amazon  S3をうまく使うコツ(パフォーマンス) •  先頭部分にランダム⽂文字列列を⼊入れる
    • その他のテクニック •  オブジェクトをハッシュ名にする –  オリジナル名をメタデータとしてDynamoDBなどに保管する •  “deadmau5_̲mix.mp3”  à   0aa316fb000eae52921aab1b4697424958a53ad9 –  短いハッシュでファイル名に追記する •  0aa3-‐‑‒deadmau5_̲mix.mp3 •  エポック秒のリバースを追加する –  5321354831-‐‑‒deadmau5_̲mix.mp3
    • LISTとの相性 •  ランダム⽂文字列列はLISTと相性が悪い •  LISTしたい=グルーピングしたい形で保存 –  バケットで出来ればベスト –  ディレクトリレベルでも問題なし –  あとはPrefixパラメータ指定でLISTする •  aws  s3api  list-‐‑‒objects  -‐‑‒-‐‑‒bucket  バケット名  -‐‑‒-‐‑‒prefix  指定prefix
    • ⼤大量量のPUTをする場合 •  秒間数百以上のPUTをする場合には、エラー コードに注意 –  503が返ってきたらクライアント側でも送信側で も少し軽減する(エクスポネンシャルバックオフ)
    • マルチパートアップロードの推奨 •  出来るだけマルチパートアップロードを利利⽤用しま しょう •  AWS  CLIなど最近のツールでは⾃自動的にマルチ パートアップロードに切切り替わります •  各SDKにもマルチパートアップロード機能ついて おります
    • マルチパートアップロードでの適切切なサイズ設定 •  バランスの⾒見見極めが⼤大事です –  ⼩小さいチャンクサイズでの⼤大量量ファイルアップロードはコネク ションオーバヘッドで利利点が損なわれる可能性あり –  巨⼤大すぎるファイルサイズでもマルチパートアップロードの利利 点となりません •  帯域が太い場合は25-‐‑‒50MBチャンクくらいを最 初の設定値としましょう •  モバイルやより帯域に懸念念がある場合、10MB 程度度を最初の設定値としましょう
    • レンジGETによるGETの⾼高速化 •  レンジGETを利利⽤用すれば、マルチスレッド環境 ではより⾼高速にダウンロード可能です •  CloudFrontはレンジGETをサポートしています •  マルチパートでのアップロード時と同じチャン クサイズを利利⽤用する
    • マルチパートアップロードでのHTTPS利利⽤用時 •  ファイルの暗号化はCPUに負荷がかかるため、CPU インテンシブ •  Amazon  S3では  AES-‐‑‒256を推奨。 –  デフォルトもAES-‐‑‒256 •  Intel  AES-‐‑‒NIハードウェアを利利⽤用すれば、暗号化の パフォーマンス向上が⾒見見込める –  EC2インスタンスでもサポートしています(特にm3/c3など) –  http://aws.amazon.com/ec2/instance-‐‑‒types/  
    • Amazon  S3を通じて実現したいこと •  お客様がデータを安⼼心して預けられる、サービス の提供 – Amazon  S3上のデータは常に安全に保管 – Amazon  S3内データはいつでも取得可能 – Amazon  S3内データを常に保存可能 – Amazon  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/
    • ご参加ありがとうございました。