0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【AWS】TaskCatでCloudFormationのテストをする

Last updated at Posted at 2023-02-27

はじめに

AWS CloudFormationを作成していくなかでCloudFormationのテストやCICDパイプラインを組むためのツールはあるのかという点が気になりました。その際に知ったのが「TaskCat」です。
そこで、TaskCatのラボを基にハンズオンを実施してみました。今回は環境構築~Cloud Formationのテストまでを実施しています。

注意事項

TaskCatは指定された各リージョンに実際にデプロイと削除を実施します。そのため、AWS Configの利用費が発生する可能性がございますのでご注意ください。
また、本記事ではCloud 9で実施しているためCloud 9の使用料が発生する可能性がございます。併せてご注意ください。

ハンズオン実施環境

  • Python:3.7.16
  • TaskCat:0.9.36
  • Cloud 9

ハンズオン環境の準備

Cloud 9の構築

下記の設定でCloud 9を構築しました。
Cloud 9の構築方法はこちらからご確認ください。
スクリーンショット 2023-02-27 172140.png

スクリーンショット 2023-02-27 172256.png

TaskCatのインストール

TaskCatのインストールを行います。

python3 -m pip install taskcat 

下記のコマンドでバージョンを確認できます。

taskcat --version

image.png

作業用のディレクトリを準備

今回はTaskCatで使用する作業ディレクトリを準備しました。

1.TaskCat用のディレクトリを作成します。

mkdir taskCatTest 

2.作業用ディレクトリに移動

cd taskCatTest

EC2の鍵ペアを生成

今回のハンズオンではEC2の鍵ペアを生成しておく必要があります。
今回は東京リージョン(ap-northeast-1)で発行しました。

1.AWSコンソール上でAmazon EC2の画面を開きます。
 [ネットワーク&セキュリティ]>[キーペア]をクリックします。
スクリーンショット 2023-02-27 204628.png

2.右上の[キーペアを作成]をクリックします。
スクリーンショット 2023-02-27 204939.png

3.名前を入力し、[キーペアを作成]をクリックします。
スクリーンショット 2023-02-27 205110.png

TaskCatでテストを実行

テスト対象ファイルの作成

実際にテストしたいCloudFormationを作成します。
今回はAWS CloudFormationサービステンプレート
「Amazon VPC における単一の Amazon EC2」を使わせていただきました。

下記のコマンドでCloudFormaionに記載されている内容を「basic-VPC-sample.yaml」ファイルに
出力します。

curl https://s3.ap-northeast-1.amazonaws.com/cloudformation-templates-ap-northeast-1/VPC_Single_Instance_In_Subnet.template > basic-VPC-sample.yaml

プロジェクトレベルのテスト定義ファイルの追加

.taskcat.ymlを作成します。

.taskcat.yml
project:
  name: my-project
  regions:
    - ap-northeast-1
    - ap-northeast-3
tests:
 test-vpc-sample:
    parameters:
      InstanceType: t2.micro
      KeyName: taskCatTestKey
    template: ./basic-VPC-sample.yaml

  • regions : テストしたいリージョンを指定します。
  • parameters : CloudFormationテンプレートのParametersセクション項目の値を指定することができます。
  • template : テストしたいCloudFormationファイルのパスを指定します。

テストの実行と結果の確認

下記のコマンドでテストを実行します。

taskcat test run

実行後、作業用ディレクトリの配下に「taskcat_ouputs」ディレクトリが作成されます。
ディレクトリ配下に生成されているindex.htmlファイルを右クリックし、[Preview]をクリックします。

スクリーンショット 2023-02-27 215637.png

東京リージョン(ap-northeast-1)では成功、大阪リージョン(ap-northeast-3)では失敗していることが分かります。
[View Logs]をクリックすることで失敗した理由を知ることができます。

スクリーンショット 2023-02-27 220937.png

「taskCatTestKey」という名前の鍵が無いと言われています。
EC2の鍵ペアはインポートをしないと別のリージョンで使用することはできません。
そのため失敗しています。
スクリーンショット 2023-02-27 221036.png

まとめ

今回はTaskCatでCloudFomationのテストを実施しました。
各リージョンで使えるかどうかを確認できるためとても便利だと思いました。
次はCICDパイプラインに組み込むことを試したいと思います。

参考にさせていただいた記事・公式ドキュメント

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?