by Parijat Ambilwade on Feb 15, 2024 . 1 minute Read
In today’s dynamic digital landscape, Organizations are embracing the versatility of multi-cloud strategies, leveraging the diverse offerings of public cloud providers such as Azure, AWS, and Google Cloud. Each platform boasts unique strengths, making them ideal for specific use cases. For instance, Azure excels in seamless integration with enterprise applications, while Google Cloud stands out for its robust machine learning capabilities, and AWS is renowned for its comprehensive suite of services.
Cross Cloud connectivity is crucial when implementing a multi-cloud solution. While larger enterprises often leverage Direct Connect and Express Route via their on-premises data centers for robust inter-cloud connectivity, startups and smaller businesses seek simpler, more agile solutions to kickstart their multi-cloud journey.
The solution is to establish a BGP-enabled connection between Azure and Amazon Web Services (AWS). By leveraging Azure VPN Gateway and AWS VPN, we can establish a connectivity between AWS and Azure with a bandwidth of 1.25Gbps.
module "aws_vpc" {
source = "terraform-aws-modules/vpc/aws"
name = "aws"
cidr = "10.0.0.0/16"
enable_nat_gateway = false
enable_vpn_gateway = true
propagate_private_route_tables_vgw = true
propagate_public_route_tables_vgw = true
azs = ["us-east-1a"]
#private_subnets = ["10.0.1.0/24"]
public_subnets = ["10.0.0.0/24"]
tags = {
terraform = "true"
environment = "dev"
costcenter = "it"
}
}
resource "azurerm_resource_group"
"azure_vpc" {
location =
var.azure_location
name = "azure-network-rg"
}
module "azure_vpc" {
source = "Azure/vnet/azurerm"
vnet_name = "azure"
resource_group_name = azurerm_resource_group.azure_vpc.name
use_for_each = true
address_space = ["10.1.0.0/16"]
subnet_prefixes = ["10.1.0.0/24", "10.1.255.0/24"]
subnet_names = ["subnet1", "GatewaySubnet"]
vnet_location =
var.azure_location
tags = {
terraform = "true"
environment = "dev"
costcenter = "it"
}
}
module "s2s_vpn" {
source = "terraform-xops-modules/aws-azure-vpn/xops"
aws_vpc_id = module.aws_vpc.vpc_id
aws_vpn_gateway_id = module.aws_vpc.vgw_id
azure_rsg_name = azurerm_resource_group.azure_vpc.name
azure_vnet_name = module.azure_vpc.vnet_name
azure_location = azurerm_resource_group.azure_vpc.location
azure_gateway_subnet_id = module.azure_vpc.vnet_subnets_name_id.GatewaySubnet
}
Check the Terraform Registry for full documentation of the module and for more examples refer the Github Repository: terraform-xops-aws-azure-vpn
About Author