S3っていいよね。
ガンガンデータを放り込んでも費用わわずか、
エンドユーザーにとってはdropboxやicloudと比べて扱いづらいかもだけど
開発者からするとS3の魅力は半端ないです。(icloudも確か中身はs3だったはず)
クローラー作って集ったデータをとりあえず放り込んだり
DBのバックアップを放り込んだり使いみちは様々です。
centos7上にPostgreSQLを構築してそのバックアップを
定期的にs3にアップロードした方法を紹介します。
Centos7にawsコマンドをインストール
CentosにAWScliをインストールしなければなりやせん。
やることは少しなので大丈夫です。
1 2 3 4 |
curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py" python get-pip.py sudo pip install awscli aws configure |
使ったシェルスクリプト
実際に使ったシェルスクリプトはこんな感じ、
日付つきでS3にアップロードしているだけです。
エラーハンドリングはしてないので、気になった人は直して使ってくださいな
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#!/bin/bash ROOT_PATH="/home/ec2-user/" TODAY=$(date '+%F') BK_FILE="mydata_dbbackup_$TODAY" DUMP_PATH="$ROOT_PATH/$BK_FILE" function dump() { # pg_dumpコマンドを使ってデータを出力する pg_dump -p 5433 -U "mydata" "mydata" > "$DUMP_PATH" return 1 } function up() { # S3コマンドを使ってmyprojectバケットのmyproject/db-backupに日付きでアップロードする。 aws s3 cp "$DUMP_PATH" "s3://myproject/db-backup/$BK_FILE" return 1 } dump up echo "Done" |
Python3 boto3を利用してダウンロードする方法
Python3のBoto3を利用してS3ファイルをダウンロードする方法については
別の記事で紹介しています。
どんどん貯めちゃってね!!
じゃあね〜〜〜〜〜。