皆さんこんにちは。yaakaです。
最近はというと、1人旅にハマっていて去年は三重県や島根県、大阪府、、と今まで旅行したことない西の方を攻めてました!
1人だと自由気ままにストレスフリーに旅できるのがいいですね。
今年はまだどこにも行けてないので、行きたいところをリストアップしてどこに行くか検討中です。
・‥…─*・‥…─*・‥…─*・‥…─*・‥…─*・‥…─*・‥…─*・‥…─*・‥…─*・‥…
さて、今回はAWS編2回目になります。
前回私が担当した1課の技術書では、AWSの代表的なサービスを挙げて、その中でEC2をピックアップして書かせていただきました。
今回は続きとして、S3というサービスについて纏めていこうと思います。
ここ最近、現場でS3を触る機会もあったので頭の整理も兼ねてスタートです^_^!
▼S3とは
Amazon Simple Storage Serviceの略称で、後ろ3つの単語の頭文字が全て”S”なのでS3とされているようです。以降、S3と呼びます。
S3とは何なのか、公式ページによると…
Amazon Simple Storage Service(Amazon S3)は、業界随一のスケーラビリティ、データ可用性、セキュリティ、パフォーマンスを提供するオブジェクトストレージサービスです。あらゆる規模と業界の数百万におよぶお客様が、データレイク、クラウドネイティブなアプリケーション、モバイルアプリケーションといった、ほぼすべてのユースケースのために、さまざまな量のデータを保存、管理、分析、保護しています。コスト効率性に優れたストレージクラスと使いやすい管理機能により、コストの最適化、およびデータの整理と分析を行い、特定のビジネス要件やコンプライアンス要件を満たすために微調整されたアクセスコントロールを設定することが可能になります。
引用:Amazon S3
つまり、AWSが提供しているコストパフォーマンスの良いストレージサービスがS3ということです!
AWSでは色々なストレージサービスを提供しており、S3の他にも3つほどあるようですが、今回はS3に絞って書いていきます。
そもそもストレージサービスってなに?というところですが…
ストレージはデータを保存しておくための場所であり、S3はインターネット経由でデータを保存したり管理できるクラウドストレージに分類されます。
▼S3の仕組み
S3を理解するのに重要な用語と全体の仕組みを見ていきましょう。
●バケット
1つのストレージの単位で、次に説明するオブジェクトを保存する場所のことです。S3のサービスアイコンがバケツだからなのかバケツと呼ぶ人もいるそうで、大きなバケツに沢山のデータを入れておくようなイメージでしょうか。
バケットに使用する名前は一意である必要があるので、他のユーザが使っているバケット名は使用できないようになっています。

●オブジェクト
バケットに保存されているデータ本体のことです。
バケット内に作成できるオブジェクトの数に上限はありませんが、1オブジェクトは5TBまでというサイズ制約があります。

●キー
オブジェクトのフルパスのようなもので、バケット名とオブジェクト名を組み合わせることで一意のオブジェクトを指定する時に使用します。
厳密に言うとS3にはフォルダやディレクトリという概念はないのでバケット内のオブジェクトは階層構造ではないですが、管理面などからスラッシュ(/)を使って階層構造のように見せかけています。

全体のイメージとしてすごく簡単に図にしてみました。

なんとなくイメージできましたでしょうか..?
他のファイルシステムと違う点は、オブジェクトやキーと呼ぶくらいでデータを保存する場所という概念はほぼ同じです。
▼S3の使い方
では、基本的な使い方として実際にマネジメントコンソールからバケットを作成してファイルをアップロードしてみます。
●コンソール画面のサービス一覧から「S3」を選択します。

●左ペインから「汎用バケット」を選択し、「バケットを作成する」を押下します。

●バケットタイプやバケット名などを入力します。
S3には2種類のバケットタイプがあるので、データの格納・管理方法によって適切なものを選択します。
「汎用」は、標準的なバケットタイプでシンプルにデータを格納・管理するだけなので、簡単にデータを保存したり素早くデータにアクセスしたい場合などに向いています。
特別な要件がない場合はこちらを選ぶと無難です。
「ディレクトリ」は、階層構造でデータを整理できるので大量のデータをディレクトリごとに分けて整理したい場合などに向いています。
オブジェクト所有者では、バケットにアップロードするオブジェクトへアクセスできるユーザを指定できます。

ブロックパブリックアクセス設定では、セキュリティ強化としてバケットとその中のオブジェクトに対して意図的にパブリックへ公開されないように設定ができます。
バケットのバージョニングとはオブジェクトのバージョン管理機能で、有効にすると意図せずオブジェクトを削除や上書きしてしまった場合でも復元することができます。
タグを設定することで、リソース管理やコスト配分、セキュリティ管理などバケットの運用管理を効率的に行うことができます。

諸々作成できたら、ページ下部の「バケットを作成」を押下します。

作成できました。

●作成したバケット(ciel-01)にオブジェクトを作成したいので、「フォルダの作成」を選択します。

●フォルダ名を入力して「フォルダの作成」をクリックします。
今回は”folder”という名前のフォルダを作成して疑似的に階層構造を作ってみます。

●作成したフォルダ(folder)の階層に移動して、「アップロード」をクリックしファイルをアップロードします。

●アップロードするファイルを追加したら「アップロード」をクリックします。

一連の流れは完了です。
赤枠のところに「s3://ciel-01/folder/test1.txt」と表示されていて、階層みたいに見えます。

・‥…─*・‥…─*・‥…─*・‥…─*・‥…─*・‥…─*・‥…─*・‥…─*・‥…─*・‥…
長々とありがとうございました。
いかがでしたでしょうか?なんとなくAmazon S3というサービスについて理解いただけたら嬉しいです^_^
また次回の技術書で!

yaaka

最新記事 by yaaka (全て見る)
- 1課の勉強会 AlmaLinux編⑦ - 2025年5月30日
- 1課の技術書 ~AWS編②~ - 2025年5月2日
- 1課の勉強会 AlmaLinux編⑤ - 2025年1月31日
- 1課の技術書 ~AWS編①~ - 2024年9月30日
- 1課の勉強会 AlmaLinux編② - 2024年8月7日