目次
はじめに
こんにちは、クラウド事業部の丸山です。
プログラムやターミナルなどでデータ操作を行った後、そのままデータをクラウドにアップロードできると非常に便利ですよね。
この前編では、Pythonを使ってローカル環境からAmazon S3にデータをアップロードする方法を紹介します。
これにより、データ管理が簡単になり、手間を減らすことができます。
今回は前編として、シンプルなデータのアップロード方法を試してみました。
後編ではより実践的な利用例に合わせて、個人利用の際に最適なコスト効率の良いDB運用方法を提案します。
どんなひとに読んで欲しい
- AWSに興味がある方
- Pythonを使ってAWSと連携する方法に興味がある方
- 個人利用で冗長性のあるDBデータを扱いたいが、コストを抑えたい方
関連記事
Boto3とは
Boto3とはPythonで利用できるAWS SDKライブラリです。
こちらのライブラリを利用することで、PythonからAWSの各種サービスの連携が容易にできます。
前提
・ Python3をインストール済みの環境で実施。 (記事作成時バージョン3.12.2)
今回は簡易的なテストとするためハードコーディングしたアクセスキーで実装しますが、
AWS CLIのプロファイル設定を利用したセキュアなアクセスも可能です。(後編で実施)
手順
IAMユーザの作成
テスト用のIAMユーザを作成します。
※ここではテスト用のためAmazonS3FullAccessを付与していますが、必要に応じて許可設定を見直す必要があります。
アクセスキーの作成
テスト用のアクセスキーを作成します。
今回はAWS CLI用としています。
S3バケットの作成
テスト用のS3バケットを作成します。
※ここではテスト用のためデフォルト設定としておりますが、必要に応じて許可設定を見直す必要があります。
作成直後のため、何もデータがない状態になります。
S3アップロード用のコード作成
Boto3ライブラリの準備
Boto3ライブラリがインストールされていない場合は、pipコマンドでインストールします。
pip install boto3
※設定環境によってはpip3で実行する必要がある場合があります。
今回実行したコード
import boto3 def upload_to_s3(file_name, bucket, object_name=None): """ ファイルをS3バケットにアップロードする関数 :param file_name: アップロードするファイル :param bucket: アップロード先のS3バケット :param object_name: S3オブジェクト名。指定しない場合はfile_nameが使用される :return: アップロードが成功すればTrue、失敗すればFalse """ if object_name is None: object_name = file_name # 直接キーを使用してS3クライアントを作成 s3_client = boto3.client( 's3', aws_access_key_id='YOUR_ACCESS_KEY', #実際に取得したアクセスキーを入力する aws_secret_access_key='YOUR_SECRET_KEY', #実際に取得したアクセスキーを入力する ) try: s3_client.upload_file(file_name, bucket, object_name) print(f"Successfully uploaded {file_name} to {bucket}/{object_name}") except Exception as e: print(f"S3 Upload Error: {e}") return False return True def main(): if upload_to_s3('sample.txt', 'db-upload-bucket'): print("Upload succeeded.") else: print("Upload failed.") if __name__ == "__main__": main()
実行画面
(.venv) User@MachineName Directory % python3 /Users/user/Directory/sample_only_upload.py Successfully uploaded sample.txt to db-upload-bucket/sample.txt Upload succeeded. (.venv) User@MachineName Directory %
上記コードを実行した結果、以下の様にファイルがアップロードされました。
おわりに
とても簡単な流れですが、これだけの手順でプログラム上からAmazon S3にファイルをアップロードすることが可能になります。
次回は後編として、簡単なsqlite3の利用方法に加えて、実際のDBデータをAmazon S3にアップロードする方法を紹介します。
次回もお楽しみに!
お知らせ
APCはAWS Advanced Tier Services(アドバンストティアサービスパートナー)認定を受けております。
その中で私達クラウド事業部はAWSなどのクラウド技術を活用したSI/SESのご支援をしております。
www.ap-com.co.jp
https://www.ap-com.co.jp/service/utilize-aws/
また、一緒に働いていただける仲間も募集中です!
今年もまだまだ組織規模拡大中なので、ご興味持っていただけましたらぜひお声がけください。