Azure Cache for Redis Enterprise using Terraform with Private Link
Azure Private Link for Azure Cache for Redis provides private connectivity from a virtual network to your cache instance. This means that you can now use Azure Private Link to connect to an Azure Cache for Redis instance from your virtual network via a private endpoint, which is assigned a private IP address in a subnet within the virtual network.It simplifies the network architecture and secures the connection between endpoints in Azure by eliminating data exposure to the public internet. Private Link carries traffic privately, reducing your exposure to threats and helps you meet compliance standards.
Azure Resource Manager(a.k.a AzureRM) is the deployment and management service for Azure. It provides a management layer that enables you to create, update, and delete resources in your Azure account. You can use management features, like access control, locks, and tags, to secure and organize your resources after deployment. The "azurerm_redis_enterprise_cluster" is a resource that manages a Redis Enterprise cluster. This is a template to get started with the 'azurerm_redis_enterprise_cluster' resource available in the 'azurerm' provider with Terraform.
Prerequisite
Step 1. Getting Started
Login in Azure using the Azure CLI
az login
Login with a Service Principal will also work
Login using an Azure Service Principal
az login --service-principal --username APP_ID --tenant TENANT_ID --password [password || /path/to/cert]
Step 2: Clone the repository
git clone https://github.com/redis-developer/acre-terraform
Step 3: Initialize the repository
cd acre-terraform
terraform init
The output should include:
Terraform has been successfully initialized
Step 4: Modify the variables(optional)
The default variables are setup to deploy the smallest 'E10' instance into the 'East US' region.
Changes can be made by updating the variables.tf
file.
Step 5: Verify the plan
The 'plan' output will show you everything being created by the template.
terraform plan
The output should include:
Plan: 18 to add, 0 to change, 0 to destroy.
Step 6: Apply the plan
When the plan looks good, 'apply' the template.
terraform apply
The output should include:
Apply complete! Resources: 18 added, 0 changed, 0 destroyed.
Step 7: Connect using generated output
The access key is sensitive, so viewing the outputs must be requested specifically. The output is also in JSON format.
terraform output redisgeek_config
Example output:
{
"hostname" = "redisgeek-8jy4.eastus.redisenterprise.cache.azure.net"
"access_key" = "DQYABC3uRMXXXXXXXXXXXXXXXXTRkfgOXXXPjs82Y="
"port" = "10000"
}