みなさん。こんにちは。サニービュー事業部の小寺です。
アプリケーションに対してクラウド障害のシミュレーションを行えるサービス「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の活用がますます進みそうですね!
AWSをご利用いただくには、直接契約するより断然お得。
AWS利用料が5%割引、さらに日本円の請求書による支払いが可能です!