🛠️

Amazon S3(S3バケット)ってなに?

2025/02/24に公開

記事投稿理由

業務の中で、アプリ開発チームから基本的な設定変更依頼されたのがきっかけで触る機会があったため。

Amazon S3とは

Amazon S3(Simple Storage Service)は、AWSが提供するクラウドストレージサービスです。データを保存するための「バケット」というコンテナを作成し、その中にファイル(オブジェクト)を保存できます。

Amazon S3のおさえておくポイント

1. バケットとは?

バケットは、ファイルを保存するための入れ物(フォルダのようなもの)です。
S3では、データを直接アップロードするのではなく、まず「バケット」を作成して、その中にファイルを格納します。

バケットの特徴
リージョン(地域)を選択:作成時にどのAWSリージョンに置くか決めます。
→ 例えば「東京リージョン」を選ぶと、日本のデータセンターにデータが保存されます。
名前は世界で一意(重複不可):同じ名前のバケットは他の誰も作れません。
→ 「my-bucket」という名前を誰かが作ったら、他の人はその名前を使えません。
作成後は削除するまで使える:一度作ると、削除しない限り使い続けられます。
1アカウントで最大100個作成可能:S3バケットは1つのAWSアカウントで最大100個まで作成できます。

2. バケットのアクセス管理(セキュリティ)

権限の基本
作成したバケットは、自分のAWSアカウントが所有者になる。
他の人(別のAWSアカウント)がアクセスするには許可が必要。
アクセス許可の管理方法
IAMユーザーで管理するのが推奨(AWSルートユーザーではなく、IAMユーザーを使う)
→ セキュリティを高めるため、管理者アカウント(ルートユーザー)ではなく、IAMユーザーを作って権限を分けるのがベスト。
パブリックアクセス(公開アクセス)はデフォルトでブロック
→ バケットのデータは最初から外部に公開されていない。
公開したい場合は明示的に設定変更が必要
→ 例えば、ウェブサイトをホスティングする場合など。
より安全な公開方法
パブリックアクセスを許可するよりも、Amazon CloudFront とオリジンアクセスコントロール(OAC)を使うのが推奨されています。
→ CloudFrontを経由してデータを配信すると、より安全にコンテンツを公開できます。

3. バケットの便利な機能

S3バケットには、単にデータを保存するだけでなく、いろいろな便利な機能があります。

① 静的ウェブサイトホスティング
バケットを使って、静的なウェブサイト(HTML・CSS・JavaScriptだけのサイト)を公開できます。
→ サーバー不要で簡単にウェブサイトをホスティング可能。

② ライフサイクル管理
一定期間が経過したファイルを自動的に削除したり、コストの安いストレージクラス(Glacierなど)に移動したりできます。
→ 古いデータを自動で整理して、ストレージコストを節約。

③ アクセスログ
バケットへのアクセス履歴を記録しておくことができます。
→ 誰がいつアクセスしたのかを追跡可能。

4. まとめ

☑️ S3バケットはデータを保存するための「入れ物」
☑️ バケットの名前は世界で一意(重複不可)
☑️ 作成時にAWSリージョン(保存する場所)を決める
☑️ セキュリティ管理が重要 → IAMユーザーを使う
☑️ パブリックアクセスはデフォルトでブロックされている
☑️ 安全に公開するならCloudFrontを使うのがオススメ
☑️ ウェブホスティング、ライフサイクル管理、アクセスログなど便利な機能もある

S3はとても便利なクラウドストレージですが、適切な設定をしないとセキュリティリスクがあるため、アクセス管理をしっかりすることが大切どぅぇす!

参照記事

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/UsingBucket.html
https://dev.classmethod.jp/articles/cm-advent-calendar-2015-aws-re-entering-s3/
https://dev.classmethod.jp/articles/introduction-2024-amazon-s3/
https://repost.aws/ja/knowledge-center/secure-s3-resources

Discussion