2018年7月31日にユーチューブ公開されているS3のBlackBeltを見ながらまとめました。AWSはよく考えられていると賛同は出来るけど、正直なところ、S3複雑過ぎ。たかがファイル保管で何でこんなに選択肢が広がってんねん(笑)
S3は、ブロックストレージ(SCSI)でもファイルストレージ(SMB/NFS)でもなく、オブジェクトストレージ(http/https)です。KeyValue型のような感じです。プリンシパル別に以下4種のアクセス方法があります。APIに慣れていないと4の概念が頭に浸透しにくいのできをつけてください。
オブジェクトの保存場所です。1AWSアカウントで100個まで、上限緩和申請可能です。バケット名はグローバルでユニークになります。
ファイルそのものです。格納するとURLが与えられます。1つのPUTでアップロード可能なオブジェクトは最大5TBまで。オブジェクト数は無制限です。
オブジェクトの格納URLパスになります。「バケット+キー+バージョン」は必ず一意です。
オブジェクトに付随する属性情報です。
S3のデータセンターのロケーション(立地)です。プロジェクトやアプリケーションで同じリージョンにすると有利です。
99.999999999%(イレブンナイン)の可用性を誇ります。
バックアップストレージの容量限界、保守期限切れに対するソリューションになります。テープライブラリやNASの代わりなど、S3をバックアップストレージに使います。容量無制限で使えます。ツール(バックアップソフトなど)やAWS CLIによるコピーやsyncも可能です。
EC2でEBSを使っていれば、EBSのスナップショットをS3に保存出来ます。AMIをS3に置くことも出来ます。また、S3でEBSのライフサイクルマネジメント(世代スケジュール管理)が出来ます。
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バケットにオブジェクトをアップロードするときに選択できます。下記画像を参照ください。AWS CLIでもオブジェクトをアップロードするときにストレージクラスを指定できる。アップされているオブジェクトのストレージクラス変更も可能。種類としては以下の通り。さらに、S3へのオブジェクトアップロード時には下記画像のとおり暗号化についても、無し、AMAZON S3マスターキー、AWS KMSマスターキー の中で指定できます。