본문 바로가기
👾 Server/🆃 Terraform

레디스를 5가지 방법으로 설치/구축하기 : Terraform + AWS ElastiCache

by kukim 2022. 12. 10.

잘못된 내용이나 의견 있다면 편하게 말씀해주세요.🙏🏻

 

개발/테스트 목적 단일 노드 Redis(Remote Dictionary Server)를 구축하는 5가지 방법을 소개합니다.

(1. 로컬, 2. docker-compose, 3. Embedded Redis, 4. Testcontainers, 5. AWS ElastiCache, Terraform)

운영 목적의 아키텍처(Replication, Sentinel, Cluster)는 아닙니다.

 

글 목록

[Redis] 레디스를 5가지 방법으로 설치/구축하기 : 로컬, docker-compose

[Redis] 레디스를 5가지 방법으로 설치/구축하기 : Embedded Redis, Testcontainers

[Redis] 레디스를 5가지 방법으로 설치/구축하기 : AWS ElastiCache + AWS Console

현재 글 : [Redis] 레디스를 5가지 방법으로 설치/구축하기 : Terraform + AWS ElastiCache

 

이번 글에서는 Terraform을 활용하여 AWS ElastiCache를 프로비저닝 합니다. 사용하는 테라폼 리소스는 aws_elasticache_cluster입니다. 보다 자세한 Terraform을 활용한 ElastiCache 프로비저닝은 공식 문서 Terraform - Resource: aws_elasticache_cluster, Terraform - Resource: aws_elasticache_replication_group를 참고해주세요.


+a) Terraform을 활용한 AWS ElastiCache 프로비저닝

요구되는 AWS 서비스

AWS ElastiCache를 구성하기 위한 AWS 서비스는 아래와 같습니다. 

 

IAM

- ElastiCache 생성 권한을 가진 Group / User : Policy 이름 -   AmazonElastiCacheFullAccess

- 만약 admin으로 생성한다면 IAM은 별도로 필요하지 않습니다.

 

Network(VPC / Subnet)

- ElastiCache가 생성될 VPC

- ElastiCache가 생성될 VPC의 priavte subnet

 

Network Security Group

- ElastiCache가 사용할 네트워크 보안 그룹 (인바운드 - anywhere:6379 / 아웃바운드 - 모든 트래픽)

 

ElastiCache

- 엔진 (redis vs memcached)

- 노드 타입 (cache.t2.micro...)

- 생성될 private subnet

- 사용할 네트워크 보안 그룹

-...

 

AWS ElastiCache 서비스 구축을 위해 필요한 서비스들을 알아보았습니다. 

이 서비스들을 Terraform으로 하나씩 프로비저닝 하면 됩니다.

Terraform을 활용한 프로비저닝

전체 소스 코드는 이곳을 참고해주세요. 테라폼 소스 코드에 대한 설명은 테라폼을 활용한 ElastiCache 프로비저닝 PR을 확인해주세요.

# ./infra/elasticache 디렉토리 설명

.
├── elasticache.tf # elasticache / Network 설정
├── iam.tf # iam 설정
├── main.tf # aws provider 설정
├── security_group.tf # 보안그룹 설정
└── variables.tf # iam 유저 생성할 변수

결과

# infra/elasticache 디렉토리에 있다는 가정하에
terraform init 

terraform plan

terraform apply

terraform apply
생성된 ElastiCache
terraform destory


Reference

 

테라폼 프로비저닝

댓글