前準備(サーバーはAmazon LinuxのEC2を想定)
- インストールされている全てのパッケージのアップデートをしておく
$ sudo yum -y update
$ sudo easy_install pip
- EC2にMySQLクライアント(mysqlコマンド)をインストールしておく(詳細割愛)
- EC2にAWS CLIをインストール
$ sudo pip install awscli
$ mkdir -m 700 .aws
$ vi .aws/config
aws_access_key_id = [Access Key ID]
aws_secret_access_key = [Secret Access Key]
region = [Region Name]
mkdir -m 700 [source-dirname]
- S3上にCSV格納先(EC2->S3)のバケットおよびディレクトリを作成
$ aws s3 mb s3://[bucketname]/[target-dirname]
実行手順
$ mysql -h[RDS Public DNS] -u[username] -p[password] [dbname] --batch -e "select * from [tablename]" | sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//g' > [tablename].csv
$ aws s3 sync [sourcedir] s3://[bucketname]/[target-dirname]
aws s3 ls s3://[bucketname]/[target-dirname]
特記事項
- awscliのs3 syncコマンドは対象のS3バケットとローカルを比較し「新規」/「変更」ファイルをS3バケットに対して書込みを行う
- ローカルから「削除」されていてもS3からは削除されない安心設計