TOP ▲ itcore TOPTIPSaws_s3.php  タグ:aws s3 iam ec2

EC2 を S3 ヘ定期バックアップ | itcore 2021年

S3 バケット作成

AWS S3
バケットを作成
バケット名 bucket-xxx.jp-001 ドメイン名を入れるなど他とぶつからない名前
AWS リージョン 東京 ap-northeast-1
バケットを作成

IAMロール作成

AWS IAMロール
ロールの作成 AWSサービス EC2 次のステップ:アクセス制御
ポリシーのフィルター S3
AmazonS3FullAccess をチェック
次のステップ:タグ
タグの追加 入力なし
次のステップ:確認
ロール名 s3_full_access ロールの作成

EC2へIAMロールをアタッチ

AWS EC2インスタンス
インスタンスをチェック
アクション>セキュリティ>IAMロールを変更
s3_full_access を選択>保存

AWS CLI version2 インストール

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

S3 へのアクセス確認

aws s3 ls s3://bucket-xxx.jp-001
aws s3 cp /etc/hosts s3://bucket-xxx.jp-001/hosts
aws s3 rm s3://bucket-xxx.jp-001/hosts

バックアップ 日次7世代 月次12世代

cd
mkdir bkup
cd bkup

vi bkup_daily.sh
# 日次7世代 月次12世代のバックアップ
dt=`date "+%Y%m%d_%H%M%S"`
w=`date "+%w"`
db=xxx
dir=/var/prj
bkup=/home/ec2-user/bkup
s3=s3://bucket-xxx.jp-001/bkup
echo w=$w m=$m db=$db dir=$dir bkup=$bkup s3=$s3
mysqldump --defaults-extra-file=/home/ec2-user/pw.my.cnf -h localhost -P3306 -u root --databases $db > $bkup/w$w.db.sql
(cd $dir; tar czf $bkup/w$w.dir.tar,gz .)
aws s3 cp $bkup/w$w.db.sql $s3/w$w.db.sql
aws s3 cp $bkup/w$w.db.sql $s3/m$m.db.sql
aws s3 cp $bkup/w$w.dir.tar,gz $s3/w$w.dir.tar,gz
aws s3 cp $bkup/w$w.dir.tar,gz $s3/m$m.dir.tar,gz
aws s3 ls $s3/

chmod +x bkup_daily.sh

cron

crontab -e
1 1 * * * /home/ec2-user/bkup/bkup_daily.sh > /tmp/bkup_daily.log 2>&1