Intial redis template

This commit is contained in:
Layla 2020-05-09 05:03:38 -04:00
parent a7eac6d09a
commit b051e15fa0

100
top.yaml Normal file
View File

@ -0,0 +1,100 @@
AWSTemplateFormatVersion: '2010-09-09'
Description: General use Redis Cluster
Parameters:
VpcId:
Type: AWS::EC2::VPC::Id
Description: The id of the VPC the cluster will be in
ConstraintDescription: VPC Id must begin with 'vpc-'
SubnetIds:
Type: List<AWS::EC2::Subnet::Id>
Description: Comma seperated list of subnets for ECS instances to run in
Project:
Type: String
Description: Project used in naming in tagging to associate with cluster
Environment:
Type: String
Description: Environment used in naming and tagging to associate with cluster
NodeType:
Type: String
Default: cache.t3.micro
RedisVersion:
Type: String
Default: 5.0.6
RedisPort:
Type: Number
Default: 6379
NumOfNodes:
Type: Number
Default: 2
ReadNodesPerNode:
Type: Number
Default: 1
Resources:
CacheSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: Redis Allowed Ports
VpcId: !Ref VpcId
SecurityGroupIngress:
- IpProtocol: icmp
FromPort: '-1'
ToPort: '-1'
CidrIp: 0.0.0.0/0
- IpProtocol: tcp
FromPort: !Ref RedisPort
ToPort: !Ref RedisPort
CidrIp: 0.0.0.0/0
SecurityGroupEgress:
- IpProtocol: icmp
FromPort: '-1'
ToPort: '-1'
CidrIp: 0.0.0.0/0
- IpProtocol: tcp
FromPort: '0'
ToPort: '65535'
CidrIp: 0.0.0.0/0
- IpProtocol: udp
FromPort: '0'
ToPort: '65535'
CidrIp: 0.0.0.0/0
SubnetGroup:
Type: AWS::ElastiCache::SubnetGroup
Properties:
CacheSubnetGroupName: !Sub "${Project}-Cache-${Environment}"
Description: String
SubnetIds: !Ref SubnetIds
RedisCluster:
Type: AWS::ElastiCache::ReplicationGroup
Properties:
CacheParameterGroupName: default.redis5.0.cluster.on
CacheNodeType: !Ref NodeType
CacheSubnetGroupName: !Ref SubnetGroup
Engine: redis
EngineVersion: !Ref RedisVersion
NumNodeGroups: !Ref NumOfNodes
Port: !Ref RedisPort
ReplicasPerNodeGroup: !Ref ReadNodesPerNode
ReplicationGroupDescription: Redis group for scaling
SecurityGroupIds:
- !Ref CacheSecurityGroup
Tags:
- Key: Project
Value: !Ref Project
- Key: Environment
Value: !Ref Environment
Outputs:
Cluster:
Description: Arn of the Redis Cluster
Value: !Ref RedisCluster
Port:
Description: Port
Value: !GetAtt RedisCluster.ConfigurationEndPoint.Port
Endpoint:
Description: Endpoint
Value: !GetAtt RedisCluster.ConfigurationEndPoint.Address