AMAZON S3のBlackBeltをまとめました【PART.1】

2018年7月31日にユーチューブ公開されているS3のBlackBeltを見ながらまとめました。AWSはよく考えられていると賛同は出来るけど、正直なところ、S3複雑過ぎ。たかがファイル保管で何でこんなに選択肢が広がってんねん(笑)

S3は、ブロックストレージ(SCSI)でもファイルストレージ(SMB/NFS)でもなく、オブジェクトストレージ(http/https)です。KeyValue型のような感じです。プリンシパル別に以下4種のアクセス方法があります。APIに慣れていないと4の概念が頭に浸透しにくいのできをつけてください。

  1. AWS SDK(アプリケーション開発)
  2. AWS CLI(コマンド・シェル)
  3. マネージメントコンソールや3rdパーティツール(手動・人の手)
  4. HTTPS AWS SDK(アプリケーションや他のAWSサービス。AMI , EBS , RDS , CloudWatch , Athena , CodeDeploy , Macie , Glacierなど)

S3の基本用語

バケット

オブジェクトの保存場所です。1AWSアカウントで100個まで、上限緩和申請可能です。バケット名はグローバルでユニークになります。

オブジェクト

ファイルそのものです。格納するとURLが与えられます。1つのPUTでアップロード可能なオブジェクトは最大5TBまで。オブジェクト数は無制限です。

キー

オブジェクトの格納URLパスになります。「バケット+キー+バージョン」は必ず一意です。

メタデータ

オブジェクトに付随する属性情報です。

リージョン

S3のデータセンターのロケーション(立地)です。プロジェクトやアプリケーションで同じリージョンにすると有利です。

S3の特徴

  • 3箇所のアベイラビリティゾーン(AZ)にデータを格納
  • 1つのAZは最大で8つのデータセンターで構成
  • 1つのデータセンターのダウン、または、1つのAZのダウンはS3としての可用性に影響しない

99.999999999%(イレブンナイン)の可用性を誇ります。

S3のユースケース大別

  1. ファイルサーバ
  2. WEBサーバ
  3. データの取り込み・加工・活用の際に使う

1.ファイルサーバ

オンプレの場合

バックアップストレージの容量限界、保守期限切れに対するソリューションになります。テープライブラリやNASの代わりなど、S3をバックアップストレージに使います。容量無制限で使えます。ツール(バックアップソフトなど)やAWS CLIによるコピーやsyncも可能です。

AWS上の場合

EC2でEBSを使っていれば、EBSのスナップショットをS3に保存出来ます。AMIをS3に置くことも出来ます。また、S3でEBSのライフサイクルマネジメント(世代スケジュール管理)が出来ます。

マイグレーション時のS3応用例、専用線DirectConnectを使う

AWS SMS(Server Migration Service)を使ってVMwareやHyper-Vなどのオンプレ仮想マシンのイメージ保管先をS3バケットを指定します。マイグレーション時の保管場所に使います。AWS Direct Connect(専用線)を使って、オンプレのゲートウェイとAWSのVPCをプライベートネットワークとしてつなぎます。

ただし、VPC内でプロキシサーバーを立てて、VPCエンドポイントを経由してS3につなぐことになり、s3.amazon.comのDNSサーバーによる名前解決が事前に必要です(AWSのVPC内のプロキシサーバーに向ける)。S3のイメージをAMIに変えて、EC2として使うことが出来るようになります。

S3ストレレージクラスについて【おまけ】

S3ストレージクラスは、S3バケットを作るときではなく、S3バケットにオブジェクトをアップロードするときに選択できます。下記画像を参照ください。AWS CLIでもオブジェクトをアップロードするときにストレージクラスを指定できる。アップされているオブジェクトのストレージクラス変更も可能。種類としては以下の通り。さらに、S3へのオブジェクトアップロード時には下記画像のとおり暗号化についても、無し、AMAZON S3マスターキー、AWS KMSマスターキー の中で指定できます。

  • スタンダード STANDARD
  • インテリジェントな階層化 INTELLIGENT_TIERING
  • 標準IA STANDARD_IA
  • 1ゾーンIA ONEZONE_IA
  • Glacier 
  • Glascier Deep Active
  • 低冗長化 RRS Reduced Redundancy Storage(推奨されません)
S3ストレージクラス選択画面(オブジェクトアップロード時)