Computer >> 컴퓨터 >  >> 프로그램 작성 >> Redis

HashiCorp Terraform으로 Redis Enterprise Cloud Anywhere 프로비저닝 및 관리

오늘 HashiCorp Terraform Redis Enterprise Cloud 제공업체의 출시를 발표하게 된 것을 기쁘게 생각합니다. 개발 팀이 CI/DC(지속적 통합/지속적 제공)와 같은 DevOps 원칙을 점점 더 많이 수용하는 동안 코드로 인프라를 관리해야 하는 필요성은 모든 클라우드 서비스에서 거의 필수 기능이 되었습니다. 코드 공간으로서의 인프라에서 선도적인 도구는 HashiCorp Terraform으로, 모든 클라우드, 인프라 및 서비스의 프로비저닝, 규정 준수 및 관리를 위한 공급자 및 모듈 클라우드 인프라 자동화 에코시스템을 통해 주요 클라우드 공급자 및 서비스를 지원합니다.

Terraform이란 무엇입니까?

익숙하지 않다면 Terraform은 인프라를 안전하고 효율적으로 구축, 변경 및 버전 관리하고 코드로 모든 것을 관리하는 도구입니다. 구성 파일은 응용 프로그램을 실행하는 데 필요한 구성 요소를 설명하는 데 사용됩니다. Terraform은 베어 메탈, 가상 머신, 클라우드 인스턴스 및 기타 널리 사용되는 IaaS(Infrastructure-as-a-Services) 서비스를 포함하여 거의 모든 인프라 구성 요소를 관리할 수 있습니다. 애플리케이션 스택의 구성 요소는 Terraform에서 리소스로 표시됩니다. Terraform 공급자는 관련 리소스의 API 상호 작용을 이해하고 리소스의 기능을 세상에 노출할 책임이 있습니다.

그래서 오늘 발표할 내용은 무엇입니까?

이러한 증가하는 수요를 충족하기 위해 Redis는 Redis Enterprise Cloud용 Terraform 공급자를 개발했습니다. HashiCorp Terraform Redis Enterprise Cloud Provider를 통해 고객은 Redis Enterprise Cloud 구독, 데이터베이스 및 네트워크 피어링을 모든 클라우드 제공업체에서 코드로 쉽게 배포 및 관리할 수 있습니다.

빠른 시작

Redis Enterprise Cloud의 Terraform Provider가 어떻게 작동하고 무엇을 할 수 있는지 보여주기 위해 RedisJSON 모듈을 사용하는 데이터베이스 중 하나를 포함하여 두 개의 데이터베이스로 샘플 구독을 생성해 보겠습니다.

전제 조건:

  1. Terraform이 로컬에 설치되었습니다.
  2. Redis Enterprise Cloud 계정.
  3. Redis Enterprise Cloud 계정에 대한 프로그래밍 방식 액세스가 활성화되었습니다.

Redis Enterprise Cloud API 키를 환경 변수로 저장하여 시작하겠습니다.

$ export REDISCLOUD_ACCESS_KEY=<귀하의 API 액세스 키>

$ export REDISCLOUD_SECRET_KEY=<귀하의 API 비밀 키>

이제 새 폴더를 만들고 여기에 표시된 Terraform HCL 파일을 배치합니다. rediscloud-tf-example.tf:

파일을 호출해 보겠습니다.
terraform {
 required_providers {
   rediscloud = {
     source = "Redis/rediscloud"
     version = "0.2.0"
   }
 }
}
# Provide your credit card details
data "rediscloud_payment_method" "card" {
 card_type = "Visa"
 last_four_numbers = "1234"
}
 
# Generates a random password for the database
resource "random_password" "passwords" {
 count = 2
 length = 20
 upper = true
 lower = true
 number = true
 special = false
}
 
resource "rediscloud_subscription" "example" {
 name = "Demo"
 payment_method_id = data.rediscloud_payment_method.card.id
 memory_storage = "ram"
 
 cloud_provider {
   #Running in AWS on Redis resources
   provider = "AWS"
   cloud_account_id = 1
   region {
     region = "eu-west-1"
     networking_deployment_cidr = "10.0.0.0/24"
     preferred_availability_zones = ["eu-west-1a"]
   }
 }
 database {
   name = "redis-db"
   protocol = "redis"
   memory_limit_in_gb = 1
   replication = true
   data_persistence = "none"
   throughput_measurement_by = "number-of-shards"
   throughput_measurement_value = 2
   password = random_password.passwords[0].result
 }
 database {
   name = "db-json"
   protocol = "redis"
   memory_limit_in_gb = 1
   replication = true
   data_persistence = "aof-every-1-second"
   module {
       name = "RedisJSON"
   }
   throughput_measurement_by = "operations-per-second"
   throughput_measurement_value = 10000
   password = random_password.passwords[1].result
 }
}

다음 단계는 다음 명령을 실행하여 Terraform 환경을 초기화하는 것입니다.

$ 테라폼 초기화

결과는 다음과 같아야 합니다.

...
Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.
...

Terraform이 성공적으로 초기화되면 다음 명령을 실행하여 Terraform이 계획을 생성하도록 합니다.

$ 테라폼 계획

출력은 다음과 유사해야 합니다.

...
Plan: 1 to add, 0 to change, 0 to destroy.
...

이제 Terraform이 마법을 부리고 데이터베이스를 프로비저닝하도록 합시다.

$ 테라폼 적용

terraform apply 명령이 완료되면 완료하는 데 몇 분이 걸릴 수 있으며 다음과 같은 결과를 생성해야 합니다.

…
rediscloud_subscription.example: Creation complete after 8m16s [id=103873]
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
...

보시다시피 이제 두 개의 새 데이터베이스를 프로비저닝했습니다. 데이터베이스의 엔드포인트를 가져와 애플리케이션에 연결하기만 하면 됩니다. 또한 간소화된 Redis 애플리케이션 개발을 위한 GUI인 RedisInsight를 사용할 수도 있습니다. 연결하고 데이터를 탐색합니다.

Redis Enterprise Cloud 콘솔에 새 구독 및 데이터베이스가 표시됩니다.

HashiCorp Terraform으로 Redis Enterprise Cloud Anywhere 프로비저닝 및 관리

데이터베이스 사용이 끝나면 다음 명령을 실행하여 모든 것을 해제할 수 있습니다.

$ 테라폼 파괴

다음은 무엇입니까?

우리는 HashiCorp Terraform Redis Enterprise Cloud Provider의 기능을 계속 확장할 것입니다. 제공업체에서 지원했으면 하는 아이디어나 기능이 있거나 버그를 발견한 경우 GitHub 리포지토리에서 문제를 열어 알려주십시오. pm.group@redis.com으로 연락하셔도 됩니다.

프로덕션 사용 사례의 경우 HashiCorp의 Terraform용 클라우드 기반 제품인 를 사용하는 것도 권장합니다. 이렇게 하면 구성 파일 및 소스 제어 외부의 보안 환경에 자격 증명을 저장할 수 있습니다. Terraform Cloud는 또한 무료 원격 상태 저장소, 사용자 지정 작업 공간 권한, 버전 제어 시스템 통합 및 정책과 같은 협업 기능과 함께 제공됩니다. terraform.io/cloud에서 무료로 가입할 수 있습니다.