클라우드 리소스에 대한 안전한 개인용 온프레미스 액세스를 위해 VPC/VPN 게이트웨이 사용

이 튜토리얼에서는 비용이 발생합니다. Cost Estimator를 사용하여 예상 사용량을 기반으로 비용 추정값을 생성하십시오.

IBM은 IBM Cloud의 리소스를 사용하여 온프레미스 컴퓨터 네트워크를 안전하게 확장하는 다양한 방법을 제공합니다. 이를 통해 필요할 때 클라우드 리소스를 프로비저닝하고 더 이상 필요하지 않을 때 제거하는 탄력성을 활용할 수 있습니다. 또한 온프레미스 기능을 IBM Cloud 서비스에 쉽고 안전하게 연결할 수 있습니다.

이 튜토리얼에서는 IBM Cloud® Virtual Private Cloud VSIs(Virtual Service Instances) 및 IBM Cloud 데이터 서비스와 같은 온프레미스 서버와 클라우드 리소스 간의 VPN(Virtual Private Network) 연결을 설명하는 리소스를 작성하기 위한 자동화를 제공합니다. 클라우드 리소스에 대한 DNS 분석도 구성됩니다. 널리 사용되는 strongSwan VPN 게이트웨이는 온프레미스 VPN 게이트웨이를 표시하는 데 사용됩니다.

목표

  • 온프레미스 데이터 센터에서 가상 프라이빗 클라우드(VPC) 환경 액세스
  • 프라이빗 엔드포인트 게이트웨이를 사용하여 클라우드 서비스에 안전하게 접속하기
  • DNS 온프레미스를 사용하여 VPN을 통해 클라우드 리소스에 액세스

다음 다이어그램은 이 튜토리얼에서 작성된 리소스를 표시합니다.

*
아키텍처 다이어그램 *

Terraform 구성은 다음과 같은 리소스를 작성합니다.

  1. 인프라(VPC, 서브넷, 규칙이 있는 보안 그룹, Network ACL 및 VSI).
  2. 데이터 서비스에 대한 Object Storage 및 Databases for PostgreSQL 개인용 엔드포인트 게이트웨이
  3. 클라우드 환경과 VPN 연결을 설정하기 위해 온프레미스에서 strongSwan 오픈 소스 IPsec 게이트웨이 소프트웨어가 사용됩니다.
  4. VPC/VPN 게이트웨이는 온프레미스 리소스와 클라우드 리소스 간의 사설 연결을 허용하도록 프로비저닝됩니다.
  5. 온프레미스 DNS 분석기는 클라우드 DNS 분석기 위치에 연결되어 VPN을 통해 가상 개인 엔드포인트 게이트웨이에 대한 액세스를 포함하는 클라우드 리소스에 대한 액세스를 허용합니다.

시작하기 전에

이 튜토리얼에는 다음 항목이 필요합니다.

  • IBM Cloud CLI
    • IBM Cloud Schematics 플러그인 (schematics),
  • jq: JSON 파일을 조회함
  • git to optionally clone source code repository,
  • Terraform CLI to optionally run Terraform on your desktop instead of the Schematics service.

튜토리얼 시작하기 안내서에는 사용자 운영 체제에 맞게 이 도구를 다운로드하고 설치하기 위한 지시사항이 있습니다.

본 튜토리얼의 온프레미스 데이터 센터는 VPC내의 VSI를 사용하여 시뮬레이션됩니다.

VPC를 연결하기 위한 선호되는 메커니즘은 Transit Gateway입니다. VPC, VSI 및 VPN을 이용한 온프레미스 환경의 시뮬레이션은 예시를 위해서만 사용됩니다.

또한 다음을 확인하십시오.

Schematics을(를) 사용하여 리소스 작성

  1. IBM Cloud에 로그인하십시오.
  2. Navigate to Create Schematics Workspaces Under the 템플릿 지정 section, verify:
    1. 저장소 URLhttps://github.com/IBM-Cloud/vpc-tutorials/tree/master/vpc-site2site-vpn 입니다.
    2. 테라폼 버전은 terraform_v1.2
  3. 작업공간 세부사항아래에서
    1. 작업공간 이름을 제공하십시오. vpnst.
    2. Resource GroupLocation를 선택하십시오.
    3. 다음을 클릭하십시오.
  4. 세부사항을 확인한 후 작성을 클릭하십시오.
  5. 변수 섹션에서 오버플로우 메뉴를 클릭하고 각 행에 대해 편집 을 선택하여 필수 값 (resource_group_name, ssh_key_name) 을 제공하십시오. maintenance 변수의 값을 true로 설정해야 합니다.
  6. 페이지의 맨 위로 스크롤하고 플랜 적용을 클릭하십시오. 작성된 서비스의 상태를 보려면 로그를 확인하십시오.

아래를 클릭하고 일치하는 접두부가 있는 인스턴스를 선택하여 작성된 리소스를 탐색하십시오. 위의 다이어그램에서 모든 리소스를 찾으십시오.

연결 검증

Schematics 작업 영역 출력에는 VPN 연결을 확인하는 데 사용할 수 있는 변수가 포함되어 있습니다.

  1. 작업공간 목록을 가져오고, ID 열을 기록하고, 쉘 변수를 설정하십시오.

    ibmcloud schematics workspace list
    
  2. 다음과 같이 WORKSPACE_ID 변수를 설정하십시오.

    WORKSPACE_ID=YOUR_WORKSPACE_ID
    
  3. 클라우드 리소스에 대한 환경 변수 가져오기:

    ibmcloud schematics output --id $WORKSPACE_ID --output json | jq -r '.[0].output_values[].environment_variables.value'
    
  4. 출력은 다음과 같습니다. 환경에서 설정하려면 다음 결과를 쉘에 복사/붙여넣으십시오.

    IP_FIP_ONPREM=169.48.x.x
    IP_PRIVATE_ONPREM=10.0.0.4
    IP_PRIVATE_CLOUD=10.1.1.4
    IP_FIP_BASTION=52.118.x.x
    IP_PRIVATE_BASTION=10.1.0.4
    IP_DNS_SERVER_0=10.1.0.5
    IP_DNS_SERVER_1=10.1.1.6
    IP_ENDPOINT_GATEWAY_POSTGRESQL=10.1.1.9
    IP_ENDPOINT_GATEWAY_COS=10.1.1.5
    HOSTNAME_POSTGRESQL=a43ddb63-dcb1-430a-a2e4-5d87a0dd12a6.6131b73286f34215871dfad7254b4f7d.private.databases.appdomain.cloud
    HOSTNAME_COS=s3.direct.us-south.cloud-object-storage.appdomain.cloud
    PORT_POSTGRESQL=32525
    
  5. 이제 VPN을 통해 점프하는 것을 포함하여 서로 다른 경로를 따라 각각의 인스턴스에 ssh를 쓸 수 있습니다. 다이어그램은 단계에 의해 수행되는 통신 경로를 표시합니다.

    SSH 키가 기본값이 아닌 경우 -I PATH_TO_PRIVATE_KEY_FILE 설정하거나 SSH 참조 매뉴얼을 참조하여 자세한 도움말을 확인할 수 있습니다.

연결 확인
연결 확인

  1. 온프레미스 VSI에 대한 테스트 액세스:
    ssh root@$IP_FIP_ONPREM
    
  2. 클라우드 배스천에 대한 테스트 액세스:
    ssh root@$IP_FIP_BASTION
    
  3. 배스천을 통해 클라우드 VSI에 대한 테스트 액세스:
    ssh -J root@$IP_FIP_BASTION root@$IP_PRIVATE_CLOUD
    
  4. 온프레미스, VPN 터널, 배스천을 통해 클라우드 VSI에 대한 테스트 액세스:
    ssh -J root@$IP_FIP_ONPREM,root@$IP_FIP_BASTION root@$IP_PRIVATE_CLOUD
    
  5. VPN 터널, 배스천, 클라우드 VSI를 통해 온프레미스 VSI에 대한 테스트 액세스:
    ssh -J root@$IP_FIP_BASTION,root@$IP_PRIVATE_CLOUD root@$IP_PRIVATE_ONPREM
    

DNS 분석 확인

온프레미스 DNS 확인은 IBM Cloud VPC 사용하도록 구성되었습니다 DNS 확인자 위치를 사용하도록 설정되었습니다. 이를 통해 이름으로 클라우드 서비스에 액세스할 수 있으며 개인 엔드포인트 게이트웨이의 IP 주소로 해석될 수 있다.

가상 엔드포인트 게이트웨이를 통해 Postgresql및 오브젝트 스토리지에 대한 DNS 분석을 테스트하십시오. 확인 중인 두 경로가 아래 다이어그램에 표시됩니다.

DNS 분석 확인
DNS 분석 확인

  1. 온프레미스 VSI에 액세스하십시오.

    ssh root@$IP_FIP_ONPREM
    
  2. 이전에 캡처한 세 개의 변수 ( HOSTNAME_POSTGRESQL, HOSTNAME_COS, PORT_POSTGRESQL) 를 복사하여 붙여넣으십시오.

  3. dig 명령을 실행하여 가상 엔드포인트 게이트웨이를 통해 데이터베이스 인스턴스에 대한 분석을 확인하십시오.

    dig $HOSTNAME_POSTGRESQL
    
  4. telnet 명령을 실행하여 데이터베이스에 대한 연결을 확인하십시오. "연결됨" 을 표시해야 합니다.

    telnet $HOSTNAME_POSTGRESQL $PORT_POSTGRESQL
    
  5. 데이터베이스에 연결되면 Ctrl+C 를 실행하여 연결을 끊으십시오.

  6. dig 명령을 실행하여 가상 엔드포인트 게이트웨이를 통해 클라우드 오브젝트 스토리지 인스턴스에 대한 분석을 확인하십시오.

    dig $HOSTNAME_COS
    
  7. telnet 명령을 실행하여 클라우드 오브젝트 스토리지 인스턴스에 대한 연결을 확인하십시오. "연결됨" 을 표시해야 합니다.

    telnet $HOSTNAME_COS 443
    
  8. 클라우드 오브젝트 스토리지 인스턴스에 연결되면 Ctrl+C 를 실행하여 연결을 끊으십시오.

문제점이 있는 경우, github 저장소에서 문제점 해결 섹션을 참조하십시오.

선택적으로 튜토리얼 펼치기

이 튜토리얼에 추가하거나 이 튜토리얼을 확장하시겠습니까? 몇 가지 방법은 다음과 같습니다.

  • GitHub 저장소 에는 데이터베이스 및 클라우드 오브젝트 스토리지를 사용하는 배치할 수 있는 애플리케이션이 있습니다. 배치 방법에 대한 지시사항은 README에 있습니다.
  • 애플리케이션을 배치한 경우 애플리케이션에 대해 DNS 구역을 추가하십시오.
  • 다중 Virtual Servers for VPC 에서 애플리케이션을 실행하고 로드 밸런서 를 추가하여 인바운드 마이크로서비스 트래픽을 분배하십시오.

자원 제거

  1. Schematics 작업공간으로 이동하여 작업공간을 클릭하십시오.
  2. 조치 ... > 리소스 제거를 클릭하십시오.
  3. 조치 ... > 작업공간 삭제를 클릭하십시오.