AWSのEC2インスタンスからS3にあるファイルを取得するには以下の方法・手順を利用できます。基本的にはAWS CLIやSDKを用いる方法が一般的ですが、どの方法でも事前に必要な権限設定が必要です。
STEP 1: 必要な権限を設定する
- EC2インスタンスにIAMロールをアタッチして、S3へのアクセス権限を付与します。このIAMロールは、S3の操作に必要なポリシー(例:
AmazonS3ReadOnlyAccess)を持つ必要があります。- AWS Management Consoleで新しいIAMロールを作成。
- ロールにポリシー(例:
AmazonS3ReadOnlyAccess)をアタッチ。 - 作成したIAMロールをEC2インスタンスにアタッチ。
STEP 2: EC2インスタンスでAWS CLIをインストール
Amazon Linux 2などの一部のAMIでは、AWS CLIがデフォルトでインストールされていますが、もしインストールされていない場合は以下のようにインストールしてください。
sudo yum update -y # Amazon Linuxの場合
sudo yum install aws-cli -y
あるいは、他のOSでは以下のドキュメントに従います。
公式ドキュメント – AWS CLI のインストール方法
STEP 3: S3からファイルを取得する
IAMロールが正しく設定されている場合、EC2インスタンスから直接S3へアクセスできるようになります。
1. AWS CLIを使って取得する場合
例えば、S3にある mybucket/myfolder/myfile.txt をダウンロードするには以下のようにします。
aws s3 cp s3://mybucket/myfolder/myfile.txt /path/to/local/destination/
2. AWS SDKを使って取得する場合 (Python)
Pythonの場合、Boto3ライブラリを使うと簡単です。以下はS3からファイルをダウンロードする例です。
import boto3
# S3クライアントの作成
s3 = boto3.client('s3')
# ダウンロード
bucket_name = 'mybucket'
key = 'myfolder/myfile.txt'
local_file_path = '/path/to/local/destination/myfile.txt'
s3.download_file(bucket_name, key, local_file_path)
print("ファイルのダウンロードが完了しました")
Boto3は事前に以下のコマンドでインストールします。
pip install boto3
STEP 4: その他の注意点
- S3バケットのリージョン: ダウンロード対象のS3バケットがEC2インスタンスと異なるリージョンにある場合、AWS CLIやSDKを利用するときにリージョンを明示的に指定してください。
- ネットワークの接続: EC2インスタンスからS3への通信が可能なネットワーク設定が行われていることを確認してください(例: インターネットゲートウェイまたはVPCエンドポイント)。
もし追加のサポートが必要であれば教えてください!

コメント