Open9
aws cliを使ったスナップショットからのDBインスタンス作成と削除
インスタンス作成・起動・停止があるとして、既に作成されているインスタンスにスナップショットを上書き?して起動できる?
スナップショットからの復元は新しいインスタンスが立ち上がる。
Fargateタスク内でスクリプトを実行。
そのスクリプトないでaws cliからインスタンスの作成と削除をします。
再実行とかでインスタンスが大量に作られないように。
本番DBミスって消さないようにね。
削除保護ついてるけど、APIからの場合効かないとかないよね?確認。
シェルスクリプt書き方参考
タスクでaws cli実行するときの認証周りどうするの?
.aws/config
[profile marketingadmin]
role_arn = arn:aws:iam::123456789012:role/marketingadminrole
source_profile = user1
[profile marketingadmin]のとこを[default]にしたら動かなかった。
DockerfileでCOPY
だめ
# aws configファイル
RUN mkdir ~/.aws
COPY aws/config ~/.aws/
これはok
COPY aws/config /root/.aws/
rds関連の必要なポリシー
・対象DBのスナップショット読み込み
・インスタンス作成
・対象DBインスタンスの削除
"Action": [
"rds:DescribeDBSnapshots",
"rds:RestoreDBInstanceFromDBSnapshot"
],
aws cliでのインスタンス作成
snapshotの検索は?
pythonだけど
identifier=`aws rds describe-db-snapshots \
--db-instance-identifier $db_instance \
--snapshot-type $snapshot_type \
--query 'reverse(sort_by(DBSnapshots,&InstanceCreateTime))[0].DBSnapshotIdentifier'`
echo $identifier | sed 's/"//g'
ダブルクオーテーション自体も文字列の一部となってエラー起きたので。
rdsのavailableを待つことができる