AWS S3とは?特徴や注意点などをわかりやすく解説

この記事を書いたチーム:frontier
AWS S3とは?特徴や注意点などをわかりやすく解説

S3とは 

【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc.  詳細はこちらから>

開発業務にてS3を使う機会があったため、改めてS3とは何者かを調べてみました。 S3はAmazon Simple Storage Serviceの頭文字Sを3つ取ってS3と略しているようです。 名前からも想像がつくようにさまざまなデータファイルを保存できるクラウドストレージサービスとなります。 

 S3の特徴 

同じようにクラウド上でデータを保存できるOneDriveなどのオンラインストレージと少し異なる部分でいうと、オブジェクトストレージサービスという点です。 

コンソール上はフォルダ階層(ディレクトリ)のように表現されますが、実際はオブジェクト単位で各ファイルに固有の識別(URI)があり、一意となるフラットな構造となるため、簡単にアクセス可能となるようです。 

オンラインストレージ:\testfolder\online\test.txt  
  → test.txtがファイルとなり、ファイル単位で保存となる 

 オブジェクトストレージ:/testfolder/object/test.txt 
  「/testfolder/object/test.txt」がキーと呼ばれるオブジェクトとなる 

また、様々なコスト・データアクセスに合わせたストレージクラスが提供されており、案件に合わせたストレージクラスで利用できるようです。耐久性は下がるけれども、安く利用したい場合など、選択肢が増えそうです。 

ストレージクラス 

  • S3 標準 
  • S3 Intelligent-Tiering 
  • S3 標準低頻度アクセス 
  • S3 1 ゾーン低頻度アクセス 
  • S3 Glacier Instant Retrieval 
  • S3 Glacier Flexible Retrieval ( S3 Glacier) 
  • S3 Glacier Deep Archive 

S3の注意点 

S3はバケットというデータを保存するコンテナに、オブジェクトと呼ばれるファイルを保存します。S3でデータを保存するためには、バケットを作成し、AWSリージョンを指定します。

ここでの注意点は、バケット名は全リージョンの中でユニークな名前を付ける必要がある点です。(筆者は、本番環境のS3バケット名を誤って検証環境に作成してしまい、本番環境にてバケットが作成できないという初歩的ミスを犯しました…。) 

IAMロール・ポリシー設定でのアクセス権限も、S3を利用する上で気を付けたい点になります。 書き込み権限や読み込み権限を最低限に絞るなど、不正なアクセスを防ぐためにも設定を見直すことを忘れないようにしたいと思います。 

さいごに 

今回はS3について改めてAWS公式の説明を読んでみました。 自分が過去の案件で問題視されていたことなど、変わっていた点が多くあります。 

過去には既存データを保存・削除直後にデータアクセスすると変更されていないように見えるなど整合性が保証されるものではなかったり、暗号化の設定がデフォルトでは無効で、意識して暗号化の設定が必要でした。 

2023年10月時点では、より強力な整合性が提供され、即時にファイルが変更されたり、暗号化のデフォルトとしてSSE-S3が採用されたりするなど、追加費用なしでサービスも変わっていっているようです。 

S3に限らず、クラウドサービスを利用する上で大切なのは、最新の情報を常にキャッチできるかどうかだと、業務を行っていて感じます。 

いかに敏感に利用できるか、自分も上手なクラウドサービスとの付き合い方を考えたいと思います。 

【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>

Smallitのサービス