フォーム読み込み中
ご覧いただき、ありがとうございます。ソフトバンクの結城です。
今回は、Alibaba Cloud の OOS ( CloudOps Orchestration Service ) の概要と保有しているECSインスタンスに対して一括操作をする方法について紹介します。
Alibaba CloudのOOS(CloudOps Orchestration Service)は、O&Mタスクの管理と実行をする自動O&Mサービス(オーケストレーションサービス)でよく知られているAnsibleと似ています。Ansibleでは、タスクを実行の際に使われるファイルを「playbook」と呼んでいますが、OOSでは、タスクを実行の際に使われるファイルを「テンプレート」と呼んでいます。
OOSでは、多くのAlibaba Cloudプロダクトに対しての操作がサポートされており、タスク作成からタスクの実行設定までをGUIでシンプルかつ簡単に行うことができます。
OSSでは以下の利点があります。
●実行環境がフルマネージド
AnsibleなどのO&M製品ではタスクを実行するインフラ(実行)環境の用意/管理が必要ですが、OOSではタスクを実行するインフラ(実行)環境を用意/管理する必要がありません。このため、OOSを利用するユーザは、タスクの作成/実行に専念することができます。
●料金が掛からない
OOSを使ってタスクを実行した場合に料金が発生しません。ただし、OOSを使って作成したクラウドリソース(ECSやRDSなど)に対しては、クラウドリソースの課金ルールに沿って料金が発生します。
●テンプレート用意が簡単
OOSのタスク実行で使うテンプレートをコードの記述をしなくとも、GUI操作で簡単に作成することができます。また、多くのパブリック(参考)テンプレートが用意されており、シンプルかつ、簡単にテンプレートを作成することができます。カスタムテンプレートも作成することができ、GUI操作での作成をはじめ、yaml、json形式でのテンプレート作成もサポートされています。
●実行結果の確認が可能
OOS特定のコマンドを実行するタスクを実行した場合、コマンドの実行結果をOOSコンソールで確認することができます。これにより、コマンド実行結果のログを各リソースにログインして確認する必要がありません。また、OOSタスクを実行したResourceに対してタスク実行が成功/失敗したかも確認することができます。
●セキュリティ
TerraformなどのIaC製品では、タスク実行の際に、AccessKey、AccessKey Secretが必要になり、管理も必要です。OOSでは、AccessKey、AccessKey Secretが不要でタスクの実行を行うことができます。また、OOSタスクの実行では、OOSのサービスロールが付与されている必要があり、OOSタスクを実行できるユーザを制限することも出来ます。
OOSを利用するにあたって、テンプレート作成数や1日に実行できるタスク数などに上限値が設定されています。
項目 | デフォルト値 | 上限値の引き上げ |
作成できるテンプレート数 | 200 | QuotaCenterで引き上げ可能 |
タスク実行の同時実行数 (最大) | 100 | QuotaCenterで引き上げ可能 |
1日に実行できるタスクの最大数 | 200,000 | QuotaCenterで引き上げ可能 |
テンプレートファイルの最大サイズ | 64KB | 不可 |
テンプレートに定義できるタスクの最大数 | 100 | 不可 |
日本リージョンのサポート | サポートしています | - |
※その他の制限や最新情報については、「Terms」をご参照ください。
今回はOOSを使って、保有するECSインスタンスに対して、同時に同じコマンドを実行する方法について紹介します。
◾️利用プロダクト
ECS
OOS
◾️ECS環境情報
OS : CentOS 7.7 64bit
Instance Family : ecs.t5-lc2m1.nano
Disk: 40GB
利用リージョン : 日本
◾️事前準備
・CentOSがインストールされているECSを複数台用意してください。
※今回はECSを3台使って説明します。
<OOSタスクの作成と実行>
1 ) OOSコンソールにログインします。
2 ) Automated Task >> Scheduled O&M>> createをクリックします。
3 ) Scheduled Task Typeを選択します。
●「Execute Now」
タスクを作成後、すぐに実行されます。
●「Executed Once at the Specified Time」の場合
タスクを実行する時間を指定することができます。ただし、タスクが実行されるのは1回です。
●「Executed Periodically」の場合
タスクの定期実行設定をすることができます。実行する時間、頻度を細かく指定することもできます。
今回は、「Execute Now」を使って説明します。
4 ) 利用するテンプレートを選択します。今回は、パブリックテンプレートの「ACS-ECS-BulkyRunCommand」を使用します。「ACS-ECS-BulkyRunCommand」を使うことによって、指定したECSインスタンスにコマンドを同時実行することができます。
5 ) 実行するコマンドを入力します。今回はwhoisをインストールします。
以下の図の通り、シェルスクリプトをはじめ、python、bat、powershellも実行することができます。
6 ) 以下の赤枠のパラメータを入力します。
Username : root (コマンドを実行するユーザ名を入力)
RegionId : Japan/Tokyo (対象のリソースが存在するリージョンを選択)
Resource Type : ECS Instance
Select Role : Maually Select Instance (リソースの指定方法について選択)
Select Instace : インスタンスを選択
7 ) 項目の入力が完了したら画面下部にある、「Create」を選択し、タスクの作成を完了させます。
8 ) 確認画面が表示されるので、実行内容を確認した後にOKをクリックします。
9 ) 作成したOOSタスクの画面に推移します。3 )で「Execute Now」を選択したので、タスクが実行されます。
10 ) OOSタスクの実行が完了するとExecution Statusが「Ended」と表示されます。
※今回実行したタスクは実行開始から実行完了までおよそ15秒ほどでした。
<OOSタスクの実行結果確認>
1)対象のOOSタスクの画面で「execution result」をクリックします。
2 ) Child execution >> Detailsの順にクリックします。
3 ) Logのタブをクリックし、実行ログを確認します。
ログには、どのインスタンスで操作されたかインスタンスIDが表示されます。複数のログが1つのファイルに出力されるため、特定のインスタンスの実行結果を確認する場合は、画面上でインスタンスを検索してください。
4 ) 実行結果を見ると「Complete」になっているのでコマンドの処理は完了していることがわかります。
コマンドの実行にした場合でもログされるので、上記の図の通り、出力結果を見てトラブルシューティングすることもできます。
※コマンドの実行が失敗した場合
OOSタスクでコマンド実行が失敗した場合、「Last ExecutionStatus」に「Failed」、「Last Execution Resource Status」に実行が成功 / 失敗したResource数を確認することができます。
どのResourceに対して、OOSタスクが成功 / 失敗したかOOSタスクの詳細から確認することができます。
失敗した原因については、「Details」より確認することができます。
OOSは、インフラ(実行)環境を用意することなく、O&Mタスクを実行することができます。さらに操作性がシンプルで、指定したResouceに対して一括操作をすることができ、なおかつ料金が掛からず利用することができるのでとても便利です。
今回紹介した、OOSタスクでのコマンドの一括実行では、コマンドラインでのセキュリティパッチ適用や、ミドルウェアのバージョンアップグレードを行う際にも活用することができます。
また、Ansibleと似ているため、Ansibleを使っているユーザはOOSのカスタマイズ性にすぐ慣れることができると思います。Ansibleを使っていてフルマネージドの環境でO&Mタスクを実行したい、インフラコストが気になる、GUIでO&Mタスクを作成、操作したい場合は、インフラ(OOSの実行で使う環境)、実行コストが掛からないOOSを利用を検討してみてください。
今回紹介したOOSを使って、多くのリソースに対して一括操作や、定型業務の自動化をして、作業工数の削減を目指しましょう。
条件に該当するページがございません