AWSTemplateFormatVersion: "2010-09-09"
Metadata:
License: Apache-2.0
Description: "Create an AWS EC2 instance running the AWS Linux AMI."
Parameters:
KeyName:
Description: Name of an existing EC2 KeyPair
Type: AWS::EC2::KeyPair::KeyName
ConstraintDescription: must be the name of an existing EC2 KeyPair.
Resources:
Docker01:
Type: AWS::EC2::Instance
Properties:
InstanceType: t2.micro
SecurityGroups: [!Ref "InstanceSecurityGroup"]
KeyName: !Ref "KeyName"
ImageId: ami-0aeeebd8d2ab47354 # us-east-1
UserData:
!Base64 |
#!/bin/bash -xe
amazon-linux-extras install -y docker=latest
systemctl enable --now docker.service
curl -s https://raw.githubusercontent.com/docker/docker-ce/master/components/cli/contrib/completion/bash/docker -o /etc/bash_completion.d/docker.sh
usermod -a -G docker ec2-user
Tags:
- Key: Name
Value: docker-01
Docker02:
Type: AWS::EC2::Instance
Properties:
InstanceType: t2.micro
SecurityGroups: [!Ref "InstanceSecurityGroup"]
KeyName: !Ref "KeyName"
ImageId: ami-0aeeebd8d2ab47354 # us-east-1
UserData:
!Base64 |
#!/bin/bash -xe
amazon-linux-extras install -y docker=latest
systemctl enable --now docker.service
curl -s https://raw.githubusercontent.com/docker/docker-ce/master/components/cli/contrib/completion/bash/docker -o /etc/bash_completion.d/docker.sh
usermod -a -G docker ec2-user
Tags:
- Key: Name
Value: docker-02
InstanceSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: Enable SSH access on port 22
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: 22
ToPort: 22
CidrIp: "0.0.0.0/0"
Outputs:
PublicDNS01:
Description: Public DNS Name of the newly created AWS EC2 instance
Value: !GetAtt [Docker01, PublicDnsName]
PublicIP01:
Description: Public IP address of the newly created AWS EC2 instance
Value: !GetAtt [Docker01, PublicIp]
PublicDNS02:
Description: Public DNS Name of the newly created AWS EC2 instance
Value: !GetAtt [Docker02, PublicDnsName]
PublicIP02:
Description: Public IP address of the newly created AWS EC2 instance
Value: !GetAtt [Docker02, PublicIp]
Comments