マルチクラウドでVPC同士接続してみるその②(AWSとAzure編)
前回から時間が空きましたが、今度はAzureとAWSをSite to SiteVPNで接続してみました。ひとまずはEC2とAzureVMも立てて通信できているかも確認しました。Azureの方でVPNGateway作成するときに20分とか結構な時間がかかるので要注意かな。
構成は以下の図みたいな感じです。
◆シリーズ
1.AWSとGCP接続
2.AWSとAzure接続
3.GCPとAzure接続
4.AWSとGCPとAzure接続
◆大まかな流れ
1.AWSでVPCとサブネット作成
2.AzureでVNETとサブネット作成
3.AzureでVPNGateway作成
4.AWSで仮想プライベートゲートウェイ作成
5.Azureでローカルネットワークゲートウェイ作成とトンネル設定
6.AWSでプライベートサブネットにEC2作成
7.AZureでサブネットにVMを作成
8.Azure側の後始末
9.AWS側の後始末
◆コマンドライン(先頭にプロンプト付きなので注意)
1.AWSでVPCとサブネット作成
1.1.VPC作成
$ REGION=ap-northeast-1 $ VPC_NAME=multi-cloud-vpn-aws $ VPC_CIDR=172.20.0.0/16 $ STRING_EC2_VPC_TAG="ResourceType=vpc,Tags=[{Key=Name,Value=${VPC_NAME}}]" \ && echo ${STRING_EC2_VPC_TAG} $ aws ec2 create-vpc \ --cidr-block ${VPC_CIDR} \ --tag-specifications ${STRING_EC2_VPC_TAG}
1.2.サブネット作成
$ AZ_CODE="a" $ SUBNET_TYPE="private" $ SUBNET_NAME=${VPC_NAME}"-"${SUBNET_TYPE}"-subnet-"${AZ_CODE} \ && echo ${SUBNET_NAME} $ SUBNET_CIDR=172.20.10.0/24 $ AZ_NAME=${REGION}${AZ_CODE} \ && echo ${AZ_NAME} $ STRING_EC2_SUBNET_TAG="ResourceType=subnet,Tags=[{Key=Name,Value=${SUBNET_NAME}}]" \ && echo ${STRING_EC2_SUBNET_TAG} $ VPC_ID=$( \ aws ec2 describe-vpcs \ --filters Name=tag:Name,Values=${VPC_NAME} \ --query 'Vpcs[].VpcId' \ --output text \ ) \ && echo ${VPC_ID} $ aws ec2 create-subnet \ --vpc-id ${VPC_ID} \ --cidr-block ${SUBNET_CIDR} \ --availability-zone ${AZ_NAME} \ --tag-specifications ${STRING_EC2_SUBNET_TAG} $ AZ_CODE="c" $ SUBNET_NAME=${VPC_NAME}"-"${SUBNET_TYPE}"-subnet-"${AZ_CODE} \ && echo ${SUBNET_NAME} $ SUBNET_CIDR=172.20.20.0/24 $ AZ_NAME=${REGION}${AZ_CODE} \ && echo ${AZ_NAME} $ STRING_EC2_SUBNET_TAG="ResourceType=subnet,Tags=[{Key=Name,Value=${SUBNET_NAME}}]" \ && echo ${STRING_EC2_SUBNET_TAG} $ aws ec2 create-subnet \ --vpc-id ${VPC_ID} \ --cidr-block ${SUBNET_CIDR} \ --availability-zone ${AZ_NAME} \ --tag-specifications ${STRING_EC2_SUBNET_TAG}
1.3.セキュリティグループ作成
$ SECURITY_GROUP_NAME=${VPC_NAME}"-sg" \ && echo ${SECURITY_GROUP_NAME} $ STRING_SG_TAG="ResourceType=security-group,Tags=[{Key=Name,Value=${SECURITY_GROUP_NAME}}]" \ && echo ${STRING_SG_TAG} $ SECURITY_GROUP_DESCRIPTION='multi-cloud-vpn' $ aws ec2 create-security-group \ --group-name ${SECURITY_GROUP_NAME} \ --description "${SECURITY_GROUP_DESCRIPTION}" \ --vpc-id ${VPC_ID} \ --tag-specifications ${STRING_SG_TAG}
$ VPC_COMMENT=ingress_internal $ ACCEPT_CIDR=172.31.0.0/16 #GCPのサブネットIPアドレスレンジ $ ACCEPT_INGRESS_COMMENT=ingress_vpn # $ ACCEPT_EGRESS_COMMENT=egress_vpn $ SECURITY_GROUP_ID=$( \ aws ec2 describe-security-groups \ --filter Name=vpc-id,Values=${VPC_ID} \ Name=group-name,Values=${SECURITY_GROUP_NAME} \ --query 'SecurityGroups[].GroupId' \ --output text \ ) \ && echo ${SECURITY_GROUP_ID} $ aws ec2 authorize-security-group-ingress \ --group-id ${SECURITY_GROUP_ID} \ --ip-permissions IpProtocol=-1,IpRanges="[{CidrIp=${VPC_CIDR},Description=\"${VPC_COMMENT}\"}]" $ aws ec2 authorize-security-group-ingress \ --group-id ${SECURITY_GROUP_ID} \ --ip-permissions IpProtocol=-1,IpRanges="[{CidrIp=${ACCEPT_CIDR},Description=\"${ACCEPT_INGRESS_COMMENT}\"}]"
1.4.ルートテーブルへのアタッチ
$ ROUTE_TABLE_ID=$( \ aws ec2 describe-route-tables \ --filters Name=vpc-id,Values=${VPC_ID} \ --query "RouteTables[].RouteTableId" \ --output text \ ) \ && echo ${ROUTE_TABLE_ID} $ ROUTE_TABLE_NAME="rt-"${VPC_NAME} \ && echo ${ROUTE_TABLE_NAME} $ aws ec2 create-tags \ --resources ${ROUTE_TABLE_ID} \ --tags '[{"Key":"Name","Value":"'${ROUTE_TABLE_NAME}'"}]' $ AZ_CODE="a" $ SUBNET_TYPE="private" $ SUBNET_NAME=${VPC_NAME}"-"${SUBNET_TYPE}"-subnet-"${AZ_CODE} \ && echo ${SUBNET_NAME} $ SUBNET_ID=$( \ aws ec2 describe-subnets \ --filters Name=vpc-id,Values=${VPC_ID} \ Name=tag:Name,Values=${SUBNET_NAME} \ --query "Subnets[].SubnetId" \ --output text \ ) \ && echo ${SUBNET_ID} $ aws ec2 associate-route-table \ --subnet-id ${SUBNET_ID} \ --route-table-id ${ROUTE_TABLE_ID} $ AZ_CODE="c" $ SUBNET_NAME=${VPC_NAME}"-"${SUBNET_TYPE}"-subnet-"${AZ_CODE} \ && echo ${SUBNET_NAME} $ SUBNET_ID=$( \ aws ec2 describe-subnets \ --filters Name=vpc-id,Values=${VPC_ID} \ Name=tag:Name,Values=${SUBNET_NAME} \ --query "Subnets[].SubnetId" \ --output text \ ) \ && echo ${SUBNET_ID} $ aws ec2 associate-route-table \ --subnet-id ${SUBNET_ID} \ --route-table-id ${ROUTE_TABLE_ID}
2.AzureでVNETとサブネット作成
2.1.NSGの作成
$ VNET_NAME=multi-cloud-vpn-azure $ RESOURCE_GROUP=rg_multicloud $ NSG_NAME=${VNET_NAME}-nsg $ AWS_SUBNET_CIDR=172.20.0.0/16 $ VNET_CIDR=172.31.0.0/16 $ az network nsg create --resource-group ${RESOURCE_GROUP} --name ${NSG_NAME}
$ NSG_RULE_NAME=${NSG_NAME}-azure-ingress $ az network nsg rule create \ --resource-group ${RESOURCE_GROUP} \ --name ${NSG_RULE_NAME} \ --nsg-name ${NSG_NAME} \ --priority 100 \ --source-address-prefixes ${VNET_CIDR} \ --destination-port-ranges * \ --destination-address-prefixes ${VNET_CIDR} \ --access Allow \ --protocol * \ --description "allow azure subnet." $ NSG_RULE_NAME=${NSG_NAME}-aws-ingress $ az network nsg rule create \ --resource-group ${RESOURCE_GROUP} \ --name ${NSG_RULE_NAME} \ --nsg-name ${NSG_NAME} \ --priority 101 \ --source-address-prefixes ${AWS_SUBNET_CIDR} \ --destination-port-ranges * \ --destination-address-prefixes ${VNET_CIDR} \ --access Allow \ --protocol * \ --description "allow aws subnet." $ NSG_RULE_NAME=${NSG_NAME}-aws-egress $ az network nsg rule create \ --resource-group ${RESOURCE_GROUP} \ --name ${NSG_RULE_NAME} \ --nsg-name ${NSG_NAME} \ --priority 111 \ --source-address-prefixes ${VNET_CIDR} \ --destination-port-ranges * \ --destination-address-prefixes ${AWS_SUBNET_CIDR} \ --access Allow \ --protocol * \ --description "allow aws subnet." $ NSG_RULE_NAME=${NSG_NAME}-ssh-allow $ az network nsg rule create \ --resource-group ${RESOURCE_GROUP} \ --name ${NSG_RULE_NAME} \ --nsg-name ${NSG_NAME} \ --priority 102 \ --source-address-prefixes 0.0.0.0/0 \ --destination-address-prefixes ${VNET_CIDR} \ --destination-port-ranges 22 \ --access Allow \ --protocol Tcp
2.2.V-NET作成
$ SUBNET_CIDR=172.31.255.0/24 $ az network vnet create --name ${VNET_NAME} \ --resource-group ${RESOURCE_GROUP} \ --address-prefix ${VNET_CIDR} \ --subnet-name GatewaySubnet \ --subnet-prefixes ${SUBNET_CIDR}
2.2.2.追加サブネット作成
$ SUBNET_NAME=${VNET_NAME}-subnet $ SUBNET_CIDR=172.31.10.0/27 $ az network vnet subnet create --name ${SUBNET_NAME} \ --resource-group ${RESOURCE_GROUP} \ --vnet-name ${VNET_NAME} \ --address-prefixes ${SUBNET_CIDR} \ --network-security-group ${NSG_NAME}
3.AzureでVPNGateway作成
3.1.追加IPアドレス作成
$ PUBLIC_IP_NAME=${VNET_NAME}-ip $ az network public-ip create \ --name ${PUBLIC_IP_NAME} \ --resource-group ${RESOURCE_GROUP} $ AZURE_PUBLIC_IP=$( \ az network public-ip show --name ${PUBLIC_IP_NAME} \ --resource-group ${RESOURCE_GROUP} \ --query "ipAddress" -o tsv \ ) \ && echo ${AZURE_PUBLIC_IP}
3.2.VPNgateway作成
$ SUBNET_NAME=${VNET_NAME}-vpngw-subnet $ VPN_GATEWAY_NAME=${VNET_NAME}-vpngw $ SKU_TYPE=VpnGw1 $ az network vnet-gateway create --name ${VPN_GATEWAY_NAME} \ --public-ip-address ${PUBLIC_IP_NAME} \ --resource-group ${RESOURCE_GROUP} \ --location japaneast \ --vnet ${VNET_NAME} \ --gateway-type Vpn \ --sku ${SKU_TYPE} \ --vpn-type RouteBased
~作成完了まで23分ほどかかる~
4.AWSで仮想プライベートゲートウェイ作成
4.1.CustomerGateway作成
$ CUSTOMER_GATEWAY_NAME=${VPC_NAME}"-csgw" \ && echo ${CUSTOMER_GATEWAY_NAME} $ GCP_IP_ADDRESS= #Azureで予約した外部アドレス(AZURE_PUBLIC_IP) $ BGP_ARN=65000 $ aws ec2 create-customer-gateway \ --tag-specifications "ResourceType=customer-gateway,Tags=[{Key=Name,Value=${CUSTOMER_GATEWAY_NAME}}]" \ --type ipsec.1 \ --public-ip ${GCP_IP_ADDRESS} \ --bgp-asn ${BGP_ARN}
4.2.VPN接続作成
$ CGW_ID=$( \ aws ec2 describe-customer-gateways \ --filters "Name=tag:Name,Values=${CUSTOMER_GATEWAY_NAME}" \ --query 'CustomerGateways[?State==`available`].CustomerGatewayId' \ --output text \ )\ && echo ${CGW_ID} $ VPN_CONNECTION_NAME=${VPC_NAME}"-con" \ && echo ${VPN_CONNECTION_NAME} $ aws ec2 create-vpn-connection \ --tag-specifications "ResourceType=vpn-connection,Tags=[{Key=Name,Value=${VPN_CONNECTION_NAME}}]" \ --type ipsec.1 \ --customer-gateway-id ${CGW_ID} \ --vpn-gateway-id ${VGW_ID} \ --options "{\"StaticRoutesOnly\":true}" #~利用可能になるまで5分ほど待つ必要あり~ $ VPN_CONID=$( \ aws ec2 describe-vpn-connections \ --filters "Name=tag:Name,Values=${VPN_CONNECTION_NAME}" \ --query 'VpnConnections[?State==`available`].VpnConnectionId' \ --output text \ ) \ && echo ${VPN_CONID} $ GCP_REMOTE_CIDR=172.30.0.0/16 #GCPのサブネットのCIDR $ aws ec2 create-vpn-connection-route \ --destination-cidr-block ${GCP_REMOTE_CIDR} \ --vpn-connection-id ${VPN_CONID}
4.3.AWSの接続情報取得
$ aws ec2 describe-vpn-connections --vpn-connection-id ${VPN_CONID} --output text | \ grep -E '^TUNNELOPTIONS' | \ sed -e 's/^TUNNELOPTIONS\s+//' | \ sed -e 's/\s+/ /g'
5.Azureでローカルネットワークゲートウェイ作成とトンネル設定
5.1.VPNトンネル1のローカルネットワークゲートウェイ作成
$ LOCAL_GW_NAME=${VNET_NAME}"-lngw1" \ && echo ${LOCAL_GW_NAME} $ AWS_VPN_IP=#AWSのVPNTunnnel1のIPアドレス $ AWS_REMOTE_CIDR=172.20.0.0/16 #AWS側のVPCのCIDR $ IKE_VERS=1 $ SHARED_SECRET=#AWSで発行したシェアードシークレット $ az network local-gateway create --name ${LOCAL_GW_NAME} \ --gateway-ip-address ${AWS_VPN_IP} \ --resource-group ${RESOURCE_GROUP} \ --local-address-prefixes ${AWS_REMOTE_CIDR} $ VPN_CON_NAME=${VNET_NAME}"-vpnc1" \ && echo ${VPN_CON_NAME} $ az network vpn-connection create --name ${VPN_CON_NAME} \ --resource-group ${RESOURCE_GROUP} \ --vnet-gateway1 ${VPN_GATEWAY_NAME} \ --local-gateway2 ${LOCAL_GW_NAME} \ --shared-key ${SHARED_SECRET}
5.2.VPNトンネル2のローカルネットワークゲートウェイ作成
$ LOCAL_GW_NAME=${VNET_NAME}"-lngw2" \ && echo ${LOCAL_GW_NAME} $ AWS_VPN_IP=#AWSのVPNTunnnel2のIPアドレス $ SHARED_SECRET=#AWSで発行したシェアードシークレット $ az network local-gateway create --name ${LOCAL_GW_NAME} \ --gateway-ip-address ${AWS_VPN_IP} \ --resource-group ${RESOURCE_GROUP} \ --local-address-prefixes ${AWS_REMOTE_CIDR} $ VPN_CON_NAME=${VNET_NAME}"-vpnc2" \ && echo ${VPN_CON_NAME} $ az network vpn-connection create --name ${VPN_CON_NAME} \ --resource-group ${RESOURCE_GROUP} \ --vnet-gateway1 ${VPN_GATEWAY_NAME} \ --local-gateway2 ${LOCAL_GW_NAME} \ --shared-key ${SHARED_SECRET}
6.AWSでプライベートサブネットにEC2作成
6.1.AZ-aで作成
$ INSTANCE_AMI=ami-0a0b7b240264a48d7 $ INSTANCE_TYPE=t3.nano $ AZ_CODE="a" $ SUBNET_TYPE="private" $ SUBNET_NAME=${VPC_NAME}"-"${SUBNET_TYPE}"-subnet-"${AZ_CODE} \ && echo ${SUBNET_NAME} $ SUBNET_ID=$( \ aws ec2 describe-subnets \ --filters Name=vpc-id,Values=${VPC_ID} \ Name=tag:Name,Values=${SUBNET_NAME} \ --query "Subnets[].SubnetId" \ --output text \ ) \ && echo ${SUBNET_ID} $ INSTANCE_NAME=multicloud_aws_instance $ KEY_PAIR_NAME=multicloud_test #キーはあらかじめ作成しておく $ aws ec2 run-instances \ --image-id $INSTANCE_AMI --count 1 \ --instance-type t3.nano --key-name $KEY_PAIR_NAME \ --subnet-id $SUBNET_ID \ --security-group-ids $SECURITY_GROUP_ID \ --tag-specifications "ResourceType=instance,Tags=[{Key=Name,Value=${INSTANCE_NAME}}]"
6.2.AZ-cで作成
$ AZ_CODE="c" $ SUBNET_NAME=${VPC_NAME}"-"${SUBNET_TYPE}"-subnet-"${AZ_CODE} \ && echo ${SUBNET_NAME} $ SUBNET_ID=$( \ aws ec2 describe-subnets \ --filters Name=vpc-id,Values=${VPC_ID} \ Name=tag:Name,Values=${SUBNET_NAME} \ --query "Subnets[].SubnetId" \ --output text \ ) \ && echo ${SUBNET_ID} $ INSTANCE_NAME=multicloud_aws_instance_2 $ aws ec2 run-instances \ --image-id $INSTANCE_AMI --count 1 \ --instance-type t3.nano --key-name $KEY_PAIR_NAME \ --subnet-id $SUBNET_ID \ --security-group-ids $SECURITY_GROUP_ID \ --tag-specifications "ResourceType=instance,Tags=[{Key=Name,Value=${INSTANCE_NAME}}]"
7.AZureでサブネットにVMを作成
7.1.SSHkey作成とVM作成
$ VM_IMAGE=Ubuntu2204 $ VM_SIZE=Standard_B1ls $ VM_NAME=multicloud-azure-vm $ VM_STORAGE=StandardSSD_LRS $ VM_USER=azureuser $ VM_SSH_KEY=${VM_NAME}-key $ SUBNET_NAME=${VNET_NAME}-subnet $ az sshkey create \ --resource-group ${RESOURCE_GROUP} \ --name ${VM_SSH_KEY} $ az vm create \ --resource-group ${RESOURCE_GROUP} \ --name ${VM_NAME} \ --image ${VM_IMAGE} \ --size ${VM_SIZE} \ --vnet-name ${VNET_NAME} \ --subnet ${SUBNET_NAME} \ --storage-sku ${VM_STORAGE} \ --nic-delete-option Delete \ --os-disk-delete-option Delete \ --admin-username ${VM_USER} \ --ssh-key-name ${VM_SSH_KEY}
7.2.VMへのSSH接続
VMIP=$(az vm show --show-details --resource-group ${RESOURCE_GROUP} \ --name ${VM_NAME} --query publicIps -o tsv) \ && echo@$VMIP $ chmod 600 .ssh/NNNN_NNNNNN $ ssh -i .ssh/NNNN_NNNNNN azureuser@$VMIP
8.Azure側の後始末
8.1.VM削除
$ az vm delete --name ${VM_NAME} --resource-group ${RESOURCE_GROUP} $ PUBLIC_IP_NAME=${VM_NAME}PublicIP $ az network public-ip delete --name ${PUBLIC_IP_NAME} --resource-group ${RESOURCE_GROUP} $ NSG_NAME=${VM_NAME}NSG $ az network nsg delete --name ${NSG_NAME} --resource-group ${RESOURCE_GROUP} $ az sshkey delete --name ${VM_SSH_KEY} --resource-group ${RESOURCE_GROUP} $ rm -rf .ssh/*
8.2.VPNトンネル削除
$ az network vpn-connection delete --name ${VPN_CON_NAME} --resource-group ${RESOURCE_GROUP} $ az network local-gateway delete --name ${LOCAL_GW_NAME} --resource-group ${RESOURCE_GROUP} $ LOCAL_GW_NAME=${VNET_NAME}"-lngw1" \ && echo ${LOCAL_GW_NAME} $ VPN_CON_NAME=${VNET_NAME}"-vpnc1" \ && echo ${VPN_CON_NAME} $ az network vpn-connection delete --name ${VPN_CON_NAME} --resource-group ${RESOURCE_GROUP} $ az network local-gateway delete --name ${LOCAL_GW_NAME} --resource-group ${RESOURCE_GROUP}
8.3.VPNGateway削除
$ az network vnet-gateway delete --name ${VPN_GATEWAY_NAME} --resource-group ${RESOURCE_GROUP}
8.4.IPアドレス削除
$ PUBLIC_IP_NAME=${VNET_NAME}-ip $ az network public-ip delete --name ${PUBLIC_IP_NAME} --resource-group ${RESOURCE_GROUP}
8.5.V-NET削除
$ az network vnet delete --name ${VNET_NAME} --resource-group ${RESOURCE_GROUP}
8.6.セキュリティグループ削除
$ NSG_NAME=${VNET_NAME}-nsg $ az network nsg delete --name ${NSG_NAME} --resource-group ${RESOURCE_GROUP}
9.AWS側の後始末
9.1.EC2削除
$ INSTANCE_NAME=multicloud_aws_instance $ EC2_ID=$( \ aws ec2 describe-instances \ --filters "Name=tag:Name,Values=${INSTANCE_NAME}" \ --query "Reservations[*].Instances[*].InstanceId" \ --output text \ ) \ && echo ${EC2_ID} $ aws ec2 terminate-instances --instance-ids ${EC2_ID} $ INSTANCE_NAME=multicloud_aws_instance_2 $ EC2_ID=$( \ aws ec2 describe-instances \ --filters "Name=tag:Name,Values=${INSTANCE_NAME}" \ --query "Reservations[*].Instances[*].InstanceId" \ --output text \ ) \ && echo ${EC2_ID} $ aws ec2 terminate-instances --instance-ids ${EC2_ID}
9.2.VPNトンネル削除
$ VPC_NAME=multi-cloud-vpn-aws $ VPN_CONNECTION_NAME=${VPC_NAME}"-con" \ && echo ${VPN_CONNECTION_NAME} $ VPN_CONID=$( \ aws ec2 describe-vpn-connections \ --filters "Name=tag:Name,Values=$VPN_CONNECTION_NAME" \ --query 'VpnConnections[?State==`available`].VpnConnectionId' \ --output text \ ) \ && echo ${VPN_CONID} $ aws ec2 delete-vpn-connection --vpn-connection-id ${VPN_CONID}
9.3.カスタマーゲートウェイ削除
$ CUSTOMER_GATEWAY_NAME=${VPC_NAME}"-csgw" \ && echo ${CUSTOMER_GATEWAY_NAME} $ CGW_ID=$( \ aws ec2 describe-customer-gateways \ --filters "Name=tag:Name,Values=$CUSTOMER_GATEWAY_NAME" \ --query 'CustomerGateways[?State==`available`].CustomerGatewayId' \ --output text \ )\ && echo ${CGW_ID} $ aws ec2 delete-customer-gateway --customer-gateway-id $CGW_ID
9.4.仮想プライベートゲートウェイ削除
$ VPN_GATEWAY_NAME=${VPC_NAME}"-vpn-gw" \ && echo ${VPN_GATEWAY_NAME} $ VPC_ID=$( \ aws ec2 describe-vpcs \ --filters "Name=tag:Name,Values=$VPC_NAME" \ --query 'Vpcs[*].VpcId' \ --output text \ ) \ && echo ${VPC_ID} $ VGW_ID=$( \ aws ec2 describe-vpn-gateways \ --filters "Name=tag:Name,Values=$VPN_GATEWAY_NAME" \ --query 'VpnGateways[?State==`available`].VpnGatewayId' \ --output text \ ) \ && echo ${VGW_ID} $ aws ec2 detach-vpn-gateway --vpn-gateway-id $VGW_ID --vpc-id $VPC_ID $ aws ec2 delete-vpn-gateway --vpn-gateway-id $VGW_ID --region $REGION
9.5.VPC削除
$ SECURITY_GROUP_NAME=${VPC_NAME}"-sg" \ && echo ${SECURITY_GROUP_NAME} $ SECURITY_GROUP_ID=$( \ aws ec2 describe-security-groups \ --filter Name=vpc-id,Values=${VPC_ID} \ Name=group-name,Values=${SECURITY_GROUP_NAME} \ --query 'SecurityGroups[].GroupId' \ --output text \ ) \ && echo ${SECURITY_GROUP_ID} $ aws ec2 delete-security-group --group-id ${SECURITY_GROUP_ID}
$ AZ_CODE="a" $ SUBNET_TYPE="private" $ SUBNET_NAME=${VPC_NAME}"-"${SUBNET_TYPE}"-subnet-"${AZ_CODE} \ && echo ${SUBNET_NAME} $ SUBNET_ID=$( \ aws ec2 describe-subnets \ --filters Name=vpc-id,Values=${VPC_ID} \ Name=tag:Name,Values=${SUBNET_NAME} \ --query "Subnets[].SubnetId" \ --output text \ ) \ && echo ${SUBNET_ID} $ aws ec2 delete-subnet --subnet-id ${SUBNET_ID} $ AZ_CODE="c" $ SUBNET_NAME=${VPC_NAME}"-"${SUBNET_TYPE}"-subnet-"${AZ_CODE} \ && echo ${SUBNET_NAME} $ SUBNET_ID=$( \ aws ec2 describe-subnets \ --filters Name=vpc-id,Values=${VPC_ID} \ Name=tag:Name,Values=${SUBNET_NAME} \ --query "Subnets[].SubnetId" \ --output text \ ) \ && echo ${SUBNET_ID} $ aws ec2 delete-subnet --subnet-id ${SUBNET_ID}
$ aws ec2 delete-vpc --vpc-id ${VPC_ID}
◆参考サイト
・AzureとAWS接続
https://infrastructure-engineer.com/azure-site-to-site-vpn-005/
https://dev.classmethod.jp/articles/site_vpn_azure_aws/
https://qiita.com/tnksth/items/9728cf2e078a386430d4
https://blog.serverworks.co.jp/aws_azure_vpn
https://www.ctc-g.co.jp/solutions/cloud/column/article/106.html
・NSG作成
・ローカルネットワークゲートウェイ
これでAWS⇔AzureとAWS⇔GCPの相互接続はできたわけです。後はGCPとAzureをつないでやれば3クラウドの相互接続ができるのかなぁとか勝手に思っています。次もコマンドラインでGCPとAzureをVPN接続してみます。Azureは無料枠がないので課金がツライ・・・。
コメント