/var/www/yatta47.log

/var/www/yatta47.log

やったのログ置場です。スクラップみたいな短編が多いかと。

S3バケットのリージョンを確認する(CLI、GUI)

よく使っているS3、この前無知が故の当然の結果なのですが、EC2からS3にファイル転送する際に別々のRegion(以下 リージョン)を使っていたせいで無駄に課金されてしまいました。orz

f:id:yatta47:20170111103307p:plain

EC2がTokyoリージョン、S3が米国東部(バージニア北部)で作ってしまった結果の転送量課金のスクショです。

残念だ・・・・残念すぎるぞ!自分!!orz

 

EC2は東京リージョンで作っていたのはわかっていたので、S3がどこで作ったのか?記憶がなく、そもそもS3のリージョンってどこで確認するんだ?っていうのが気になってS3のリージョンを調べる方法を調べてみました。

確認方法はGUIとawscliどちらでも可能でした。

 

CUI(awscli)でS3のリージョン確認

ちょっと前の記事でawscliをインストールしたので、それを使います。

get-bucket-locationというサブコマンドを使うそうです。--bucketの後ろに、作成してあるS3のバケット名を指定。

[yatta47@localhost ~]$ aws s3api get-bucket-location --bucket yatta47-tokyo-region
{
    "LocationConstraint": "ap-northeast-1"
}

JSONが返ってきて、LocationConstraintでリージョンが返されます。ap-northeast-1ってことは、Tokyoリージョンですね。よしよし。

 

 

似たような感じでUS Standardリージョンに作ったバケットも調べてみました。

[yatta47@localhost ~]$ aws s3api get-bucket-location --bucket yatta47-us
{
    "LocationConstraint": null
}

うんうん。us-east-1って表示・・・・・されてない!!!

なんでnullなんじゃ!!

って思ったら、こちらのサイトを確認するとUS Standardの場合のLocation Constraintは(none required)ってなっているので、どうやらnull表示でいいようです。

そうなんだーびっくりした。

 

ってことで無事にコマンドで取得できました。

GUIAWS Console)で確認

GUIで確認する場合はManagementConsoleからS3を開いて、調べたいバケットのプロパティを確認します。以下の場合はTokyoですね。

f:id:yatta47:20170111110105j:plain

 

 

こっちはリージョンが「US Standard」になっています。

f:id:yatta47:20170111110043j:plain

ちなみにリージョンのTokyoは「ap-northeast-1」、US Standardは「us-east-1」ですね。

エンドポイントのURLからでも判別できるそうです。それについては AWS service endpoints - AWS General Reference で一覧表にまとめられています。

 

まとめ

バケットを作る時にリージョン指定していたのなんかすっかり忘れていました。

EC2みたいにAMI作ってリージョン変更みたいなことできないのかなーと考えはしたのですが、今回はEC2がおいてあるリージョンと同じところにS3バケットを作って、昔のバケットの内容を新バケットにコピーして対応しました。

その辺を何も考えずに作ると自分のようになってしまうので、皆さんバケットを作る時は「このリージョンに作って大丈夫か?」というのを確認してから作ったほうがよいかと思いますw

そうしないと謎の転送量の課金がww

 

 

確認方法はやっぱりCLIのほうが好きですね。aws s3 lsとかでバケット一覧が取れるし。

もっとCLI使いこなして脱GUIを目指していこうと思います。

今日はここまで。それではまたー。

 

参考にしたサイト

ありがとうございます。

S3バケットのリージョンを取得 | technote

S3のバケット毎の使用量が欲しいんです | DevelopersIO

[AWS] S3 の Regions(リージョン)一覧 - CodeNote