はじめに
SAP BTPのCloud Foundry環境で稼働するカスタムアプリケーションですが、リソース最適化の観点から夜間は停止させたいというケースも考えられます。そこで、BTP上で提供されるローコード/ノーコードの運用自動化サービスであるAutomation Pilot を活用して、「夜間にアプリを停止し、朝に再起動する」ための構築手順を紹介します。
想定読者は、Cloud FoundryやBTPには馴染みがあるが、Automation Pilotを初めて利用する方となっています。
1. CatalogとInputの作成
最初にCatalogを作成します。
Catalog: CommandとInputをまとめるフォルダのような単位で、プロジェクトごとにまとめて管理できます。
今回は ‘Sample’ という名前を付けます。
次に、Cloud Foundryアプリを操作するためのInputを作成します。
Input: Commandで使う設定値をKey-Value形式でまとめて管理できます。
Input名は ‘CfAppOperation’ とします。
Inputには、認証情報と対象アプリを特定するための情報を登録します。
user : BTPのテクニカルユーザー名password : ユーザーのパスワード (Sensitive設定ON推奨)region : Cloud Foundryリージョン名 (例: cf-eu10)subAccount : サブアカウント名resourceGroup : スペース名resourceName : アプリケーション名 (例. cap-js-bookshop-srv)
このようにInputとして一度登録しておくと、停止・再起動のCommand実行時に毎回入力する手間が省けます。
2. 停止Command の作成
次に、アプリを停止するためのCommandを作成します。
Command: Automation Pilot における実行可能な処理の単位で、開始時にInput Keysを受け取り、Output Keysを返します。Commandは他のCommandを順に組み合わせて構成されます。
作成するCommand名を ‘StopCfApp’ とし、Catalogとして先ほどの ‘Sample’ を指定します。
CommandにはExecutorを追加します。
Executor: 親Commandの中で利用される「ラッパー」です。対象Commandを正しく実行できるようにInput Keyに値を与える必要があり、その値は直接指定するかDynamic Expressionで参照できます。
事前定義済みの ‘applm-sapcp’の’StopCfApp’ を選択します。
‘StopApplication’で表示されている ‘applm-sapcp:StopCfApp:1’ をクリックして、情報を見てみます。
InputとOutputのKey-Valueの定義がそれぞれ確認できます。これらの情報をもとに、後述のInput KeysとOutput Keysを設定します。
先ほどのページに戻り、Input Keysを定義します。passwordはSensitive設定ONが推奨です。
最終的に、以下の6つのKeyをInputとして設定します。
‘StopApplication’の設定画面で、先ほど作成したInput KeyをDynamic Expressionで紐付けます。
続いて、Output Keysを定義します。
最終的には、このようなOutput Key一覧を定義することになります。
Output Keysも同様に、StopApplicationの出力とDynamic Expressionで紐付けます。
下記のようになります。
3. 動作確認
ここまでで、停止用Commandが完成しました。画面右上の Trigger ボタンから実行し、結果を確認します。
実行結果画面の Output > Show をクリックすると、対象アプリ(例: cap-js-bookshop-srv)が停止されたことが確認できます。エラーが出た場合は、Input設定、権限、値の紐付けなどを再確認してください。
4. スケジュール設定
次に、この停止Commandを自動実行するためにスケジュールを設定します。
StopCfAppを選択します。
ここでは、東京のタイムゾーンで毎日22時に実行するように設定します。
StopCfAppをスケジュールできました。
5. 再起動Commandの設定
朝の稼働時間にアプリを再起動させるため、停止と同様の手順で再起動Commandを設定します。
ここでは事前定義済みの applm-sapcp:RestartCfApp を利用します。停止時と同様にInputを紐付け、スケジュールを「毎日朝7時」などに設定すれば、夜間停止したアプリが自動的に再起動するようになります。
終わりに
本記事では、Automation Pilotを使ってCloud Foundry上のアプリを夜間停止し、朝に再起動させる手順を紹介しました。ポイントは以下の通りです。
Inputとして認証情報とアプリ情報を管理事前定義済みCommand(StopCfApp / RestartCfApp)を利用スケジューリング機能で定期実行
さらに応用として、停止・再起動のメール通知、対象アプリケーションの拡充なども可能です。
日々の運用を効率化する第一歩として、ぜひ試してみてください!
はじめにSAP BTPのCloud Foundry環境で稼働するカスタムアプリケーションですが、リソース最適化の観点から夜間は停止させたいというケースも考えられます。そこで、BTP上で提供されるローコード/ノーコードの運用自動化サービスであるAutomation Pilot を活用して、「夜間にアプリを停止し、朝に再起動する」ための構築手順を紹介します。想定読者は、Cloud FoundryやBTPには馴染みがあるが、Automation Pilotを初めて利用する方となっています。1. CatalogとInputの作成最初にCatalogを作成します。Catalog: CommandとInputをまとめるフォルダのような単位で、プロジェクトごとにまとめて管理できます。今回は ‘Sample’ という名前を付けます。 次に、Cloud Foundryアプリを操作するためのInputを作成します。Input: Commandで使う設定値をKey-Value形式でまとめて管理できます。Input名は ‘CfAppOperation’ とします。Inputには、認証情報と対象アプリを特定するための情報を登録します。user : BTPのテクニカルユーザー名password : ユーザーのパスワード (Sensitive設定ON推奨)region : Cloud Foundryリージョン名 (例: cf-eu10)subAccount : サブアカウント名resourceGroup : スペース名resourceName : アプリケーション名 (例. cap-js-bookshop-srv)このようにInputとして一度登録しておくと、停止・再起動のCommand実行時に毎回入力する手間が省けます。2. 停止Command の作成次に、アプリを停止するためのCommandを作成します。Command: Automation Pilot における実行可能な処理の単位で、開始時にInput Keysを受け取り、Output Keysを返します。Commandは他のCommandを順に組み合わせて構成されます。作成するCommand名を ‘StopCfApp’ とし、Catalogとして先ほどの ‘Sample’ を指定します。CommandにはExecutorを追加します。Executor: 親Commandの中で利用される「ラッパー」です。対象Commandを正しく実行できるようにInput Keyに値を与える必要があり、その値は直接指定するかDynamic Expressionで参照できます。事前定義済みの ‘applm-sapcp’の’StopCfApp’ を選択します。’StopApplication’で表示されている ‘applm-sapcp:StopCfApp:1’ をクリックして、情報を見てみます。InputとOutputのKey-Valueの定義がそれぞれ確認できます。これらの情報をもとに、後述のInput KeysとOutput Keysを設定します。先ほどのページに戻り、Input Keysを定義します。passwordはSensitive設定ONが推奨です。最終的に、以下の6つのKeyをInputとして設定します。’StopApplication’の設定画面で、先ほど作成したInput KeyをDynamic Expressionで紐付けます。続いて、Output Keysを定義します。最終的には、このようなOutput Key一覧を定義することになります。Output Keysも同様に、StopApplicationの出力とDynamic Expressionで紐付けます。下記のようになります。3. 動作確認ここまでで、停止用Commandが完成しました。画面右上の Trigger ボタンから実行し、結果を確認します。実行結果画面の Output > Show をクリックすると、対象アプリ(例: cap-js-bookshop-srv)が停止されたことが確認できます。エラーが出た場合は、Input設定、権限、値の紐付けなどを再確認してください。4. スケジュール設定次に、この停止Commandを自動実行するためにスケジュールを設定します。StopCfAppを選択します。ここでは、東京のタイムゾーンで毎日22時に実行するように設定します。StopCfAppをスケジュールできました。5. 再起動Commandの設定朝の稼働時間にアプリを再起動させるため、停止と同様の手順で再起動Commandを設定します。ここでは事前定義済みの applm-sapcp:RestartCfApp を利用します。停止時と同様にInputを紐付け、スケジュールを「毎日朝7時」などに設定すれば、夜間停止したアプリが自動的に再起動するようになります。終わりに本記事では、Automation Pilotを使ってCloud Foundry上のアプリを夜間停止し、朝に再起動させる手順を紹介しました。ポイントは以下の通りです。Inputとして認証情報とアプリ情報を管理事前定義済みCommand(StopCfApp / RestartCfApp)を利用スケジューリング機能で定期実行さらに応用として、停止・再起動のメール通知、対象アプリケーションの拡充なども可能です。日々の運用を効率化する第一歩として、ぜひ試してみてください! Read More Technology Blog Posts by SAP articles
#SAP
#SAPTechnologyblog