DMS レプリケーションインスタンスが停止可能か教えてください

2022.08.15

困っていた内容

DMS のレプリケーションインスタンスを停止したいのですが、マネジメントコンソール上で停止する方法が分かりません。

結論

DMS のレプリケーションインスタンスでは停止機能、スナップショット作成機能ともに提供されていません。(2022/08/15 時点)
DMS というサービスの特性上、フルロードによる一度きりのサービス利用、または継続的なレプリケーション(CDC)による継続的なレプリケーションインスタンスの利用を前提としている為に停止機能が無いと考えられます。

Tips 各サービスで利用可能な機能を調べる

各 AWS サービスで利用可能な機能を調べるにあたり、検証環境のマネジメントコンソール上でいろいろと触ってみてもいいのですが、AWS CLI Command Reference で調べることをお勧めします。

AWS Command Line Interface とはどのようなものですか。

AWS Management Console で使用できるすべての IaaS (infrastructure as a Service) AWS のアドミン、管理、およびアクセス機能は、AWS の API と AWS CLI でも使用できます。AWS で使用できる AWS Management Console IaaS の新しい機能およびサービスは、開始時、または開始から 180 日以内に、API と CLI からも使用できます。

上記の AWS ドキュメントにもあるように、マネジメントコンソール上の操作で実行可能な動作・設定は、AWS CLI コマンドでもほぼ実行可能なので、一枚のドキュメントにまとまっている AWS CLI Command Reference で調べることによって検索漏れの可能性を低くできます。

やってみた

1. EC2 サービスでインスタンスを停止できるコマンドがあるかを調べてみる

まず、DMS サービスで利用可能なコマンドを調べる前に、EC2 インスタンスの停止について AWS CLI Command Reference で調べてみます。
ブラウザ検索で、「AWS CLI EC2」等で検索していただくと下記ドキュメントが Hit するかと思います。
AWS CLI には、Ver.1 と Ver.2 があるのですが、最新の Ver.2 の利用が AWS から推奨されています。(下記ドキュメントも Ver.2 についてのものです。)

ec2

ドキュメント内検索をする為、キーボード上で "Ctrl+F" を押していただき、検索窓へ「stop」と入力すると、stop-instances というコマンドがありました。
stop-instances のリンクを押します。

stop-instances

You can use the Stop action to hibernate an instance if the instance is enabled for hibernation and it meets the hibernation prerequisites .

stop-instances の説明を読んでみると、インスタンスを停止可能なコマンドであることが分かりました。
英語がつらいという方は、Chrome での日本語翻訳機能を利用していただくと大まかな内容は把握していただけます。
  

2. DMS サービスでインスタンスを停止できるコマンドがあるかを調べてみる

次は、DMS の AWS CLI Command Reference で EC2 の stop-instances に相当するコマンドがあるか検索してみます。
ブラウザ検索で、「AWS CLI DMS」で検索すると下記ドキュメントが Hit しました。
dms

ドキュメント内検索で「stop」を検索すると、stop-replication-task というコマンドがありました。
stop-replication-task のリンクを押してコマンドで実行できる内容を確認してみましたが、コマンド表記どおりタスクの停止を実行するコマンドでした。
stop- 以外から始まるコマンド(create-、delete- 等)で、レプリケーションインスタンスの停止を実行できそうなコマンドは見当たらない為、DMS サービスではインスタンスを停止するコマンドは提供されていないことが確認できました。

まとめ

DMS レプリケーションインスタンスが停止可能かをまとめるうちに、各サービスで提供されている機能の検索方法についての記事となりました。
各種機能を AWS ドキュメントで調べた後のダメ押しとして、AWS CLI Command Reference で該当しそうなコマンドが無いかもチェックいただければと思います。

参考資料