Skip to content

Instantly share code, notes, and snippets.

@vishalsg42
Last active September 6, 2020 05:51
Show Gist options
  • Save vishalsg42/504946ff3863e9dc9c31b286834069f4 to your computer and use it in GitHub Desktop.
Save vishalsg42/504946ff3863e9dc9c31b286834069f4 to your computer and use it in GitHub Desktop.
Cloudformation with Bitnami Redis Server
AWSTemplateFormatVersion: "2010-09-09"
Description: Provision Bitnami Redis Server with cloudformation
Parameters:
RedisPassword:
Type: String
Description: Redis password
Resources:
RedisEc2Instance:
Type: AWS::EC2::Instance
Properties:
InstanceType: t2.small
ImageId: ami-064e916063a94c38f # ami bitnami redis image id
Monitoring: true
SecurityGroupIds:
- !Ref EC2SecurityGroup
UserData:
"Fn::Base64": !Sub |
#!/bin/bash
/opt/bitnami/ctlscript.sh stop redis
password="$(grep -oP '(?<=requirepass )\w+' /opt/bitnami/redis/etc/redis.conf)"
echo $password
sed -i "s/$password/${RedisPassword}/g" /opt/bitnami/redis/etc/redis.conf
/opt/bitnami/ctlscript.sh start redis
RedisEc2EIP:
Type: AWS::EC2::EIP
Properties:
InstanceId: !Ref RedisEc2Instance
EC2SecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: Redis securtiy group
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: 6379
ToPort: 6379
CidrIp: 0.0.0.0/0
Outputs:
EC2PublicIp:
Description: Public IP address of the specified instances
Value: !GetAtt RedisEc2Instance.PublicIp
EC2PublicDnsName:
Description: Public DNS name of the specified instances
Value: !GetAtt RedisEc2Instance.PublicDnsName
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment