/usr/share/nginx/html/index.html Tags: - Key: "Name" Value: "skills-web" ALB: Type: "AWS::ElasticLoadBalancingV2::LoadBalancer" Properties: Name: "skills-alb" Scheme: "internet-facing" T"> /usr/share/nginx/html/index.html Tags: - Key: "Name" Value: "skills-web" ALB: Type: "AWS::ElasticLoadBalancingV2::LoadBalancer" Properties: Name: "skills-alb" Scheme: "internet-facing" T"> /usr/share/nginx/html/index.html Tags: - Key: "Name" Value: "skills-web" ALB: Type: "AWS::ElasticLoadBalancingV2::LoadBalancer" Properties: Name: "skills-alb" Scheme: "internet-facing" T">
AWSTemplateFormatVersion: "2010-09-09"
Description: "WorldSkills 2025 Practice"
Parameters:
Title:
Type: "String"
Default: "Hello, World!"
Vpc:
Type: String
Default: vpc-03455c42d95aded7f
Subnets:
Type: CommaDelimitedList
Default: subnet-042e563260baf3fd3,subnet-0abf0cbb6ceeebf03
Resources:
Instance:
Type: "AWS::EC2::Instance"
Properties:
ImageId: "ami-062cddb9d94dcf95d"
InstanceType: "t3.small"
KeyName: !Ref KeyPair
SecurityGroupIds:
- !GetAtt WebSecurityGroup.GroupId
UserData:
Fn::Base64: !Sub |
#!/bin/bash
yum update -y
yum install -y nginx
systemctl start nginx
systemctl enable nginx
echo "${Title}" > /usr/share/nginx/html/index.html
Tags:
- Key: "Name"
Value: "skills-web"
ALB:
Type: "AWS::ElasticLoadBalancingV2::LoadBalancer"
Properties:
Name: "skills-alb"
Scheme: "internet-facing"
Type: "application"
Subnets: !Ref Subnets
SecurityGroups:
- !GetAtt AlbSecurityGroup.GroupId
ALBListener:
Type: "AWS::ElasticLoadBalancingV2::Listener"
Properties:
LoadBalancerArn: !Ref ALB
Port: 80
Protocol: "HTTP"
DefaultActions:
- Order: 1
TargetGroupArn: !Ref TargetGroup
Type: "forward"
WebSecurityGroup:
Type: "AWS::EC2::SecurityGroup"
DependsOn: "AlbSecurityGroup"
Properties:
GroupDescription: "Allow SSH, HTTP traffic"
GroupName: "skills-web-sg"
SecurityGroupIngress:
- SourceSecurityGroupName: !Ref AlbSecurityGroup
FromPort: 80
IpProtocol: "tcp"
ToPort: 80
- CidrIp: "0.0.0.0/0"
FromPort: 22
IpProtocol: "tcp"
ToPort: 22
AlbSecurityGroup:
Type: "AWS::EC2::SecurityGroup"
Properties:
GroupDescription: "Allow HTTP traffic"
GroupName: "skills-alb-sg"
SecurityGroupIngress:
- CidrIp: "0.0.0.0/0"
FromPort: 80
IpProtocol: "tcp"
ToPort: 80
TargetGroup:
Type: "AWS::ElasticLoadBalancingV2::TargetGroup"
Properties:
HealthCheckPath: "/"
Port: 80
Protocol: "HTTP"
TargetType: "instance"
VpcId: !Ref Vpc
Name: "skills-web-tg"
HealthCheckEnabled: true
Targets:
- Id: !Ref Instance
Port: 80
KeyPair:
Type: "AWS::EC2::KeyPair"
Properties:
KeyName: "skills"
KeyType: "rsa"
Outputs:
DNSName:
Value: !GetAtt ALB.DNSName