AWS運用かんたん自動化ツール「opswitch」(オプスウィッチ)を使ってみよう!

2019.08.21

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。プロダクトグループのmuroです。

クラスメソッドは、AWS上で使える自動ジョブ実行ツール「opswitch」(オプスウィッチ)を提供しています。

opswitch(オプスウィッチ)とは

opswitchはAWSの運用に欠かせないインスタンスの起動・停止やバックアップ等の作業(ジョブ)をスケジュールして自動実行するサービスです。面倒なスクリプト作成や環境設定を行うことなく、ジョブの設定やスケジューリングを行うことができます。ジョブの実行結果は画面で見ることもメールで受け取ることもできます。

opswitchではインスタンスの起動・停止やバックアップの他にも色々できることがあります。

インスタンスの起動・停止 Amazon EC2 / Amazon RDS
バックアップの取得 Amazon EC2 / Amazon EBS / Amazon RDS
バックアップのリージョン間コピー Amazon EC2 / Amazon EBS / Amazon RDS
インスタンスタイプの変更 Amazon EC2
インスタンスの削除 Amazon RDS ※1
バックアップからの復元 Amazon RDS ※1
WorkSpacesの起動 Amazon workspaces
チェック リソースの止め忘れチェック

※1 サポートされているDBエンジンはMySQLとPostgreSQL、MariaDB、Oracle、SQL Serverになります。
 Amazon Aurora MySQLとAmazon Aurora PostgreSQLはサポートされておりません。

また毎日決まった時間に実行することはもちろん、曜日指定や期日指定といった柔軟なスケジューリングを行うこともできます。詳しくはopswitchのサービス仕様ユーザーガイドをご覧ください。

opswitch(オプスウィッチ)をはじめる

それではopswitchのユーザーガイドに沿って実際に使ってみたいと思います。

opswitchユーザーガイド | opswitchを開始する

opswitchを開始するための準備

opswitchを開始するには、次の二つの情報が必要です。

・opswitchアカウント登録用のメールアドレス
・opswitchと連携するAWSアカウント

opswitchアカウントを作成する

opswitchのアカウントを作成するには、https://app.opswitch.io/sign_upを開きます。

Emailにメールアドレスを、Password、Re-enter Passwordに任意のパスワードを入力します。利用規約を確認したらチェックボックスにチェックをし、「ユーザー登録」をクリックします。

確認コードの入力に進みます。入力したメールアドレス宛に確認コードが届いていますので、そのコードを入力します。「確認コードを送信」をクリックします。

ユーザー登録が完了しました! 「opswitchを開始する」をクリックして進みます。

最後にユーザー属性情報を設定します。各項目に入力して「登録」をクリックすればopswitchアカウントの作成は完了です。

組織を作成する

次に組織を作成します。組織とはAWSアカウントの連携情報やユーザー、ジョブをまとめる単位となります。ユーザーガイドに沿って組織を作成してみます。

opswitchユーザーガイド | 組織を作成する

作成できました!

AWSアカウントを連携する

次にAWSアカウントを連携します。opswitchを使ってAWS環境のリソースを操作するためにAWSアカウントを連携する必要があります。

opswitchユーザーガイド | AWSアカウントと連携する

連携できました! これでopswitchをはじめる準備は完了です。

タスクとジョブを作成する

opswitchを使ってインスタンスの起動・停止やバックアップ等を行うためには、タスクとジョブを作成します。

opswitchユーザーガイド | タスクとジョブ

タスク

何をするかの定義になります。例えばEBSのスナップショットやEC2のバックアップの作成を、どのAWSアカウントのどこのリージョンでどのタグがついたリソースを対象にするかを設定します。ジョブを作成する前にまずタスクから作成します。

ジョブ

どのタスクをどの順番でどのようなスケジュールで実行するか、という定義になります。例えば、毎日3:00にタスクA、タスクBを順番に実行する、というような設定を行います。

それでは簡単にEC2インスタンスを手動で起動するジョブを作成してみます。

EC2インスタンスの起動タスクを作成する

ヘッダーのメニューにある「タスク」 > 「EC2」 > 「EC2インスタンスの起動・停止」をクリックします。

タスクはまだ作成されていないので一覧には何も表示されていません。「作成」タブをクリックします。

作成フォームが開きますので、タスクを作成していきます。東京リージョンのNameotameshiのEC2インスタンスを起動するタスクを作成します。

ジョブを作成する

ヘッダーのメニューの「ジョブ」をクリックします。

ジョブはまだ作成されていないので一覧には何も表示されていません。「ジョブの追加」をクリックします。

今回は先に作成したEC2インスタンスを起動する「おためし」タスクを手動で実行するジョブを作成します。

ジョブ実行

ジョブを実行する前にAWSマネジメントコンソールでEC2インスタンスの状態を確認します。

otameshiインスタンスは停止しています。それではジョブで起動させてみます。opswitchに戻って、ジョブの一覧を開きます。

リストの右側に操作のアイコンが並んでおり、その中の「実行」アイコンをクリックします。確認ダイアログが表示されますので、「実行」します。しばらくすると実行履歴に実行結果が表示されます。実行履歴では開始・終了時刻や詳細なログを見ることができます。ステータスが「成功」になったことを確認し、再びAWSマネジメントコンソールでEC2インスタンスの状態を見てみます。

はい、EC2インスタンスが起動しました!

さいごに

いかがでしょうか? opswitchにAWSアカウントを連携し、タスクとジョブの設定を行うことで、opswitchからAWSの運用作業を行うことができました。次回からはより実践的なopswitchの使い方を紹介していきたいと思います。

opswitch開発チームでは今後もAWS環境の運用に役立つ機能を実装していきます。こんなことに使っています、こんなことはできますか?とったご感想やご意見がございましたら、是非こちらからお聞かせください。