はじめる前に
- 必須AWS アカウントを持っていること
- 必須マネジメントコンソールにサインインできること
- あると良いアップロードする用の、小さなファイル(テキストや画像など)が手元にあると進めやすい
- あると良い「オブジェクトストレージ」「バケット」という言葉をなんとなく聞いたことがある(本文で説明します)
※ このハンズオンは すべてコンソールだけで完結します。コマンド操作は使いません。
参照する公式ドキュメント
手順に迷ったときや、用語の意味を確かめたいときに開きましょう。
※ リンク切れの場合は、ページタイトルで検索してください。
背景・シナリオ
大切なファイルを、どこに置いておくのがよいでしょうか。自分のパソコンのディスクは容量に限りがあり、壊れれば中身も失われます。外付けディスクも同じ不安があります。そこで、故障に強く、容量を気にせずファイルを預けられる場所として使えるのが、AWS の S3(Amazon Simple Storage Service)です。
S3 は「オブジェクトストレージ」と呼ばれる種類のサービスで、ファイルを 1 つの「オブジェクト」として保管します。オブジェクトを入れておく入れ物が「バケット」です。今回はバケットを 1 つ作り、自分のパソコンからファイルをアップロードして、ダウンロードで取り出せることを確認します。
バケットの中は、パソコンのフォルダみたいなもの?
見た目はフォルダのように使えますが、S3 は厳密にはフォルダ構造を持たず、「キー(名前)」でオブジェクトを管理しています。photos/cat.jpg のような名前を付けると、コンソール上ではフォルダのように表示されます。まずは「名前を付けてファイルを置く場所」と捉えれば十分です。
バケット名はなぜ世界でひとつだけ?
バケット名は、AWS 全体で重ならないグローバルに一意な名前である必要があります。誰かが使っている名前は付けられないので、自分だけの分かりやすい名前(例:自分の名前や日付を含める)を考えるのがコツです。
S3 にバケットを 1 つ作り、自分のパソコンからファイルをアップロードし、ダウンロードで取り出せる状態にする。
つくる構成
自分のパソコンから S3 のバケットへファイルをアップロードし、必要なときにダウンロードして取り出します。バケットの中には、アップロードしたファイルが「オブジェクト」として並びます。
要件
以下の要件を満たすバケットを作り、ファイルを出し入れしてください。
| No | 要件 |
|---|---|
| 1 | リージョンは「東京(ap-northeast-1)」を使用する。 |
| 2 | S3 バケットを 1 つ作成する。名前は世界で一意になるよう、自分で分かりやすく決める(例:my-first-bucket-yourname-20260620 のように名前や日付を含める)。 |
| 3 | バケットのパブリックアクセスはブロックしたまま(非公開)にする。今回は自分だけが使う保管庫なので、公開しない既定の設定で進める。 |
| 4 | 手元のファイルを 1 つ以上アップロードする。 |
| 5 | アップロードしたファイルをダウンロードして、中身が壊れずに取り出せることを確認する。 |
構築の進め方
バケットを作って、ファイルを入れて、取り出す——シンプルな 3 つの動きです。各ステップで何をしているかを意識しながら進めましょう。
-
マネジメントコンソールにサインインし、リージョンを合わせる
ブラウザで AWS マネジメントコンソールにサインインし、画面右上のリージョンが「アジアパシフィック(東京)ap-northeast-1」になっていることを確認します。
バケットは作るリージョンに置かれるS3 のバケット名は世界共通ですが、データの実体は作成したリージョンに保存されます。近いリージョン(日本なら東京)を選んでおきましょう。
-
バケットを作成する
画面上部の検索バーに
S3と入力して S3 コンソールを開き、「バケットを作成」を押します。バケット名に、世界で一意になる名前(例:my-first-bucket-yourname-20260620)を入力します。リージョンが東京であることを確認します。名前のルールバケット名はすべて小文字で、英数字とハイフンが使えます。スペースや大文字は使えません。すでに使われている名前は付けられないので、自分の名前や日付を混ぜると重複しにくくなります。
-
パブリックアクセスの設定はそのままにして作成する
「このバケットのブロックパブリックアクセス設定」は、初期状態(すべてブロック)のままにします。そのまま下までスクロールし、「バケットを作成」を押します。一覧にバケットが現れます。
既定は「非公開」で安全S3 のバケットは、作った直後は持ち主だけがアクセスできる非公開です。今回は自分専用の保管庫なので、この安全な既定のままで問題ありません。
-
ファイルをアップロードする
作成したバケット名をクリックして中を開き、「アップロード」→「ファイルを追加」で手元のファイルを選びます(画面へドラッグ&ドロップでも追加できます)。最後に「アップロード」を押すと、ファイルがオブジェクトとしてバケットに入ります。
アップロードしたものが「オブジェクト」バケットの中に並ぶファイル 1 つ 1 つがオブジェクトです。ファイル名がそのまま「キー(名前)」になります。
-
ダウンロードして取り出せることを確認する
バケットの中でアップロードしたオブジェクトを選び、「ダウンロード」を押します。手元に保存されたファイルを開き、アップロード前と同じ中身で取り出せていることを確認します。これで「クラウドにファイルを預けて取り出す」が一通りできました。
(任意)フォルダで整理してみる「フォルダの作成」で
photosのような区切りを作り、その中にアップロードすると、コンソール上でフォルダのように整理できます。実際にはキー名がphotos/photo.jpgになっているだけ、という点も眺めてみましょう。
つまずきポイント
初学者がよく引っかかる箇所を先回りでまとめました。答えそのものは載せていませんが、「どこを見直せばよいか」の手がかりとして使ってください。
「名前が使えない、というエラーで先に進めない」
バケット名は AWS 全体で世界に 1 つだけでなければなりません。よくある一般的な名前(例:test、mybucket)は、すでに誰かが使っていて取れないことがほとんどです。自分の名前や日付を混ぜて、より具体的な名前にしてみましょう。また、大文字やスペースが入っていないか(使えるのは小文字・数字・ハイフン)も確認します。
「オブジェクトのリンクを開いたら Access Denied になる」
これは故障ではなく、正しい動きです。今回のバケットは非公開なので、持ち主以外(やサインインしていないブラウザ)からは見られません。中身を確認したいときは、コンソールから「ダウンロード」で取り出します。「誰でも見られるように公開する」のは、また別のテーマとして扱います。
完了チェック
要件の再確認ではなく、画面のどこを見れば達成を確認できるかをまとめました。S3 コンソールを開いて、次を順に確かめましょう。
- S3 の「バケット」一覧に、自分が作ったバケットがある。
- そのバケットの「リージョン」列が 「アジアパシフィック(東京)」になっている。
- バケットの「アクセス」が 「バケットとオブジェクトは公開されていません」(非公開)になっている。
- バケットの中に、アップロードしたオブジェクト(ファイル)が表示されている。
- そのオブジェクトをダウンロードでき、開くと元の中身が取り出せる。
考えてみよう
手を動かすことに加えて、次の問いに自分の言葉で答えられるようにしておくと、理解がより深まります。
- バケット名は「世界でひとつだけ」でなければなりませんでした。一方、その中のオブジェクト名(キー)は他の人のバケットと同じでも構いません。この違いは、それぞれの名前が「どの範囲で重ならなければいけないか」から来ています。なぜそうなるのか考えてみましょう。
ヒント
バケットは、世界中からアクセスできる入口(名前)を持つため、全体で一意である必要があります。オブジェクトは「どのバケットの中か」が決まっていれば区別できるので、バケットが違えば同じ名前でも問題になりません。「住所」と「部屋の中のファイル名」の関係で考えてみましょう。 - S3 はファイルを「フォルダ」ではなく「キー(名前)」で管理しています。
photos/cat.jpgのような名前にすると、コンソールではフォルダのように見えました。本当のフォルダではないのに、フォルダのように扱えるのはなぜでしょうか。ヒント
キーに含まれる「/」を区切りとみなして、コンソールがフォルダのように表示しているだけ、と考えると腑に落ちます。中身としては「長い 1 つの名前を持つオブジェクト」が並んでいるだけ、という点を思い出してみましょう。 - S3 は「非常に壊れにくい(高い耐久性を持つ)」と説明されます。自分のパソコンのディスクに置く場合と比べて、これはどんなときに価値が出るでしょうか。
ヒント
1 台のディスクは、それが壊れると中身を失います。S3 は、利用者からは見えないところでデータを複数箇所に分けて保持しています。「大事なデータを 1 か所だけに置くことの危うさ」という観点で考えてみましょう。
後片づけ
学習で作ったバケットは、使い終わったら片づけましょう。バケットは中身(オブジェクト)が残っていると削除できないので、先に中を空にします。
- オブジェクトを削除する:バケットを開き、中のオブジェクトをすべて選んで「削除」します(バケット一覧で対象を選び「空にする」を使うと、まとめて中身を消せます)。
- バケットを削除する:中が空になったら、バケット一覧で対象を選び「削除」を押します。確認のためバケット名の入力を求められたら、入力して削除します。
先に「空にする」、それから「削除」
オブジェクトが 1 つでも残っているとバケットは削除できません。「空にする」で中身を消してから「削除」の順で進めましょう。残しておきたいファイルがあれば、先にダウンロードしておきます。
コストに関する注意: S3 は、保存しているデータ量・リクエストの回数・データ転送量に応じて課金されます。新規アカウントには無料利用枠があり、一定容量(一般的に 5 GB のストレージと一定回数のリクエスト)まで無料で使えます。今回のように小さなファイルを少し置く程度なら、ごく少額か無料枠に収まることがほとんどです。ただし大きなファイルを大量に置いたまま放置すると課金が増えるため、使い終えたら上の「後片づけ」でオブジェクトとバケットを削除しておきましょう。バケットやフォルダ自体の存在には料金はかかりません。