HANDS-ON 02 / STORAGE
S3バケットを作成して
好きなファイルをアップロードしてみよう!
AWSマネジメントコンソールからAmazon S3のバケットを1つ作成し、手元にある好きなファイルをアップロードします。オブジェクトの詳細画面でサイズやURIを確認したあと、バケットごと削除するところまで体験しましょう。
最初に確認:料金とアップロードするファイル
S3は保存容量とリクエスト数に応じて料金が発生する可能性があります。無料利用枠の対象でも、アカウントの状態や保存しているデータ量によって請求される場合があります。作業が終わったら、最後の「片付け」まで必ず実施してください。
アップロードするファイルは、公開されても困らない内容を選んでください。今回はパブリックアクセスをブロックしたまま進めるためインターネットには公開されませんが、学習用のバケットに業務データや個人情報を置かない習慣を付けておきましょう。数KB程度の小さなファイルで十分です。
画面は2026年9月10日現在のAWSコンソールで撮影しています。 AWSコンソールは更新によって表示が変わることがありますが、項目名と考え方を手がかりに進めてください。
このハンズオンでできるようになること
バケットを作成し、バケット名がグローバルに一意である理由を説明できる。
パブリックアクセスブロックや暗号化など、作成時のデフォルト設定の意味を理解できる。
ファイルをオブジェクトとしてアップロードし、キー・サイズ・S3 URIを確認できる。
オブジェクトを削除してからバケットを削除する、正しい片付けの順序を実行できる。
作業の流れ
次の順番で進めます。受験者向けに、各操作のあとに「なぜ必要か」も説明しています。
画像の見方:赤枠がクリック・入力・確認する場所です。左右に画像が並ぶ場合は、左が遷移前、右が遷移後です。
- 準備を確認するリージョンとアップロードするファイル
- S3バケットを作成するグローバルに一意な名前を付ける
- 好きなファイルをアップロードするファイルをオブジェクトとして保存
- アップロードしたオブジェクトを確認する一覧と詳細画面を読む
- 作業後に片付けるオブジェクト削除→バケット削除
GET READY
1. 作業前に、リージョンとファイルを準備する
このハンズオンでは、AWSコンソールのリージョンを米国東部(バージニア北部) / us-east-1にそろえます。S3のバケット一覧はすべてのリージョンのバケットが表示されますが、バケット自体は作成時に選んだリージョンへ配置されます。
作業前チェック
- AWSコンソールに、ハンズオン用のIAMユーザーでログインしている。
- 画面右上のリージョンが「米国(バージニア北部)」になっている。
- アップロードする、公開されても困らない小さなファイルが手元にある。
- S3のバケットを作成・削除する権限がある。できない場合は、管理者に依頼する。
今回アップロードするファイル:お好きなファイルをアップロードしてかまいません。この教材では、説明のために cp-handson-sample.txt という数行のテキストファイルを使います。画面の表示が教材と少し違っても、自分のファイル名に読み替えて進めてください。
CREATE A BUCKET
2. S3バケットを作成する
バケットは、S3にファイルを保存するための入れ物です。まずはこのバケットを1つ作ります。設定項目は多く見えますが、今回はほとんどをデフォルトのまま進めます。
2-1. バケットの作成画面を開く
- AWSコンソール上部の検索欄で「S3」を検索し、Amazon S3を開きます。
- 左メニューで「汎用バケット」(バケット)を選びます。
- 「バケットを作成」を選びます。
遷移前:バケット一覧
遷移後:バケット作成画面
なぜこの操作をする? S3にはEC2のような「起動」の概念がなく、最初にバケットという保存領域を作るところから始まります。ファイルはすべて、いずれかのバケットの中に置かれます。
2-2. バケット名を入力し、一意な名前にする
- 「バケットタイプ」は汎用のままにします。
- 「バケット名前空間」は「グローバル名前空間」のままにします。
- 「バケット名」に
cp-handson-upload-に続けて、自分で考えた短いランダムな文字列(英数字5〜6文字程度)を入力します。例:cp-handson-upload-7k3q9d。バケット名は世界中で重複できないため、自分だけの文字列を末尾に加えて一意にします。 - 「バケット名」の上に表示されているAWSリージョンが米国東部(バージニア北部) us-east-1になっていることを確認します。
あなたの画面ではバケット名の末尾が異なります。 自分で入力した接尾辞なので、教材の画像(cp-handson-upload-7k3q9d)と同じ文字列にはなりません。以降の手順では、自分の画面に表示されているバケット名を読み替えて進めてください。
なぜバケット名はグローバルに一意でなければならない? S3のバケット名前空間は、リージョンやアカウントごとではなくAWS全体で共有されているからです。世界のどこかの誰かがすでに cp-handson-upload を使っていれば、あなたはその名前を使えません。バケット名はそのままURL(https://バケット名.s3.リージョン.amazonaws.com/…)の一部になるため、世界中で重複しない必要があります。ランダムな文字列を自分で末尾に加えるのは、この衝突を避けるための簡単で確実な方法です。
2-3. 残りの設定はデフォルトのまま作成する
下へスクロールすると設定項目が続きますが、今回はすべてデフォルトのままにします。それぞれの意味だけ確認しておきましょう。
- オブジェクト所有者:「ACL無効」のままにします。バケット内のオブジェクトはすべてこのアカウントの持ち物になります。
- このバケットのブロックパブリックアクセス設定:「パブリックアクセスをすべてブロック」にチェックが入ったままにします。インターネットへ公開しません。
- バケットのバージョニング:「無効にする」のままにします。
- デフォルトの暗号化:「Amazon S3マネージドキーを使用したサーバー側の暗号化(SSE-S3)」のままにします。
- 画面下部の「バケットを作成」を選びます。
遷移前:デフォルト設定の確認
遷移後:作成完了
なぜパブリックアクセスをブロックしたまま? S3の設定ミスによる情報公開は、実際によく起きる事故です。AWSはその対策として、新しいバケットではパブリックアクセスをすべてブロックする設定を初期値にしています。公開が必要な場面でだけ、意図的に解除するのが安全な使い方です。
インターネットからは読み取れない状態です。今回はこのまま進めます。
保存時にS3が自動で暗号化します。追加の操作は不要です。
UPLOAD A FILE
3. 好きなファイルをアップロードする
作成したバケットへ、手元のファイルをアップロードします。S3では、アップロードしたファイルをオブジェクトと呼びます。
3-1. アップロード画面を開く
- バケット一覧で、作成した
cp-handson-upload-…のバケット名を選びます。 - 「オブジェクト」タブが表示されます。まだ何も入っていないため、一覧は空です。
- 「アップロード」を選びます。
遷移前:空のバケット
遷移後:アップロード画面
3-2. ファイルを選んでアップロードする
- 「ファイルの追加」を選び、アップロードしたいファイルを選択します。画面へファイルをドラッグ&ドロップしてもかまいません。
- この教材では
cp-handson-sample.txtという小さなテキストファイルを選びました。お好きなファイルをアップロードしてください。 - ファイル名とサイズが一覧に表示されることを確認します。
- 「プロパティ」の項目はすべてデフォルトのままにします。ストレージクラスは「スタンダード」です。
- 画面下部の「アップロード」を選びます。
- 「アップロードに成功しました」と表示されたら、「閉じる」を選びます。
遷移前:ファイル選択後
遷移後:アップロード成功
S3はファイルサーバーではない: S3はブロックストレージやファイルシステムではなく、オブジェクトストレージです。ファイルはフォルダ階層ではなく「キー(名前)」と「データ」と「メタデータ」の組み合わせとして、まるごと保存されます。一部だけを書き換えることはできず、更新するときはオブジェクト全体を置き換えます。
CHECK THE OBJECT
4. アップロードしたオブジェクトを確認する
アップロードが終わると、バケットの「オブジェクト」タブに追加したファイルが表示されます。一覧と詳細画面の両方を見てみましょう。
4-1. オブジェクト一覧で確認する
- バケットの「オブジェクト」タブを開きます。
- アップロードしたファイルが1行表示されていることを確認します。
- 「名前」「タイプ」「最終更新日」「サイズ」「ストレージクラス」の列を確認します。
S3のオブジェクト一覧に「フォルダ」が表示されることがありますが、これは実体のあるディレクトリではなく、キー名に含まれる / をコンソールが見やすく折りたたんで表示しているものです。
4-2. オブジェクトの詳細画面を開く
- 一覧でオブジェクト名(
cp-handson-sample.txt)を選びます。 - 「サイズ」と「最終更新日」を確認します。アップロードしたファイルの内容と一致しているはずです。
- S3 URI(
s3://バケット名/キー)を確認します。AWS CLIやSDKからこのオブジェクトを指すときに使う書き方です。 - オブジェクトURL(
https://バケット名.s3.us-east-1.amazonaws.com/…)を確認します。バケット名がURLの一部になっていることに注目してください。 - 右上の「開く」を選ぶと、ファイルの中身を確認できます。
オブジェクトURLをブラウザで開くと? 今回はパブリックアクセスをブロックしているため、そのまま開いてもアクセス拒否(AccessDenied)になります。一方、コンソールの「開く」は、あなたの権限で一時的な署名付きURLを発行して表示しているため、中身が見えます。「URLが存在すること」と「誰でも見られること」は別だ、という点がS3を理解するうえで重要です。
CLEAN UP
5. 作業後にバケットを削除する
学習が終わったら、作成したバケットを削除します。EC2の「終了」と違い、S3は中身が空でないとバケットを削除できません。次の順番で片付けます。
- オブジェクトを削除する:アップロードしたファイルを消します。
- バケットを空にする:消し残しがある場合にまとめて削除します。
- バケットを削除する:入れ物そのものを消します。
5-1. オブジェクトを削除する
- バケットの「オブジェクト」タブを開きます。
- アップロードしたオブジェクトのチェックボックスをオンにします。
- 「削除」を選びます。
- 確認画面で、対象のオブジェクト名を確認します。
- 入力欄に
完全に削除と入力し、「オブジェクトの削除」を選びます。
遷移前:削除対象の選択
遷移後:削除の確認
削除は取り消せません。今回はバージョニングを無効のままにしているため、削除したオブジェクトは復元できません。自分が作成したバケットであることを、削除前に必ず確認してください。
5-2. バケットを空にする(消し残しがある場合)
オブジェクトを個別に削除しきれない場合や、あとから消し残しに気づいた場合は、「バケットを空にする」で中身をまとめて削除できます。バケット一覧で対象のバケットを選び、「空にする」から実行します。確認欄には 完全に削除 と入力します。
なぜ空にしないと削除できない? バケットを削除すると、その名前は再びグローバルな名前空間へ戻り、他の誰かが使えるようになります。中身が残ったまま入れ物だけを消せてしまうと、消したつもりのデータが残り続けたり、意図しない課金が続いたりします。そのためS3は「空のバケットしか削除できない」というルールにしています。
5-3. バケットを削除する
- バケット一覧で、対象のバケットのチェックボックスをオンにします。
- 「削除」を選びます。
- 確認欄にバケット名を入力します(
cp-handson-upload-…の、あなたの画面に表示されている名前です)。 - 「バケットを削除」を選びます。
- 一覧から対象のバケットが消えたことを確認します。
遷移前:削除の確認
遷移後:削除完了
片付けのチェック
バケットを削除しても、他のリージョンや他の学習で作ったバケットは残ります。バケット一覧を見て、意図せず残っているバケットがないか確認してください。
学習用に作成したリソース:S3バケット1つ、アップロードしたオブジェクト1つ
用語を整理する
- Amazon S3
- 容量制限を意識せずにデータを保存できる、AWSのオブジェクトストレージサービスです。
- バケット
- オブジェクトを保存する入れ物です。作成時にリージョンを選び、名前はAWS全体で一意である必要があります。
- オブジェクト
- S3に保存されたデータ本体と、そのメタデータの組です。アップロードしたファイル1つが1オブジェクトになります。
- キー
- バケット内でオブジェクトを一意に識別する名前です。
/を含めるとコンソール上ではフォルダのように表示されます。 - ストレージクラス
- アクセス頻度や取り出し速度に応じた保存方式です。既定はスタンダードです。
- ブロックパブリックアクセス
- バケットやオブジェクトが意図せずインターネットへ公開されるのを防ぐ設定です。新規バケットでは既定で有効です。
- SSE-S3
- S3が管理する鍵でデータを自動的に暗号化する、サーバー側暗号化の方式です。
- S3 URI
s3://バケット名/キーの形式で、CLIやSDKからオブジェクトを指定するときに使います。
AWS CLIで同じことをする場合(補足)
コンソールの操作は、AWS CLIでも実行できます。CloudShellなどから次のように実行すると、バケットの作成・アップロード・一覧表示ができます。バケット名は自分のものに置き換えてください。
バケット作成aws s3 mb s3://cp-handson-upload-xxxx --region us-east-1
アップロードaws s3 cp cp-handson-sample.txt s3://cp-handson-upload-xxxx/
一覧表示aws s3 ls s3://cp-handson-upload-xxxx/
公式ドキュメント
次に学ぶなら
S3の基本操作ができたら、Amazon S3の解説ページで、ストレージクラス・料金の考え方・耐久性を整理しましょう。
Amazon S3の解説へ戻る