Metadata is mostly for organizing and presenting Parameters in a better way when using CloudFormation in the AWS Web UI.
- ECSSubnet
- ALBSubnetPri
- ALBSubnetSec
- JMXSecGrp
These are the input parameters for this template. All of these parameters must be supplied for this template to be deployed.
ECSSubnet: Description: "Select the subnet to use for the container (e.g., subnet-b0247ggh)" Type: 'AWS::EC2::Subnet::Id' MinLength: 1 ALBSubnetPri: Description: "Select the primary subnet to use for the load balancer (e.g., subnet-b0247ggh)" Type: AWS::EC2::Subnet::Id MinLength: 1 ALBSubnetSec: Description: "Select the secondary subnet to use for the load balancer (e.g., subnet-b0247ggh)" Type: AWS::EC2::Subnet::Id MinLength: 1
JMXSecGrp: Description: "Select the security group used by the Prometheus JMX task" Type: 'AWS::EC2::SecurityGroup::Id' MinLength: 1
SplunkEnabled: !Not [!Equals [ !Ref CriblHECToken, ""]]
All of the resources deployed by the template.
Defines the EFS volume needed for this stack Resource: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html
EFS Mountpoints must be created for each Availability Zone in the VPC. This is also where you define access controls, as access to EFS is controlled by these security groups.
A pair of mount points must be created for each EFS volume.
Copied from efs_volume.yaml template.
Defines the access points for the EFS volumes Resource: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-accesspoint.html
This security group defines what resources are able to access the EFS shared filesystem. Resource: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html
Defines the ECS Cluster Resource: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html
Need to make sure the LB is created before the ECS cluster is created
Defines the ECS Task Definition if using JMX Reference: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html
EFS volumes that are mounted on the container https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-volumes - "The host and sourcePath parameters aren't supported for tasks run on AWS Fargate." https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-efsvolumeconfiguration.html
RootDirectory: "/mosaic/KFS7_NONPROD/devfinmod336"
Defines the ECS Task Definition if NOT using JMX Reference: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html
EFS volumes that are mounted on the container https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-volumes - "The host and sourcePath parameters aren't supported for tasks run on AWS Fargate." https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-efsvolumeconfiguration.html
RootDirectory: "/mosaic/KFS7_NONPROD/devfinmod336"
Defines the ECS Task IAM Role Reference: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html
- "kms:Decrypt" # added for aws support testing
- "ssm:GetParameters" # added for aws support testing
- "*" # added for aws support testing
Defines the ECS Service Reference: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html
Defines the ECS Log Group Reference: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html
Defines the ECS Security Group Reference: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html
Defines the ECS Security Group Ingress Reference: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html
Defines the ECS Security Group Ingress Reference: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html
Defines the ECS Security Group Ingress Reference: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html
SourceSecurityGroupId: !Ref JMXSecGrp
Use to add the Instance SG to the DB SG This is needed to allow the atom to connect to the DB
Defines the Application Load Balancer Security Group Reference: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html
Defines the Application Load Balancer Reference: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html
Defines the ALB Listener Reference: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html
Defines the ALB Target Group Reference: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html
Defines the ALB DNS Record Set Reference: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html ALBDNSRecord: Type: AWS::Route53::RecordSet Properties: AliasTarget: HostedZoneId: !GetAtt ALB.CanonicalHostedZoneID DNSName: !GetAtt ALB.DNSName HostedZoneName: !Sub "${DNSHostedZone}." Name: !Sub "${DNSAliasName}.${DNSHostedZone}." Type: A
Create a DNS entry in Route53 for this environment. This creates a CNAME pointing at the DNS name of the Load Balancer. Reference: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html
Append a period after the hosted zone DNS name
Output values that can be viewed from the AWS CloudFormation console.
FinMod Boomi Atom Template
This CloudFormation template creates an ECS cluster with tasks that will serve as a local atoms. It is configured to use Fargate instead of EC2 instances. Currently the configuration related to mounting the KFS non-prod EFS volume prevents this template from starting up a task successfully.