のぴぴのメモ

自分用のLinuxとかの技術メモ

Amazon RDSのIOPS&容量変更をCLIで実行するサンプル

RDS プロビジョンド IOPSで、IOPSを変更して、DBがAvailableになるまでWaitするシェル(+AWS CLI)のサンプルです。
AWS CLIで”aws rds modify-db-instance”で変更をします。
RDS&プロビジョンド IOPSで、IOPS設定によるBLOBファイルインサートのパフォーマンスの影響を確認するための検証ツール作成に利用したものです。

コマンド

DBIdentifier="dbname"
RDS_SIZE=1024  #1TB
RDS_IOPS=4096

#Modify RDS storage(size and iops)
echo "$(date '+%Y/%m/%d %H:%M:%S'): Modify RDS storage"
aws rds modify-db-instance \
        --db-instance-identifier ${DBIdentifier} \
        --allocated-storage ${RDS_SIZE} \
        --iops ${RDS_IOPS} \
        --apply-immediately;

# Wait until the DBInstanceStatus is "Available"
sleep 30
while true
do
     STAT=$(aws --output text rds describe-db-instances \
          --db-instance-identifier ${DBIdentifier} \
          --query 'DBInstances[].DBInstanceStatus')
     if [ "A${STAT}" == "Aavailable" ]; then
          break
     else
          echo "$(date '+%Y/%m/%d %H:%M:%S'): DBInstanceStatus= ${STAT}"
          sleep 15
     fi
     done
echo "$(date '+%Y/%m/%d %H:%M:%S'): Done to modifying RDS"

注意事項

  • ストレージの設定変更後、6時間はストレージの再変更ができません。実行すると以下のような感じのエラーが出ます。
An error occurred (InvalidParameterCombination) when calling the ModifyDBInstance operation: You can't currently modify the storage of this DB instance. Try again after approximately 3 hours.