みなさん。こんにちは。サニービュー事業部の小寺です。

アプリケーションに対してクラウド障害のシミュレーションを行えるサービス「AWS Fault Injection Simulator(以下、FIS)」 がGAになったので、試してみました。以前、当コラムでも紹介しております。

■利用するための準備

IAMロールを作成します。IAM ロールは信頼されたエンティティでIDプロバイダーとして「fis.amazonaws.com」を設定します。

ポリシーは、こちらを参考に設定します。

■FISで可能な実験について

Amazon Elastic Compute Cloud(EC2)

・aws:ec2:reboot-instancesー指定されたEC2インスタンスを再起動する
・aws:ec2:stop-instancesー指定されたEC2インスタンスを停止する
・aws:ec2:terminate-instancesー指定されたEC2インスタンスを終了する

Amazon Elastic Container Service(ECS)

クラスター上の基になるEC2インスタンスの割合を排出する
ECS APIのUpdateContainerInstancesStateが実行される

Amazon Elastic Kubernetes Service(EKS)

aws:eks:terminate-nodegroup-instance-クラスター上の基になるEC2インスタンスをパーセンテージ指定で終了させる

Amazon Relational Database Service(RDS)

aws:rds:failover-db-cluster-指定したDBクラスターをフェイルオーバーさせる
aws:rds:reboot-db-instances-指定したDBインスタンスを再起動する

SystemsManager

aws:ssm:send-commandー 指定したssmドキュメントを実行する

■FISで実験をする

1) 「FIS」でサービス名を検索します。

2)「 実験テンプレートを作成」をクリックします。

3) 「説明」を入力し、「IAMロール」で先ほど作成したロールを選びます。

4) アクションのエリアでアクション(どんなトラブルなのか)を設定します。 今回は、EC2インスタンスの停止を想定して、名前を入力し、アクションタイプから「aws:ec2:stop-instances」を選び、「保存」をクリックします。

5) 先ほど設定したアクションが確認できます。

6) ターゲットより「編集」をクリックします。

7) リソースIDを選んで「保存」をクリックします。

※「ターゲットメソッド 」で「リソースタグとフィルター」を選ぶと、タグの指定も可能です。

8) 停止条件では、実験を終了させる、CloudWatchアラームの指定もできます。特に指定がない場合「実験テンプレートを作成」をクリックします。

9)作成したテンプレートを選択して、「アクション」から「実験を開始」を選択します。

10) 「実験を開始」をクリックします。

11) メッセージが表示されるので、確認のうえ、「実験を開始」をクリックします。

12) 実験が開始されます。

13)実験が完了すると「Completed」になりました。

■対象のリージョン

アジア太平洋(大阪)と中国の2つのリージョンを除くすべての商用AWSリージョンで利用が可能です。

■まとめ

いかがでしたでしょうか。 2021年のうち、FISには対応サービスとアクションの追加が行われていく予定です。FISの活用がますます進みそうですね!