2020年5月8日のアップデートで、AWS Service Catalogのサービスアクションでパラメーターサポートが利用可能になりました。
Parameter support is now available with service actions in AWS Service Catalog
しかし、Service Catalogのサービスアクションってそもそも何でしょうか。
そんなところから試してみました。
AWS Service Catalogとは
AWS Service Catalog では、AWS での使用が承認された IT サービスのカタログを作成および管理できます。この IT サービスには、仮想マシンイメージ、サーバー、ソフトウェア、データベースから包括的な多層アプリケーションアーキテクチャまで、あらゆるものが含まれます。AWS Service Catalog では、一般的にデプロイされた IT サービスを集中管理でき、一貫性のあるガバナンスを実現し、コンプライアンス要件を満たすと同時に、ユーザーは必要な承認済みの IT サービスのみをすばやくデプロイできます。
以前にService Catalogの入門編の記事(AWS Service Catalogで制御された自由を)を書きましたので、全く知らない方はまずみていただければと思います。 今回の内容は前回からの続きになります。
サービスアクションとは
前回はService Catalogを通して、EC2インスタンスを起動しました。 起動後のインスタンスに対してできることは、SSHなどでログインし操作することを除けば、更新、所有者の変更、削除のみです。 薄々気づいていましたが、なかなかにストイックな感じです。
サービスアクションを定義すれば、作成した製品に対してできるアクションを追加できます。 どのようなアクションを追加できるかといえば、Systems Manager オートメーションで利用できるドキュメントとなります。
再起動のサービスアクションを定義してみる
公式ページ(AWS Service Catalog のサービスアクション)では、再起動の例が記載されているので、その通りにやってみます。
ステップ 1: エンドユーザーのアクセス許可を設定する
エンドユーザーの属しているIAMグループに、下記のポリシーを追加します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1536341175150", "Action": [ "servicecatalog:ListServiceActionsForProvisioningArtifact", "servicecatalog:ExecuteprovisionedProductServiceAction", "ssm:DescribeDocument", "ssm:GetAutomationExecution", "ssm:StartAutomationExecution", "ssm:StopAutomationExecution", "cloudformation:ListStackResources", "ec2:DescribeInstanceStatus", "ec2:StartInstances", "ec2:StopInstances" ], "Effect": "Allow", "Resource": "*" } ] }
ステップ 2: サービスアクションを作成する
Service Catalog > サービスのアクション > アクションの作成
SSMドキュメントの選択
定義済みのSSMドキュメントがズラッと並ぶので、再起動用のAWS-RestartEC2Instanceを選択します。
アクション詳細の仕様
アクション名はデフォルトのままにしました。
ちなみに日本語入力不可でした。(^[a-zA-Z0-9_-.]*のパターンが許可)
パラメータとターゲットの設定
このパラメータが今回アップデートされたところと思われます。
SSMドキュメントの種類によって、パラメータが異なっていたり、数が多くあったりします。
ただ、今回はパラメータはデフォルトのままにします。
再起動のアクションに必要なパラメータは、対象のインスタンスIDだけで問題ないはずです。
アクセス許可
アクセス許可もそのままにします。
作成できました
ステップ 3: サービスアクションを製品バージョンに関連付ける
作成したサービスアクションを選択し、アクションの関連付けを行います。
前回の記事で作成した開発用Ubuntuという製品の全バージョンに関連付けをします。
私の環境ではなぜかエラー表示が出ましたが、画面を更新してみると、問題なく関連付けに成功していました。
ステップ 4: エンドユーザーのエクスペリエンスをテストする
前回記事の手順でEC2インスタンスは作成済みとします。 アクションで、定義したAWS-RestartEC2Instanceが選択できるようになっています。
アクションの実行を選択します。
アクションが実行され、状況がIn progressとなります。
しばらく待つと、成功となりました。
おまけ
Service Catalogで実行されたアクションはの実行ログは、Systems Manager Automationでも確認できます。
感想
Service CatalogでSystems Manager オートメーションを実行できるとわかりました。
Systems Manager オートメーションに詳しくなれば、便利そうな気がします。
私は少しまだわかってないのは、エンドユーザーのIAMグループに割り当てた権限です。 公式ドキュメントの通りにポリシー設定すると、どのインスタンスに対しても再起動できてしまう気がしました。 ただ、IAMユーザーにアクセスキーを割り当てなければ、問題ないかもしれません。 機会があれば、調べてみたいと思います。
渡辺 信秀(記事一覧)
2017年入社 / 地味な内容を丁寧に書きたい