AMAZON S3のBlackBeltをまとめました【PART.1】
2018年7月31日にユーチューブ公開されているS3のBlackBeltを見ながらまとめました。AWSはよく考えられていると賛同は出来るけど、正直なところ、S3複雑過ぎ。たかがファイル保管で何でこんなに選択肢が広がってんねん(笑)
S3は、ブロックストレージ(SCSI)でもファイルストレージ(SMB/NFS)でもなく、オブジェクトストレージ(http/https)です。KeyValue型のような感じです。プリンシパル別に以下4種のアクセス方法があります。APIに慣れていないと4の概念が頭に浸透しにくいのできをつけてください。
- AWS SDK(アプリケーション開発)
- AWS CLI(コマンド・シェル)
- マネージメントコンソールや3rdパーティツール(手動・人の手)
- 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のユースケース大別
- ファイルサーバ
- WEBサーバ
- データの取り込み・加工・活用の際に使う
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(推奨されません)