AWS와 다른 환경을 VPN으로 연결할 때의 「VPN 접속」의 작성을 쉘 스크립트로 해 보았다.
소개
AWS와 다른 환경을 VPN 연결하는 경우 AWS 측에서 'VPN 연결'을 생성해야 합니다.
관리 화면에서 딱딱하게 조작하는 것은 번거롭기 때문에 스크립트를 만들었습니다.
흐름
스크립트의 대략적인 흐름입니다.
스크립트의 대략적인 흐름입니다.
스크립트
아래 스크립트입니다.
create-vpn.sh#!/bin/bash
# == Check number of arguments. ==================================== #
if [ $# -ne 2 ]; then
echo "ERROR: Please check the number of arguments."
echo " -usage-----------------------------"
echo " $0 [VPC ID] [Counter VPN-IP] "
echo " -----------------------------------"
echo ""
exit 1
fi
# == Set ENV. ====================================================== #
VPC_ID="$1"
PUBLIC_IP="$2"
TAG_VALUE="VPNConnectTo${PUBLIC_IP}"
# == Create VPN ==================================================== #
# Create VPN Gateway
echo "==[VGW]======================================="
echo "Create the VGW."
VGW_ID=`aws ec2 create-vpn-gateway --type ipsec.1 | jq -r .VpnGateway.VpnGatewayId`
echo "VGW_ID:${VGW_ID}"
if [ -n "${VGW_ID}" -a "${VGW_ID}" != "null" ]; then
echo "SUCCESS: Create the VirtualGateWay."
else
echo "ERROR: Can't create the VirtualGateWay."
exit 1
fi
echo ""
echo "Tagged to the VGW."
aws ec2 create-tags --resources ${VGW_ID} --tags Key=Name,Value=${TAG_VALUE}
echo "Attach the VGW to the VPC."
VGW_STAT=`aws ec2 attach-vpn-gateway --vpn-gateway-id ${VGW_ID} --vpc-id ${VPC_ID} | jq -r .VpcAttachment.State`
if [ "${VGW_STAT}" = "attaching" ]; then
echo "SUCCESS: Attaching the VGW to the VPC."
else
echo "ERROR: Can't attach the VGW to the VPC."
exit 1
fi
echo ""
echo ""
# Create CustomerGateway
echo "==[CGW]======================================="
echo "Create the VGW."
CGW_ID=`aws ec2 create-customer-gateway --type ipsec.1 --public-ip ${PUBLIC_IP} --bgp-asn 65000 | jq -r .CustomerGateway.CustomerGatewayId`
echo "CGW_ID:${CGW_ID}"
if [ -n "${CGW_ID}" -a "${CGW_ID}" != "null" ]; then
echo "SUCCESS: Create the CustomerGateWay."
else
echo "ERROR: Can't create the CustomerGateWay."
exit 1
fi
echo ""
echo "Tagged to the CGW."
aws ec2 create-tags --resources ${CGW_ID} --tags Key=Name,Value=${TAG_VALUE}
echo ""
echo ""
# Create VPN Connection
echo "==[VPN]======================================="
echo "Create the VPN."
VPN_ID=`aws ec2 create-vpn-connection --type ipsec.1 --customer-gateway-id ${CGW_ID} --vpn-gateway-id ${VGW_ID} | jq -r .VpnConnection.VpnConnectionId`
echo "VPN_ID:${VPN_ID}"
if [ -n "${VPN_ID}" -a "${VPN_ID}" != "null" ]; then
echo "SUCCESS: Create the VPN Connection."
else
echo "ERROR: Can't create the VPN Connection."
exit 1
fi
echo ""
echo "Tagged to the VPN."
aws ec2 create-tags --resources ${VPN_ID} --tags Key=Name,Value=${TAG_VALUE}
echo ""
echo ""
echo "--------------------------------------------------"
echo "COMPLETED: All of the task has been completed."
exit 0
실행
명령 실행의 예입니다.
실행 예$ sh create-vpn.sh vpc-1e1ed97b 210.129.19.42
결과
이하, 관리 화면에서 본 작성 결과입니다.
· 가상 프라이빗 게이트웨이
· 고객 게이트웨이
· VPN 연결
결론
스크립트 실행 후, 「VPN 접속」으로부터 「설정의 다운로드」를 해 그 컨피그를 대항이 되는 라우터에 흘려 넣으면 OK입니다.
Reference
이 문제에 관하여(AWS와 다른 환경을 VPN으로 연결할 때의 「VPN 접속」의 작성을 쉘 스크립트로 해 보았다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kooohei/items/2b7bfbad580ae9c7d3dc
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#!/bin/bash
# == Check number of arguments. ==================================== #
if [ $# -ne 2 ]; then
echo "ERROR: Please check the number of arguments."
echo " -usage-----------------------------"
echo " $0 [VPC ID] [Counter VPN-IP] "
echo " -----------------------------------"
echo ""
exit 1
fi
# == Set ENV. ====================================================== #
VPC_ID="$1"
PUBLIC_IP="$2"
TAG_VALUE="VPNConnectTo${PUBLIC_IP}"
# == Create VPN ==================================================== #
# Create VPN Gateway
echo "==[VGW]======================================="
echo "Create the VGW."
VGW_ID=`aws ec2 create-vpn-gateway --type ipsec.1 | jq -r .VpnGateway.VpnGatewayId`
echo "VGW_ID:${VGW_ID}"
if [ -n "${VGW_ID}" -a "${VGW_ID}" != "null" ]; then
echo "SUCCESS: Create the VirtualGateWay."
else
echo "ERROR: Can't create the VirtualGateWay."
exit 1
fi
echo ""
echo "Tagged to the VGW."
aws ec2 create-tags --resources ${VGW_ID} --tags Key=Name,Value=${TAG_VALUE}
echo "Attach the VGW to the VPC."
VGW_STAT=`aws ec2 attach-vpn-gateway --vpn-gateway-id ${VGW_ID} --vpc-id ${VPC_ID} | jq -r .VpcAttachment.State`
if [ "${VGW_STAT}" = "attaching" ]; then
echo "SUCCESS: Attaching the VGW to the VPC."
else
echo "ERROR: Can't attach the VGW to the VPC."
exit 1
fi
echo ""
echo ""
# Create CustomerGateway
echo "==[CGW]======================================="
echo "Create the VGW."
CGW_ID=`aws ec2 create-customer-gateway --type ipsec.1 --public-ip ${PUBLIC_IP} --bgp-asn 65000 | jq -r .CustomerGateway.CustomerGatewayId`
echo "CGW_ID:${CGW_ID}"
if [ -n "${CGW_ID}" -a "${CGW_ID}" != "null" ]; then
echo "SUCCESS: Create the CustomerGateWay."
else
echo "ERROR: Can't create the CustomerGateWay."
exit 1
fi
echo ""
echo "Tagged to the CGW."
aws ec2 create-tags --resources ${CGW_ID} --tags Key=Name,Value=${TAG_VALUE}
echo ""
echo ""
# Create VPN Connection
echo "==[VPN]======================================="
echo "Create the VPN."
VPN_ID=`aws ec2 create-vpn-connection --type ipsec.1 --customer-gateway-id ${CGW_ID} --vpn-gateway-id ${VGW_ID} | jq -r .VpnConnection.VpnConnectionId`
echo "VPN_ID:${VPN_ID}"
if [ -n "${VPN_ID}" -a "${VPN_ID}" != "null" ]; then
echo "SUCCESS: Create the VPN Connection."
else
echo "ERROR: Can't create the VPN Connection."
exit 1
fi
echo ""
echo "Tagged to the VPN."
aws ec2 create-tags --resources ${VPN_ID} --tags Key=Name,Value=${TAG_VALUE}
echo ""
echo ""
echo "--------------------------------------------------"
echo "COMPLETED: All of the task has been completed."
exit 0
명령 실행의 예입니다.
실행 예
$ sh create-vpn.sh vpc-1e1ed97b 210.129.19.42
결과
이하, 관리 화면에서 본 작성 결과입니다.
· 가상 프라이빗 게이트웨이
· 고객 게이트웨이
· VPN 연결
결론
스크립트 실행 후, 「VPN 접속」으로부터 「설정의 다운로드」를 해 그 컨피그를 대항이 되는 라우터에 흘려 넣으면 OK입니다.
Reference
이 문제에 관하여(AWS와 다른 환경을 VPN으로 연결할 때의 「VPN 접속」의 작성을 쉘 스크립트로 해 보았다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kooohei/items/2b7bfbad580ae9c7d3dc
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
스크립트 실행 후, 「VPN 접속」으로부터 「설정의 다운로드」를 해 그 컨피그를 대항이 되는 라우터에 흘려 넣으면 OK입니다.
Reference
이 문제에 관하여(AWS와 다른 환경을 VPN으로 연결할 때의 「VPN 접속」의 작성을 쉘 스크립트로 해 보았다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kooohei/items/2b7bfbad580ae9c7d3dc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)