LoginSignup
32
34

More than 5 years have passed since last update.

AWSソリューションアーキテクトへの道 -Amazon S3のポイントまとめ-

Last updated at Posted at 2014-06-16

勉強用メモ。

Amazon S3まとめ

概要

安価かつ高い耐久性を持つオンラインストレージサービス
ピーク時は秒間150万アクセス。

  • 容量無制限
  • インフラ、電源気にしないでOK
  • 保存するデータは自動で暗号化することも可能
  • 高い耐久性(99.999999999%)
  • 安価な従課金(例:1GB/月)

データ転送

全てのデータ転送(IN)は課金されない
データ転送(OUT)に課金される。使う容量が増えれば増えるだけ価格はディスカウントされる。
AWSリージョン間データ転送またはCloudFrontでのデータ転送は$0.090/GB

特徴

  • 高いスケーラビリティ
  • 高い信頼性、堅牢性
  • セキュア
  • 高速
  • 低価格

主な用途

  • コンテンツの保存と配信
  • 大規模データ分析のストレージ・データオリジナル
  • バックアップ、ディザスタリカバリ

用語

  • バケット
     オブジェクトの保存場所。各アカウントで最大100個まで。名前がユニークな必要有り。
  • オブジェクト
     AmazonS3 に置くファイルでURLが付与される。バケット内には、無制限にオブジェクトを置くことが可能。1オブジェクトのサイズは5TBまで。
  • キー
     オブジェクト毎に付与されるユニークなキー
  • ACL(アクセスコントロールリスト)
     バケットとオブジェクトへのアクセスを管理できる。

使い方

  • ファイルのPUT/GET/DELETE/LIST
  • サードパーティツールでFTPライクに利用
  • SDKで様々な言語から利用可能

Amazon S3の機能

  • マルチパートアップロード
     巨大なオブジェクトを複数のチャンク(ある程度のまとまり)に分割してアップロード
     各チャンクは5GB以下
     チャンクがアップロードされたら単一オブジェクトに結合

  • Webサイト機能
     静的なWebサイトのホスティングをS3で実現。ファイルをアップロードしてWebサイト機能を有効にするだけ。
     データが消える心配なし
     スケールするWebサーバが構築の必要なくすぐ使える
     可用性も非常に高くWebサーバのマネージなど必要ない

  • バージョニング
     ユーザーによる誤操作による削除防止に有効
     オブジェクトをバージョン管理下に置く
      保存、検索、リストアが可能。バージョニング中はオブジェクトは削除されない
      課金はバージョニング分かかる

  • サーバアクセスログ
     AmazonS3バケットへのアクセスログを保存。デフォルトでは出力しない
     API/SDKで設定可能
     アクセスログのデリバリでは課金なし。アクセスログの保存で課金。ただしいつでも削除可能。
     アクセスログへのアクセスについては若干の課金あり。

  • S3セキュリティ機能
     AmazonS3の認証機構
     認証のないアクセスからはデータは確実に保護
     オブジェクトは全てフルコントロール可能
     特定ユーザーに対して権限を与えることももちろん可能

AWS Identity and Access Management (IAM)
 アカウント内で複数ユーザーを作成し、セキュリティクレデンシャルや権限を付与することが可能
 IAMはIAMユーザーレベルでのコントロールが可能
 アクセスポリシー言語を記述可能

AmazonS3バケットポリシー
 AmazonS3バケットレベルのポリシーベースコントロール
 バケットオーナーだけが適用可能
  バケットレベルでのAllow/Deny
  バケット内のオブジェクトの権限のDeny
  バケットオーナーがオブジェクトオーナーだった場合のみオブジェクトに適切な権限を与える
 アクセスポリシー言語を記述可能
  JSON Format

AmazonS3 Access Control List
 バケットからオブジェクトへのコントロール
 バケットのACLをオブジェクトは継承しない
 ACLは100個作成可能
  Owner
  Email
  Any AWS account
  Anyone
 パーミッション
  READ
  WRITE
  READ_ACP
  WRITE_ACP
  FULL_CONTROL

  • データの暗号化
    サーバサイド暗号化
     マネージメントコンソールから実行する
     GUIツールで実施する
     コードで実施する

 クライアントサイド暗号化
  GUIツールで実施する
  コードで実施する

  • オブジェクトの期限付き保存
     バケット単位でオブジェクトの生存期間を指定可能
     Prefix単位
     期間・日付で指定可能

  • CORS対応
     CORS(Cross Origin Resource Sharing)
     クロスドメインでリソースの取得が可能
     より簡単にリソースの共有が可能

  • Webページリダイレクト
     リダイレクトルールを渡して条件を満たす場合のみリダイレクト

  • S3-Glacier連携機能
    Amazon Glacier ・・・ きわめて低コストのストレージサービス。ストレージのセキュリティ、耐久性、柔軟性を特徴としており、
    データのバックアップやアーカイブに最適。Amazon Glacier では、1か月あたり 0.01 USD/GBという低額で安心してデータを保管可能。
    Amazon Glacier を利用すると、ストレージの運用と規模拡大/縮小に伴う管理作業を AWS に任せることができるので、
    容量計画、ハードウェア準備、データレプリケーション、ハードウェア障害の検出と修復、時間のかかるハードウェア移行を解決。

 S3に格納されたファイルを自動的にGlacierに退避
 AWSで安価な階層化ストレージを実現
 ルールベースで一定期間経過したS3上のファイルを自動的にGlacier退避
 インデックス情報はS3で管理
 簡単な操作でGlacierに退避されたファイルをS3上に取り出し可能(3-5時間)
 Glacierに退避されると格納コストが1/10

上手く利用するポイント

  • パフォーマンス
     ネーミングルールが大事
     先頭部分にランダム文字列を入れる
     オブジェクトをハッシュ名にする
     エポック秒のリバースを追加する
     ランダム文字列はLISTと相性が悪い
     LISTしたい=グルーピングしたい形で保存

 大量のPUTをする場合は、エラーコードに注意
 503が帰ってきたらクライアント側でも送信側でも少し軽減する(エクスポネンシャルバックオフ)

 できるだけマルチパートアップロード推奨
 AWSCLIなど最近のツールでは自動的にマルチパートアップロードに切り替わります
 各SDKにもマルチパートアップロード機能ついております
 マルチパートアップロードでのサイズ設定はバランスの見極めが大事
 小さいチャンクサイズでの大量アップロードはコネクションオーバーヘッドで利点が損なわれる
 巨大すぎるファイルサイズでもマルチパートアップロードの利点とならない
 帯域が太い場合は25-50MBチャンクくらいを最初の設定値とする
 モバイルやより帯域に懸念がある場合、10MB程度を最初の設定値とする

レンジGETによるGETの高速化
 レンジGETを利用すれば、マルチスレッド環境ではより高速にダウンロード可能
 CloudFrontはレンジGETをサポート
 マルチパートでのアップロード時と同じチャンクサイズを利用する

マルチパートアップロードでのHTTPS利用時
 ファイルの暗号化はCPUに負荷がかかるためCPUインテンシブ
 AmazonS3では、AES-256を推奨。デフォルトも同じ値
 Intel AES-NIハードウェアを利用すれば暗号化パフォーマンス向上が見込める

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

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

   AmazonS3上のデータは常に安全に保管
   AmazonS3内データはいつでも取得可能
   AmazonS3内データを常に保存可能
   AmazonS3内へのデータアクセスは完璧にコントロールできる
   データ保存が低価格で実現できる

参考資料:
http://aws.amazon.com/jp/documentation/
http://adsj-contents.s3.amazonaws.com/meister-blackbelt/AWS_BlackBeltTechWebinar2014-S3-public.pdf

32
34
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32
34