AWSTemplateFormatVersion: '2010-09-09' Description: catsndogs.lol workshop lab2. Deploys a load generator. Parameters: LabSetupStackName: Type: String Description: "Name of the catsndogs.lol workshop stack you created in Lab 0 / setup" Default: catsndogssetup Mappings: AWSRegionToAMZNLinuxAMI: us-east-1: AMIID: ami-a4c7edb2 us-east-2: AMIID: ami-8a7859ef us-west-1: AMIID: ami-327f5352 us-west-2: AMIID: ami-6df1e514 eu-central-1: AMIID: ami-82be18ed eu-west-1: AMIID: ami-d7b9a2b1 eu-west-2: AMIID: ami-ed100689 ap-northeast-1: AMIID: ami-3bd3c45c ap-southeast-2: AMIID: ami-10918173 ap-southeast-1: AMIID: ami-77af2014 ca-central-1: AMIID: ami-a7aa15c3 Resources: LoadGeneratorInstance: Type: AWS::EC2::Instance Metadata: AWS::CloudFormation::Init: config: files: /home/ec2-user/targets: content: !Join ['', [ "GET http://", "Fn::ImportValue" : {"Fn::Sub":'${LabSetupStackName}-ALBDNSName'}, '/cats', ' ', 'GET http://', "Fn::ImportValue" : {"Fn::Sub":'${LabSetupStackName}-ALBDNSName'}, '/dogs', ' ']] mode: '000777' owner: root group: root /home/ec2-user/load.sh: content: !Join ['', [ '#! /bin/bash', ' ', 'cd /home/ec2-user ', '/home/ec2-user/vegeta attack -targets targets -timeout 15m -output results.txt ']] mode: '000777' owner: root group: root Properties: ImageId: !FindInMap [AWSRegionToAMZNLinuxAMI, !Ref 'AWS::Region', AMIID] SubnetId: Fn::ImportValue: !Sub "${LabSetupStackName}-PriSubnet1" InstanceType: m4.large Tags: - Key: Name Value: LoadGenerator UserData: !Base64 Fn::Join: - '' - ['#!/bin/bash ', '/opt/aws/bin/cfn-init -s ', !Ref 'AWS::StackName', ' -r LoadGeneratorInstance --region ', !Ref 'AWS::Region', ' ', 'wget http://catsndogs-assets.s3.amazonaws.com/vegeta -P /home/ec2-user/ ', 'chmod +x /home/ec2-user/vegeta ', 'sleep 10', ' ', '/home/ec2-user/load.sh',' ']