Amazon S3 Express One Zone Storage class を使ってみた

S3 Express One Zone Storage class というものが使えるようになったらしいので、バケットを作ってバッチオペレーションで既存バケットからデータをコピーしてみた記録です。

公式情報は以下。

https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-s3-express-one-zone-storage-class/

AWS Blog は以下。

https://aws.amazon.com/jp/blogs/aws/new-amazon-s3-express-one-zone-high-performance-storage-class/




# バケットを作ってみる
いつも通りマネジメントコンソールで Amazon S3 サービスを開いて、右上の「バケットを作成」のボタンを押す。 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3623605/44a25cb7-57c5-f664-dc2b-d2efc65194d8.png)

すると、今までにない「ディレクトリ」という選択肢ができている。これが S3 Express One Zone Storage Class らしい。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3623605/120d12b6-8d96-f647-38cd-da26ab13a8ad.png)

選択すると、その下にアベイラビリティーゾーンを選択するメニューが表示される。 One zone だからあたりまえですね。適当なAZ を選択してみる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3623605/7f6eb27d-a5ab-4fe8-6cad-fe05dd145a09.png)

さらにその下にはアベイラビリティーゾーンが一つだけど問題ないことを確認するチェックボックスも表示されているのでチェック。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3623605/0e9f2137-1279-4251-6b4a-128f5e6404e6.png)

その下にはバケット名を指定をする入力領域。ディレクトリバケットと呼ぶらしい。ベース名のところに `mybacket-yki` を入力してみる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3623605/b642559f-0bb2-f562-91ca-848dd3a6d80b.png)

ここから下のメニューはこれまでと変わりがないので、一番下の「バケットを作成」を押す。すると、以下のようにディレクトリバケットが作成された。先ほど入力したバケット名を prefix として suffix が付加されている様子。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3623605/6054dd8f-b8ca-7f74-e03c-18a3289aadf4.png)

# 既存バケットからデータをコピーしてみる

上記のとおりディレクトリバケットを作成すると、作成済み画面の上部に以下の情報が表示される。どうやらこれがバッチオペレーションを用いた既存バケットのデータコピーの様子。せっかくなので使ってみる。「インポート」を押してみる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3623605/e1c15b09-803c-5f94-b2fb-e9c04b2de1ca.png)

すると以下のような画面になる。（先ほどの画面で「詳細の表示」を押したら緑の情報表示が消えてしまったので `mybacket-yki2` でディレクトリバケットを作り直しました）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3623605/ae5390f7-d040-fbae-8e70-b214318c3ce2.png)

ソースに既存の適当なバケット名を指定して、画面下部にある「インポート」を押す。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3623605/c70b72e5-435a-a782-ff6d-5971785b6eb2.png)

するとバッチオペレーションという画面になる。コピーしてくれているっぽい。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3623605/af5906ac-502a-d073-1fce-25a40b229f29.png)

しばらく待ってから画面中央のリロードのマークを押すと、ステータスが完了済みとなっていた。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3623605/e72fad97-b698-4b99-8bb1-f401bb83468b.png)

コピーが終わってからバケット一覧を見てみる。これまでのバケットを「汎用バケット」と呼び、今回作成した「ディレクトリバケット」とは別タブで表示されるようになっている。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3623605/e6e5d8bc-c22b-8058-bcb0-8df7a35b2431.png)

汎用バケットとディレクトリバケットでは、中身の見え方やURIの表記は全く変わりはないみたい。「ストレージクラス」のところだけ表示が変わっているだけですね。

**コピー元の汎用S3バケット**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3623605/e6b11405-3190-db3a-d301-7bc72619311b.png)
直下のフォルダのS3 URI は `s3://s3-cur-report-test03/cur-yki-test03/`


**コピー先のディレクトリバケット**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3623605/ef4e5c0e-9aa9-9621-8620-fe76b16f7b59.png)
直下のフォルダのS3 URI は `s3://mybacket-yki2--use1-az4--x-s3/cur-yki-test03/`

ということで、re:Invent 2023 で発表された S3 Express One Zone Storage class を使ってみました。高いレイテンシが必要なユースケースで使えるということで、より過酷な環境でも S3 が使えるようになりますね。