この記事でできること
- S3バケットの作成方法
はじめに
AWSを使う場合において、使わない場合はまずないでしょう、と思われるS3。Simple Storage Serviceの頭文字を取ってS3、ですね。ただ、実際のところ「S3」はAWS自身もそのように表記しているので、どちらも正式名称と言ってよいのでしょう。
色々なストレージタイプがあったり、セキュリティやコンプライアンスの設定等、紹介したいことは山ほどありますし、むしろ肝はそっちだと思いますが、とりあえずまずはS3バケットを作ってみたいと思います。
バケットの作成そのものは非常に簡単です。
ゴール
ゴールは以下のようになります。S3はグローバルリソースなので、VPC(要は自分の領域)の外に配置するのがミソとなります。

S3バケットの作成
S3コンソールの呼び出し
検索窓に「S3」と入力して、S3サービスをクリックします。

バケットの作成
「バケットの作成」をクリックします。

設定
一般的な設定において、バケット名とリージョンを選択します。その他はデフォルトの設定で問題ありません。(バケット名やその他補足については、後述します。)

バケットの作成
画面下部の「バケットの作成」をクリックします。

バケットは数秒で作成されます。以下のように指定したバケットが作成されたら、バケットの作成は成功です。

バケットへデータ格納
作成したバケットをクリックして、バケットの詳細情報画面に移り、「アップロード」をクリックします。

以後の操作は、画面に従えば簡単にアップロード可能なため割愛しますが、アップロード後は以下のようにオブジェクトが格納されます。

格納データのダウンロード
格納データのダウンロードは、ダウンロードしたいオブジェクトにチェックを入れて、ダウンロードボタンをクリックするだけです。通常であれば、ダウンロードフォルダにダウンロードされます。

補足
バケットの命名規則について
バケットの命名規則は以下となります。
規則に沿っていない場合はエラーで弾かれるので、
詳細を記載する必要はないと思いますが、いくつかポイントです。
・バケット名には、小文字、数字、ドット (.)、およびハイフン (-) のみ使用可能
「小文字」がポイントですね。なんでか分からないですが大文字は不可です。また「.」は使えるものの他の制約があり、拡張子などややこしくなる元ですので、使用はお勧めしません。
・バケット名は、全世界全てのバケットにおいて一意でなければいけない
これは有名な話ですね(多分)。S3がグローバルリソースと言われる所以なのでしょうか。バケット作成時にリージョンを指定するので、リージョナルと思ってしまいますよね・・。そして当たり前ですが、データを保管する物理サーバはどこかにあるわけですから、利用するリージョンのS3に格納するのがベストです。
・バケット名の小技
小文字/数字/ドット/ハイフンのみ利用可なので、被ることもままあります。そこでバケット名が被る可能性を減らす小技として、アカウント番号をバケット名のどこかに(通常は末尾か、な)入れるという手法があります。当然、奇跡的に赤の他人が作成したバケットと一致する可能性はありますが、まぁ、まずないでしょう。
オブジェクトの暗号化について
詳細は別記事に記載しますが、AWS試験(ソリューションアーキテクト)で、訳も分からず覚えていたServer Side Encryption(SSE)がここの「デフォルトの暗号化」の部分で出てきます。
S3マネージドだとか、、、KMSだとか、、、KMSを選んだらさらにAWSマネージドとカスタマー管理とか、分岐したり、、、と非常にイライラした覚えがあります。ですので、この部分については別途詳細な記事を書きたいと思います。(記事準備中)

さいごに
バケットの作成そのものは非常に簡単だったかと思います。ただ、S3の真骨頂はここからで、S3はコンプライアンス要件等のサーバログ、CloudTrailログ等の保管場所になります。そのため、オブジェクトロックといった機能があったり、上述のとおり、グローバルリソースとはいえ、実態としてはリージョナルリソースなので、災害対策としてリージョンを跨いだレプリケーションなど、AWSを使用する上で、避けては通れないサービスだと思いますので、今後も記事を書いていきたいと思います。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2023/08/26 文章を微修正
2023/10/01 「格納データのダウンロード」を追記