잘못된 내용이나 의견 있다면 편하게 말씀해주세요.🙏🏻
개발/테스트 목적의 단일 노드 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
Reference
테라폼 프로비저닝
'👾 Server > 🆃 Terraform' 카테고리의 다른 글
Terraform(테라폼)을 활용한 Heroku(헤로쿠) app 프로비저닝 하기 (0) | 2022.08.01 |
---|---|
Terraform(테라폼)이란? 간단 사용기 (3) | 2022.07.11 |
댓글