AWSの環境構築(S3)
S3(Simple Storage Service)へのファイルのアップロードはCLI経由で行うため、最初にCLI環境の構築が必要。
S3の概要
S3はその名前の通りオブジェクトストレージ。
- 99.999999999%(ナイン・イレブン)の耐久性を実現する。
- S3は単純なKVS(Key-Value型データストア)であり「ディレクトリでファイルを管理する」従来のファイルサーバの仕組みと異なる。
- 従量課金制。
- 容量制限なし。
S3の用語
バケット
オブジェクト
- S3に格納されるファイル。
- 上限5T。
キー
CLI環境の準備
$ sudo pip install awscli
CLI環境の設定
aws configureコマンドを実行し、アクセスキー・シークレットアクセスキー・デフォルトリージョン・デフォルト出力形式を設定する。
# aws configureコマンド実行後は設定した内容が表示される。 $ aws configure AWS Access Key ID [********************]: AWS Secret Access Key [********************]: Default region name [ap-northeast-1]: Default output format [text]: # .awsディレクトリが作成される。 $ ls .aws config credentials
バケットの作成〜オブジェクトのアップロード例
# パケットの作成 $ aws s3 mb s3://test0515 make_bucket: test0515 $ aws s3 ls 2018-05-09 00:11:30 test-croudtrail-bucket 2018-05-15 15:03:15 test0515 # オブジェクトのアップロード $ aws s3 cp icon.png s3://test0515/icon upload: ./icon.png to s3://test0515/icon
権限の設定
https://s3.console.aws.amazon.com/s3/にアクセスしてオブジェクトに読み取り権限を付与した。
アップロード確認
ブラウザでhttp://test0515.s3.amazonaws.com/iconにアクセスすると画像が表示された!
バケットの削除
バケットを削除する際は最初にオブジェクト自体を削除しておくことが必要。オブジェクトが存在するバケットを削除しようとすると失敗する。
# 失敗例 $ aws s3 rb s3://test0515 remove_bucket failed: s3://test0515 An error occurred (BucketNotEmpty) when calling the DeleteBucket operation: The bucket you tried to delete is not empty # オブジェクトの削除 $ aws s3 rm s3://test0515/icon delete: s3://test0515/icon # バケットの削除 $ aws s3 rb s3://test0515 remove_bucket: test0515 # バケットが削除確認 $ aws s3 ls 2018-05-09 00:11:30 test-croudtrail-bucket
参考
*1:シークレットアクセスキーが表示されるのは初回のみ。もしシークレットアクセスキーを忘れた場合は再度アクセスキーの生成からやり直す必要がある。