feat: click to deploy to AWS test
This commit is contained in:
@@ -6,7 +6,7 @@ Shuffle Automation
|
||||
|
||||
[](https://github.com/Shuffle/Shuffle/actions/workflows/codeql-analysis.yml)
|
||||
[](https://github.com/Shuffle/Shuffle/actions/workflows/dockerbuild.yaml)
|
||||
[](https://deploy.cloud.run/?git_repo=https://github.com/0x0elliot/Shuffle&ref=2.0.0)
|
||||
[](https://console.aws.amazon.com/cloudformation/home?#/stacks/new?stackName=Shuffle-Instance&templateURL=https://raw.githubusercontent.com/Shuffle/Shuffle/refs/heads/2.0.0/template.yaml)
|
||||
|
||||
</h1><h4 align="center">
|
||||
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
AWSTemplateFormatVersion: '2010-09-09'
|
||||
Description: Deploy EC2 instance using a specific AMI, configure a security group with ingress rules for SSH and port 3001, and create VPC and subnet.
|
||||
|
||||
Parameters:
|
||||
AMI:
|
||||
Type: String
|
||||
Default: ami-021141a79f4c8fc02 # Default to your AMI ID if needed
|
||||
InstanceType:
|
||||
Type: String
|
||||
Default: t3.large # Default to t3.large
|
||||
VpcCidrBlock:
|
||||
Type: String
|
||||
Default: 10.0.0.0/16 # Default to a private network range
|
||||
SubnetCidrBlock:
|
||||
Type: String
|
||||
Default: 10.0.1.0/24 # Default to a smaller subnet range
|
||||
SecurityGroupName:
|
||||
Type: String
|
||||
Default: ShuffleSG
|
||||
|
||||
Resources:
|
||||
# Create the VPC
|
||||
VPC:
|
||||
Type: AWS::EC2::VPC
|
||||
Properties:
|
||||
CidrBlock: !Ref VpcCidrBlock
|
||||
EnableDnsSupport: "true"
|
||||
EnableDnsHostnames: "true"
|
||||
Tags:
|
||||
- Key: Name
|
||||
Value: ShuffleVPC
|
||||
|
||||
# Create the Subnet within the VPC
|
||||
Subnet:
|
||||
Type: AWS::EC2::Subnet
|
||||
Properties:
|
||||
CidrBlock: !Ref SubnetCidrBlock
|
||||
VpcId: !Ref VPC
|
||||
AvailabilityZone: !Select [ 0, !GetAZs '' ]
|
||||
MapPublicIpOnLaunch: "true"
|
||||
Tags:
|
||||
- Key: Name
|
||||
Value: ShuffleSubnet
|
||||
|
||||
# Create the Security Group for the EC2 instance
|
||||
SecurityGroup:
|
||||
Type: AWS::EC2::SecurityGroup
|
||||
Properties:
|
||||
GroupName: !Ref SecurityGroupName
|
||||
VpcId: !Ref VPC
|
||||
SecurityGroupIngress:
|
||||
- IpProtocol: tcp
|
||||
FromPort: 22
|
||||
ToPort: 22
|
||||
CidrIp: 0.0.0.0/0 # Allow SSH from anywhere
|
||||
- IpProtocol: tcp
|
||||
FromPort: 3001
|
||||
ToPort: 3001
|
||||
CidrIp: 0.0.0.0/0 # Allow traffic on port 3001 from anywhere
|
||||
|
||||
# Create an EC2 instance
|
||||
EC2Instance:
|
||||
Type: AWS::EC2::Instance
|
||||
Properties:
|
||||
ImageId: !Ref AMI
|
||||
InstanceType: !Ref InstanceType
|
||||
NetworkInterfaces:
|
||||
- AssociatePublicIpAddress: true
|
||||
DeviceIndex: 0
|
||||
GroupSet:
|
||||
- !Ref SecurityGroup
|
||||
SubnetId: !Ref Subnet
|
||||
Tags:
|
||||
- Key: Name
|
||||
Value: Shuffle AMI Test Instance
|
||||
CpuOptions:
|
||||
CoreCount: 1
|
||||
ThreadsPerCore: 1
|
||||
PrivateDnsNameOptions:
|
||||
HostnameType: "ip-name"
|
||||
EnableResourceNameDnsARecord: true
|
||||
EnableResourceNameDnsAAAARecord: false
|
||||
|
||||
Outputs:
|
||||
InstanceId:
|
||||
Description: "Instance ID of the created EC2 instance"
|
||||
Value: !Ref EC2Instance
|
||||
PublicIP:
|
||||
Description: "Public IP address of the EC2 instance"
|
||||
Value: !GetAtt EC2Instance.PublicIp
|
||||
VPCId:
|
||||
Description: "VPC ID"
|
||||
Value: !Ref VPC
|
||||
SubnetId:
|
||||
Description: "Subnet ID"
|
||||
Value: !Ref Subnet
|
||||
SecurityGroupId:
|
||||
Description: "Security Group ID"
|
||||
Value: !Ref SecurityGroup
|
||||
Reference in New Issue
Block a user