【AWS】EC2からS3にアクセスする手順まとめ

【AWS】EC2からS3にアクセスする手順まとめ

1.AWSのストレージサービスS3とは

S3とはAmazon Simple Storage Serviceの略称となります。
簡単に言えば、高機能ではないけれど非常に安価に利用できるストレージサービスで大容量のログのバックアップなどを保存しておくときなどに大活躍します。
BucketとObjectという概念によって構成されています。Bucketは簡単に言えば
一般的なストレージで言うところのボリューム、Objectは実際のファイルのような概念です。
特徴的なのはもしBucketをインターネット上に公開する場合、Bucket名+リージョンドメインがそのままURLになります。例えば東京リージョンだと下記になります。

https://Bucket名.s3-ap-northeast-1.amazonaws.com/Object名

実際にS3を利用する場合、EC2などからファイルのバックアップの保存先などで利用するが多いと思います。
今回はEC2からS3にファイルを保存する方法、ついでにインターネット上にファイルを公開する方法を紹介します。

2.EC2インスタンスにアクセス権の付与

2.1.対象のEC2インスタンスの選択

まずはEC2インスタンスの管理画面から、S3へアクセスするためのアクセス権限を付与します。権限を付与したいサーバを選択し、「アクション>インスタンスの設定>IAMロールの割り当て/置換」を選択します。

EC2サーバへS3アクセス権の付与
EC2サーバへS3アクセス権の付与

2.2.IAMロールの新規作成

ロールがない場合は、新しいIAMロールを作成するを選択します。

IAMロールの新規作成
IAMロールの新規作成

2.2.1.ステップ1:ユースケースの選択

ユースケースの選択では今回はEC2を選択し、次のアクセス権限に進みます。

ユースケースの選択でEC2を選択
ユースケースの選択でEC2を選択

2.2.2.ステップ2:ポリシーの選択

アクセス権限ポリシーを選択します。ポリシーのフィルタでs3と入力し、「AmazonS3FullAccess」と言うポリシーを選択しましょう。

ポリシーのアタッチではAmazonS3FullAccessを選択
ポリシーのアタッチではAmazonS3FullAccessを選択

2.2.3.ステップ3:タグの設定

好きなタグを設定しましょう。何も作らなくてもOKです。

2.2.4.ステップ4:ロール名の入力

好きなロール名を入れて、右下のロールの作成を選択します。今回は「ec2tos3」と言うロール名にしてみます。エラーなく作成されればIAMロールの作成は完了です。

ロール名を入力して、ロールを作成
ロール名を入力して、ロールを作成

2.3.IAMロールの割り当て

先ほどのIAMロールの割り当て画面に戻り、IAMロールのプルダウンを選択してみましょう。先ほど作成した「ec2tos3」というロールが選択できるはずです。
選択したら、適用を押下します。

IAMロールの割り当て
IAMロールの割り当て

無事適用できたら、アクセス権の付与は完了です。IAMロールの割り当ては、EC2インスタンス管理画面の説明タブでも確認することができます。

3.AWS CLIのインストール

実際にEC2からS3にアクセスする際は、AWS CLIというCLIツールを使う必要があります。
英語になりますが、こちらのページでAWS CLIのインストールの公式手順を確認することができます。
先ほど選択した、EC2にログインし、AWS CLIをインストールしたいディレクトリ で下記のコマンドを実行します。

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

インストールが完了したら、パスを通します。

sudo ./aws/install -i /usr/local/aws-cli -b /usr/local/bin

下記のコマンドでバージョンが確認できれば、インストールは完了です。

aws --version

4.S3へのファイルのアップロード

インストールしたAWS CLIを使って、ファイルのアップロードをしてみます。

4.1.Bucketの作成

まずは下記のコマンドでBucketを作成します。先ほど説明した通り、同じリージョンでBucket名はユニークである必要がありますので、なるべく複雑な名前にしましょう。ドット.やスラッシュ/は含めないようにしましょう。

aws s3 mb s3://Bucket名

作成に成功したら、下記のように表示されます。また、lsコマンドでバケットの存在を確認することができます。

make_bucket: Bucket名
aws s3 ls

4.2.Objectの作成

ローカルファイル「text.txt」をコピーしてObjectを作成します。Linuxと同じくcpコマンドを利用できます。下記の通り表示がされればアップロード成功です。

aws s3 cp text.txt s3://Bucket名
upload: ./text.txt to s3://Bucket/text.txt

4.3.AWS管理コンソール上でBucketの確認

AWS管理コンソールでBucketが作成できているか確認しましょう。

AWS管理コンソール上でBucketの確認

4.4.Objectの公開

該当のBucketを選択すると、先ほどアップロードした「text.txt」が確認できるはずです。インターネット上に公開するには、「text.txt」を選択して、概要タブの公開を押下します。

Objectの公開

無事公開できたら、オブジェクトURLをブラウザで入力してみてください。ファイルの中身が表示されると思います。

サーバ・クラウドカテゴリの最新記事