9
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

アイスタイルAdvent Calendar 2023

Day 20

AWS CLIのコマンド一覧(Amazon Aurora編)

Last updated at Posted at 2023-12-19

はじめに

この投稿はアイスタイル Advent Calendar 2023 の20日目の記事です。
アイスタイルのDBREチームに所属している新卒1年目のisomです。

アイスタイルでは様々なデータベースを使っているのですが、その一部にAmazon Auroraを利用しています。
必要に応じてAuroraのスケールアウト・スケールアップを手作業で行うのですが、そこで利用されるコマンドの統一がされていなかったため、今回AWSの勉強もかねて、動作検証を重ねよく使用するCLIの一覧を作成しました。

実行環境

AWS CLI バージョン2~

CLI 出力フォーマットについて

ユーザガイド
下記のオプションをコマンドにつけることで、出力フォーマットを指定することができます

オプション 説明
--output json JSON 文字列としてフォーマットされる
--output yaml YAML 文字列としてフォーマットされる
--output text AWS CLI の出力がタブ区切りの行に整形されて出力される
--output table テーブルとしてフォーマットされる

コマンド一覧

Aurora クラスター一覧

ドキュメント

【入力項目】

  • Aurora クラスター名

【出力項目】

  • インスタンス名
  • インスタンスクラス
  • AZ
  • CA
  • メンテナンスウィンドウ
  • 拡張モニタリングの詳細度
  • モニタリングロール
  • パラメータグループ
  • タグ
aws rds describe-db-instances \
--filters "Name=db-cluster-id,Values=<Aurora クラスター名>" \
--query 'DBInstances[*].{InstanceName: DBInstanceIdentifier, InstanceClass:DBInstanceClass,AZ:AvailabilityZone,CA:CACertificateIdentifier, PreferredMaintenanceWindow:PreferredMaintenanceWindow, CopyTagsToSnapshot:CopyTagsToSnapshot, MonitoringRoleArn:MonitoringRoleArn,MonitoringInterval:MonitoringInterval, DBParameterGroups:DBParameterGroups,Tags:TagList}'
出力例

[
    {
        "InstanceName": "database-sample-instance-1",
        "InstanceClass": "db.t4g.medium",
        "AZ": "ap-northeast-1a",
        "CA": "rds-ca-2019",
        "PreferredMaintenanceWindow": "fri:16:01-fri:16:31",
        "CopyTagsToSnapshot": true,
        "MonitoringRoleArn": "arn:aws:iam::xxxxxxxxxx",
        "MonitoringInterval": 60,
        "DBParameterGroups": [
            {
                "DBParameterGroupName": "db-sample",
                "ParameterApplyStatus": "in-sync"
            }
        ],
        "Tags": [
            {
                "Key": "sample1",
                "Value": "sample1"
            },
           
        ]
    }
]

Aurora クラスター内のインスタンス一覧(ライター・リーダー確認)

ドキュメント

【入力項目】

  • Aurora クラスター名

【出力項目】

  • インスタンス名
  • ライターかの真偽値(ライターならtrueを返します)
aws rds describe-db-clusters  \
--db-cluster-identifier <Aurora クラスター名>  \
--query 'DBClusters[*].DBClusterMembers[*].{InstanceName: DBInstanceIdentifier, IsClusterWriter:IsClusterWriter}'  \
--output table
出力例
-------------------------------------------------------------------
|                       DescribeDBClusters                        |
+---------------------------------------------+-------------------+
|                InstanceName                 |  IsClusterWriter  |
+---------------------------------------------+-------------------+
|  database-sample-instance-1                 |  False            |
|  database-sample-instance-2                 |  True             |
+---------------------------------------------+-------------------+

Aurora クラスター起動

ユーザガイド ドキュメント

aws rds start-db-cluster --db-cluster-identifier <Aurora クラスター名>

(例)
aws rds start-db-cluster --db-cluster-identifier database-sample-cluster

Aurora クラスター停止

ユーザガイド ドキュメント

DBクラスターは最大7日間停止できます。
放置すると7日後に自動で起動され、課金されるので注意してください

aws rds stop-db-cluster --db-cluster-identifier <Aurora クラスター名>
 
(例)
aws rds stop-db-cluster --db-cluster-identifier database-sample-cluster

スケールアウト

ユーザガイド ドキュメント

【入力項目】

  • 新しく作成するインスタンス名
  • Aurora クラスター名
  • インスタンスタイプ
  • AZ
  • パラメータグループ
  • メンテナンスウィンドウ
  • モニタリングロール
  • 拡張モニタリングの詳細度
  • タグのキー、バリュー(スペース区切りで複数指定可)

必要に応じてオプションを追加・削除してください

aws rds create-db-instance  \
--db-instance-identifier <新しく作成するインスタンス名>  \
--db-cluster-identifier <Aurora クラスター名>  \
--engine aurora-mysql --db-instance-class <インスタンスタイプ>  \
--availability-zone <AZ>  \
--db-parameter-group-name <パラメータグループ> \
--preferred-maintenance-window <メンテナンスウィンドウ> \
--monitoring-role-arn <モニタリングロール> \
--monitoring-interval <拡張モニタリングの詳細度> \
--copy-tags-to-snapshot \
--tags Key=<キー1>,Value=<バリュー1> Key=<キー2>,Value=<バリュー2>

フェイルオーバー

ドキュメント

【入力項目】

  • Aurora クラスター名
  • ライターにしたいインスタンス名
aws rds failover-db-cluster  \
--db-cluster-identifier <Aurora クラスター名>  \
--target-db-instance-identifier <ライターにしたいインスタンス名>
 
 
(例)
aws rds failover-db-cluster  \
--db-cluster-identifier database-sample-cluster  \
--target-db-instance-identifier database-sample-instance-1

インスタンスクラス変更

スケールアップ、スケールダウンに使います。
ドキュメント

【入力項目】

  • インスタンス名
  • インスタンスクラス

【オプションの説明】

オプション 説明
--apply-immediately すぐに適用
--no-apply-immediately 次のメンテナンスウィンドウ中に適用
aws rds modify-db-instance  \
--db-instance-identifier <インスタンス名>  \
--db-instance-class <インスタンスクラス>  \
--apply-immediately
 
 
(例)
aws rds modify-db-instance  \
--db-instance-identifier database-sample-instance-1  \
--db-instance-class db.t3.medium  \
--apply-immediately

コマンドを実行し、jsonが出力されたら成功 完了までに10分ほどかかります。

インスタンス削除

ユーザガイド ドキュメント

【入力項目】

  • 削除したいインスタンス名

【オプションの説明】

オプション 説明
--no-delete-automated-backups 自動バックアップを保持
--delete-automated-backups 自動バックアップを保持しない
--final-db-snapshot-identifier <スナップショット名> 最終スナップショットを作成
--skip-final-snapshot 最終スナップショットを作成しない
aws rds delete-db-instance  \
--db-instance-identifier <削除したいインスタンス名>  \
--skip-final-snapshot  \
--delete-automated-backups
 
 
(例)
aws rds delete-db-instance  \
--db-instance-identifier database-sample-instance-1  \
--skip-final-snapshot \
--delete-automated-backups

まとめ

最後まで読んでいただきありがとうございました。
CLIの記載方法が最初はわからず苦労しましたが、ドキュメントやユーザガイドを読み進めていくうちに理解できました。
AWSのドキュメントやユーザガイドはAWS初心者の私にも読みやすくてありがたかったです🙏

今回のCLIは一度作成すれば流用できるので、ぜひ使ってみてください!

9
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?