AWSTemplateFormatVersion: "2010-09-09" Description: Redis Cluster Parameters: VpcID: Type: AWS::EC2::VPC::Id Description: VPC Id PublicSubnet1ID: Type: AWS::EC2::Subnet::Id Description: Public Subnet Id for the first Availability Zone PublicSubnet2ID: Type: AWS::EC2::Subnet::Id Description: Public Subnet Id for the second Availability Zone NodeType: Type: "String" Description: "Compute type to use for cache nodes." Default: 'cache.t2.micro' NumCacheNodes: Type: "String" Description: "Number of cache nodes" Default: 1 # TLD: # Type: String # Default: internal-finbits.io # Domain: # Type: String # Default: cache-jp.internal-finbits.io Resources: CacheSubnetGroup: Type: AWS::ElastiCache::SubnetGroup Properties: Description: "Cache subnet group for internal subnets." CacheSubnetGroupName: !Sub "csg-${AWS::StackName}" SubnetIds: - !Ref PublicSubnet1ID - !Ref PublicSubnet2ID RedisCluster: Type: AWS::ElastiCache::ReplicationGroup Properties: ReplicationGroupId: !Sub '${AWS::StackName}' AtRestEncryptionEnabled: true # TransitEncryptionEnabled: true AutomaticFailoverEnabled: false AutoMinorVersionUpgrade: true CacheNodeType: !Ref NodeType CacheSubnetGroupName: Ref: CacheSubnetGroup Engine: redis EngineVersion: '4.0.10' NumCacheClusters: !Ref NumCacheNodes Port: 6379 PreferredMaintenanceWindow: sun:05:00-sun:09:00 ReplicationGroupDescription: A sample replication group SecurityGroupIds: - Fn::ImportValue: 'SecurityGroup-RedisSecurityGroup' SnapshotRetentionLimit: 5 SnapshotWindow: 10:00-12:00 Metadata: cfn_nag: rules_to_suppress: - id: F25 reason: ecs:listTasks does not support resource level permissions. - id: F33 reason: ecs:listTasks does not support resource level permissions. # DNSRecord: # Type: AWS::Route53::RecordSetGroup # Properties: # HostedZoneName: !Sub '${TLD}.' # RecordSets: # - Name: !Ref Domain # Type: CNAME # TTL: 300 # ResourceRecords: [!GetAtt RedisCluster.PrimaryEndPoint.Address] Outputs: RedisCluster: Value: !GetAtt RedisCluster.PrimaryEndPoint.Address Export: Name: 'Redis-RedisCluster' # Domain: # Value: !Ref Domain # Export: # Name: !Sub '${AWS::StackName}-Domain'