실습 설정 안내 및 요구사항
계정과 진행 상황을 보호하세요. 이 실습을 실행하려면 항상 시크릿 브라우저 창과 실습 사용자 인증 정보를 사용하세요.

Apigee X 평가 조직 프로비저닝

실습 1시간 5분 universal_currency_alt 크레딧 1개 show_chart 입문
info 이 실습에는 학습을 지원하는 AI 도구가 통합되어 있을 수 있습니다.
이 콘텐츠는 아직 휴대기기에 최적화되지 않음
최상의 경험을 위해 데스크톱 컴퓨터에서 이메일로 전송된 링크를 사용하여 방문하세요.

GSP904

Google Cloud 사용자 주도형 실습 로고

개요

이 실습에서는 Apigee X 조직(org)을 만드는 방법을 알아봅니다. Apigee X 프로비저닝 마법사를 사용하여 Apigee X 조직을 만듭니다. 조직을 설치하고 구성한 후 API 프록시를 설치하고 API 호출을 수행하여 조직이 작동하는지 확인합니다.

자체 Google Cloud 프로젝트에서 생성된 Apigee 평가 조직은 일반적으로 60일 동안 사용할 수 있습니다. 이 실습을 위해 프로비저닝한 조직은 실습이 종료되면 삭제되며, 조직의 액세스 권한이 상실됩니다.

실습 시작을 클릭하기 전에 실습을 끝까지 읽어보시기 바랍니다. 실습을 시작한 후 90분 이내에 완료해야 합니다. 실습에 허용된 시간이 만료되면 실습이 종료되고 Apigee 평가 조직이 삭제됩니다.

이 실습에서는 다음 작업을 수행하는 방법을 알아봅니다.

  • 프로비저닝 마법사를 사용하여 Apigee X 평가 조직 만들기
  • Apigee X 아키텍처와 Google Cloud 프로젝트와의 통합 방식 이해하기
  • 내부 IP 주소에서 Apigee 프록시를 호출하는 VM 만들기
  • 외부 IP 주소에서 Apigee 프록시 호출

설정

실습 시작 버튼을 클릭하기 전에

다음 안내를 확인하세요. 실습에는 시간 제한이 있으며 일시중지할 수 없습니다. 실습 시작을 클릭하면 타이머가 시작됩니다. 이 타이머는 Google Cloud 리소스를 사용할 수 있는 시간이 얼마나 남았는지를 표시합니다.

실무형 실습을 통해 시뮬레이션이나 데모 환경이 아닌 실제 클라우드 환경에서 실습 활동을 진행할 수 있습니다. 실습 시간 동안 Google Cloud에 로그인하고 액세스하는 데 사용할 수 있는 새로운 임시 사용자 인증 정보가 제공됩니다.

이 실습을 완료하려면 다음을 준비해야 합니다.

  • 표준 인터넷 브라우저 액세스 권한(Chrome 브라우저 권장)
참고: 이 실습을 실행하려면 시크릿 모드(권장) 또는 시크릿 브라우저 창을 사용하세요. 개인 계정과 학습자 계정 간의 충돌로 개인 계정에 추가 요금이 발생하는 일을 방지해 줍니다.
  • 실습을 완료하기에 충분한 시간(실습을 시작하고 나면 일시중지할 수 없음)
참고: 이 실습에는 학습자 계정만 사용하세요. 다른 Google Cloud 계정을 사용하는 경우 해당 계정에 비용이 청구될 수 있습니다. 참고: 새 시크릿 창을 사용하여 이 실습을 완료하는 것이 좋습니다.

실습을 시작하고 Google Cloud 콘솔에 로그인하는 방법

  1. 실습 시작 버튼을 클릭합니다. 실습 비용을 결제해야 하는 경우 결제 수단을 선택할 수 있는 대화상자가 열립니다. 왼쪽에는 다음과 같은 항목이 포함된 실습 세부정보 창이 있습니다.

    • Google Cloud 콘솔 열기 버튼
    • 남은 시간
    • 이 실습에 사용해야 하는 임시 사용자 인증 정보
    • 필요한 경우 실습 진행을 위한 기타 정보
  2. Google Cloud 콘솔 열기를 클릭합니다(Chrome 브라우저를 실행 중인 경우 마우스 오른쪽 버튼으로 클릭하고 시크릿 창에서 링크 열기를 선택합니다).

    실습에서 리소스가 가동되면 다른 탭이 열리고 로그인 페이지가 표시됩니다.

    팁: 두 개의 탭을 각각 별도의 창으로 나란히 정렬하세요.

    참고: 계정 선택 대화상자가 표시되면 다른 계정 사용을 클릭합니다.
  3. 필요한 경우 아래의 사용자 이름을 복사하여 로그인 대화상자에 붙여넣습니다.

    {{{user_0.username | "Username"}}}

    실습 세부정보 창에서도 사용자 이름을 확인할 수 있습니다.

  4. 다음을 클릭합니다.

  5. 아래의 비밀번호를 복사하여 시작하기 대화상자에 붙여넣습니다.

    {{{user_0.password | "Password"}}}

    실습 세부정보 창에서도 비밀번호를 확인할 수 있습니다.

  6. 다음을 클릭합니다.

    중요: 실습에서 제공하는 사용자 인증 정보를 사용해야 합니다. Google Cloud 계정 사용자 인증 정보를 사용하지 마세요. 참고: 이 실습에 자신의 Google Cloud 계정을 사용하면 추가 요금이 발생할 수 있습니다.
  7. 이후에 표시되는 페이지를 클릭하여 넘깁니다.

    • 이용약관에 동의합니다.
    • 임시 계정이므로 복구 옵션이나 2단계 인증을 추가하지 않습니다.
    • 무료 체험판을 신청하지 않습니다.

잠시 후 Google Cloud 콘솔이 이 탭에서 열립니다.

참고: Google Cloud 제품 및 서비스에 액세스하려면 탐색 메뉴를 클릭하거나 검색창에 제품 또는 서비스 이름을 입력합니다. 탐색 메뉴 아이콘 및 검색창

Cloud Shell 활성화

Cloud Shell은 다양한 개발 도구가 탑재된 가상 머신으로, 5GB의 영구 홈 디렉터리를 제공하며 Google Cloud에서 실행됩니다. Cloud Shell을 사용하면 명령줄을 통해 Google Cloud 리소스에 액세스할 수 있습니다.

  1. Google Cloud 콘솔 상단에서 Cloud Shell 활성화 Cloud Shell 활성화 아이콘를 클릭합니다.

  2. 다음 창을 클릭합니다.

    • Cloud Shell 정보 창을 통해 계속 진행합니다.
    • 사용자 인증 정보를 사용하여 Google Cloud API를 호출할 수 있도록 Cloud Shell을 승인합니다.

연결되면 사용자 인증이 이미 처리된 것이며 프로젝트가 학습자의 PROJECT_ID, (으)로 설정됩니다. 출력에 이 세션의 PROJECT_ID를 선언하는 줄이 포함됩니다.

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud는 Google Cloud의 명령줄 도구입니다. Cloud Shell에 사전 설치되어 있으며 명령줄 자동 완성을 지원합니다.

  1. (선택사항) 다음 명령어를 사용하여 활성 계정 이름 목록을 표시할 수 있습니다.
gcloud auth list
  1. 승인을 클릭합니다.

출력:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (선택사항) 다음 명령어를 사용하여 프로젝트 ID 목록을 표시할 수 있습니다.
gcloud config list project

출력:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 참고: gcloud 전체 문서는 Google Cloud에서 gcloud CLI 개요 가이드를 참고하세요.

작업 1. Apigee X 조직 프로비저닝

이 작업에서는 프로비저닝 마법사를 사용하여 Apigee X 평가 조직을 프로비저닝합니다.

Apigee X 조직은 고객이 관리하는 Google Cloud 프로젝트에 연결됩니다.

기본 요건

Apigee X 평가 조직을 만들기 전에 특정 기본 요건을 충족해야 합니다.

  • Apigee X를 사용하면 Apigee 조직의 이름이 연결된 Google Cloud 프로젝트의 이름과 일치합니다. 프로젝트 이름은 소문자로 시작해야 하며 소문자(a~z), 숫자(0~9), 하이픈만 사용할 수 있습니다.
  • Apigee X에 사용되는 프로젝트는 활성 결제가 있는 Google Cloud 계정과 연결되어야 합니다. 이 요구사항은 유료 또는 평가 Apigee X 조직을 만드는지와 관계없이 적용됩니다. 평가 조직 자체로는 계정에 요금이 청구되지 않지만, 조직에서 사용하는 일부 API는 요금이 청구됩니다.
  • Cloud SDK는 Apigee 조직을 설치하고 상호작용하는 데 사용됩니다.

실습 프로젝트는 이러한 선행 조건에 부합합니다.

프로비저닝 마법사 시작

  1. Cloud 콘솔에서 Apigee 콘솔로 이동합니다.

  2. Apigee 무료 체험하기를 클릭하여 평가 콘솔로 이동합니다.

    실습 세부정보 패널 내 Google Cloud 프로젝트 이름 옆에 강조 표시된 복사 아이콘

API 사용 설정

Apigee X 조직에는 Google Cloud 프로젝트에서 Apigee, Service Networking, Compute Engine API가 사용 설정되어 있어야 합니다. 마법사에서 필요한 API를 사용 설정할 수 있습니다.

  1. Apigee 평가 설정에서 API 사용 설정 옆에 있는 수정을 클릭합니다.

    사용 설정할 API 목록이 표시됩니다.

    • Apigee API는 Apigee 조직을 구성하고 상호작용하는 데 사용됩니다.
    • Compute Engine API는 Apigee 인스턴스 비공개 IP 주소에 연결하기 위한 네트워크 브리지 역할을 하는 관리형 인스턴스 그룹(MIG)을 만드는 데 사용됩니다.
    • Service Networking API는 Google Cloud 프로젝트가 Google에서 관리하는 Apigee 평가 조직과 통신할 수 있도록 허용하는 데 사용됩니다.
  2. API 사용 설정을 클릭합니다.

    잠시 기다리면 API가 완료되고 API 사용 설정 옆에 체크표시가 나타납니다.

네트워킹 설정

프로비저닝 마법사는 고객의 Google Cloud 프로젝트와 Apigee 런타임을 포함하는 Google 관리형 프로젝트 간에 가상 프라이빗 클라우드(VPC) 네트워크 피어링을 만듭니다. 또한 마법사는 Apigee 런타임과의 통신을 위한 비공개 서비스 연결도 만듭니다.

  1. 네트워킹 옆에 있는 수정을 클릭합니다.

    네트워킹 설정 창에서 승인된 네트워크를 지정하라는 메시지가 표시됩니다. 기본 네트워크는 이미 사용 가능하며 평가 조직에 사용할 수 있지만, 일반적으로 기본 네트워크를 사용하는 것은 권장되지 않습니다.

  2. 프로젝트의 VPC 네트워크 보기를 클릭합니다.

    콘솔의 VPC 네트워크 페이지가 다른 탭에서 열립니다.

  3. +VPC 네트워크 만들기를 클릭합니다.

  4. 네트워크 이름을 apigeex-vpc로 지정합니다.

  5. 새 서브넷 창에서 다음 값을 설정합니다.

    속성
    이름 apigeex-vpc
    리전 선택
    IPv4 범위 10.0.0.0/20
    비공개 Google 액세스 사용 설정

    IP 주소 범위는 CIDR 형식으로 지정됩니다. 십진수는 /32(단일 IP 주소)부터 /8(가장 큰 비공개 IP 범위, 10.0.0.0~10.255.255.255)까지 범위의 크기를 지정합니다.

    서브넷은 /22 범위를 수용할 수 있을 정도로 큰 범위를 사용해야 합니다. 여기에서 사용되는 /20 범위는 Apigee에서 사용할 /22 범위보다 4배 더 큽니다.

  6. 새 서브넷 창에서 완료를 클릭합니다.

  7. 만들기를 클릭합니다.

    프로젝트에 단일 서브넷이 있는 새 VPC 네트워크가 생성됩니다. 완료될 때까지 apigeex-vpc 네트워크 옆에 있는 원이 회전합니다.

  8. apigeex-vpc 네트워크가 생성될 때까지 기다린 다음 마법사 설정 탭으로 돌아갑니다.

  9. 승인된 네트워크 새로고침(네트워크 새로고침 버튼)을 클릭한 다음 apigeex-vpc 승인된 네트워크를 선택합니다.

  10. IP 범위 자동 할당을 선택합니다.

프리픽스 길이가 /22인 피어링 IP 범위(이름: google-managed-services-apigeex-vpc)가 생성됩니다.

참고: 피어링 범위 프리픽스 길이는 Apigee에 할당되는 피어링된 내부 IP 주소 수를 지정합니다. 주소 수는 2 ^(32 - 프리픽스 길이)입니다. 유료 조직의 피어링 범위 프리픽스 길이는 각각 65,536개 또는 4,096개의 IP 주소에 해당하는 /16 또는 /20이어야 합니다.

평가 조직은 1,024개의 IP 주소에 해당하는 /22의 프리픽스 길이만 사용할 수 있습니다. IP 주소 수가 적으면 평가 조직에 대해 Apigee를 확장할 수 있는 정도가 제한됩니다. 유료 조직은 평가 조직보다 훨씬 더 많은 트래픽을 처리할 수 있습니다.
  1. 할당 및 연결을 클릭합니다.
  2. 네트워킹 구성이 완료될 때까지 기다립니다.

네트워크 구성 설정이 완료되면 네트워킹 옆 체크표시가 나타납니다.

  1. VPC 네트워크 탭으로 돌아간 다음 새로고침을 클릭합니다.
  2. apigeex-vpc를 클릭합니다.
  3. 서브넷 탭이 선택된 상태에서 오른쪽으로 스크롤하고 비공개 서비스 액세스 탭을 선택합니다.

google-managed-services-apigeex-vpc IP 범위는 /22 내부 IP 범위로 생성되었습니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. API를 사용 설정하고 네트워킹을 설정합니다.

Apigee 평가 조직 만들기

프로비저닝 마법사가 Apigee 평가 조직을 만듭니다.

  1. 마법사 설정 탭으로 돌아갑니다.

  2. Apigee 평가 조직 옆에 있는 수정을 클릭합니다.

    Apigee 평가 조직 만들기 창에서 Apigee 런타임 및 애널리틱스 호스팅에 사용되는 Google Cloud 리전을 선택할 수 있습니다.

  3. 애널리틱스 호스팅 리전으로 을(를) 선택합니다.

  4. 런타임 위치에 대해 을(를) 선택합니다.

런타임 위치의 리전을 선택합니다. Apigee는 평가 조직을 프로비저닝할 리전의 영역을 선택합니다.

참고: 선택한 런타임 리전을 애널리틱스 호스팅 리전으로 사용할 수 없는 경우 런타임 리전과 지리적으로 가까운 리전을 선택하세요. 예를 들어 런타임 리전이 us-east4인 경우 us-east1을 애널리틱스 리전으로 선택할 수 있습니다. 참고: 평가 조직은 단일 Google Cloud 영역에서 호스팅되는 단일 런타임 인스턴스만 가질 수 있습니다.

유료 조직 런타임 인스턴스는 리전 내 여러 영역에서 실행됩니다. 조직에 대해 둘 이상의 런타임 인스턴스를 만들 수 있으며, 각 인스턴스는 서로 다른 리전에서 호스팅됩니다.

멀티 리전 Apigee 조직의 경우 런타임 리전의 중심이거나 가장 중요한 리전과 가까운 애널리틱스 호스팅 리전을 선택합니다.
  1. 프로비저닝을 클릭합니다.

    액세스 라우팅을 구성하려면 나중에 프로비저닝 마법사로 돌아갑니다.

작업 2. 프로비저닝이 완료될 때까지 기다립니다.

이 작업에서는 Apigee 평가 조직 프로비저닝이 완료될 때까지 기다립니다.

Apigee 조직 프로비저닝을 완료하는 데 시간이 꽤 걸립니다. 조직 프로비저닝 진행 상황은 Apigee API를 사용하여 모니터링할 수 있습니다.

모니터링 스크립트 시작

  1. 콘솔 탭으로 돌아갑니다.

  2. 오른쪽 상단 툴바에서 Cloud Shell 활성화 버튼을 클릭합니다.

    강조 표시된 Cloud Shell 활성화 버튼

  3. 메시지가 표시되면 계속을 클릭합니다.

    Cloud Shell을 프로비저닝하고 연결하는 데 몇 분 정도 소요됩니다. 연결되면 사용자가 미리 인증되어 프로젝트가 PROJECT_ID로 설정됩니다.

  4. Cloud Shell에서 Apigee 조직 이름으로 변수를 확인합니다.

    echo ${GOOGLE_CLOUD_PROJECT}

    GOOGLE_CLOUD_PROJECT 변수에는 Apigee 조직 이름과 동일한 프로젝트 이름이 포함되어야 합니다.

  5. GOOGLE_CLOUD_PROJECT 변수가 설정되지 않은 경우 다음과 같은 명령어를 사용하여 변수를 수동으로 설정합니다. 를 프로젝트 이름으로 바꿉니다.

    export GOOGLE_CLOUD_PROJECT=<project>
  6. 다음 명령어를 Cloud Shell에 붙여넣습니다.

    export INSTANCE_NAME=eval-instance; export ENV_NAME=eval; if [ -z "${GOOGLE_CLOUD_PROJECT}" ]; then echo "Error: GOOGLE_CLOUD_PROJECT environment variable is not set. Please set it to your project ID."; else export PREV_INSTANCE_STATE=; echo "waiting for runtime instance ${INSTANCE_NAME} to be active"; while : ; do export INSTANCE_STATE=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${GOOGLE_CLOUD_PROJECT}/instances/${INSTANCE_NAME}" | jq "select(.state != null) | .state" --raw-output); [[ "${INSTANCE_STATE}" == "${PREV_INSTANCE_STATE}" ]] || (echo; echo "INSTANCE_STATE=${INSTANCE_STATE}"); export PREV_INSTANCE_STATE=${INSTANCE_STATE}; [[ "${INSTANCE_STATE}" != "ACTIVE" ]] || break; echo -n "."; sleep 5; done; echo; echo "instance created, waiting for environment ${ENV_NAME} to be attached to instance"; while : ; do export ATTACHMENT_DONE=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${GOOGLE_CLOUD_PROJECT}/instances/${INSTANCE_NAME}/attachments" | jq "select(.attachments != null) | .attachments[] | select(.environment == \"${ENV_NAME}\" or (.environment | endswith(\"/${ENV_NAME}\"))) | .environment" --raw-output); [[ -n "${ATTACHMENT_DONE}" ]] && break; echo -n "."; sleep 5; done; echo; echo "${ENV_NAME} environment attached"; echo "***ORG IS READY TO USE***"; fi

    이 명령어 시리즈는 Apigee API를 사용하여 런타임 인스턴스가 생성된 시점을 확인한 다음, 평가 환경이 인스턴스에 연결될 때까지 기다립니다.

  7. 프로비저닝이 완료될 때까지 기다립니다.

    ***ORG IS READY TO USE*** 텍스트가 출력되면 조직을 테스트할 수 있습니다.

    참고: 조직이 완전히 생성될 때까지 기다리는 동안 이 실습을 계속 읽으면서 Apigee X 아키텍처, API 프록시 호출 수명 주기, Apigee UI에 대해 알아보세요.

    이 과정에는 30분 가까이 소요될 수 있습니다. 실습에 남은 시간을 확인하고 Cloud Shell 출력을 주기적으로 확인하여 조직을 테스트할 수 있는 시점을 파악합니다.

    이 퀘스트의 다른 실습에서는 Apigee 조직이 자동 생성됩니다.

Apigee X 아키텍처 개요

Apigee X 조직에는 두 개의 Google Cloud 프로젝트가 필요합니다. 하나는 고객이 관리하고, 다른 하나는 Google이 Apigee X 런타임을 위해 관리합니다. 각 프로젝트는 자체 가상 프라이빗 클라우드(VPC) 네트워크를 사용합니다. 기본적으로 서로 다른 두 프로젝트의 VPC 네트워크는 서로 통신할 수 없습니다.

두 개의 별도 프로젝트가 있으며, 그 사이에는 VPC 간 통신이 불가능함을 나타내는 구분이 표시되어 있습니다.

이러한 VPC 간의 통신을 사용 설정하기 위해 Apigee는 VPC 네트워크 피어링을 사용합니다. 네트워크 피어링을 사용하면 두 네트워크 간에 내부 IP 주소 연결이 가능합니다.

VPC 네트워크 피어링을 사용하면 Google의 VPC와 고객의 VPC가 서로 통신이 가능하게 됩니다.

Apigee 런타임은 API 프록시를 실행하며 Google 관리형 프로젝트에서 프로비저닝됩니다. 런타임에 대한 수신 요청은 피어링된 네트워크에서 비공개 IP 주소를 사용하여 액세스할 수 있는 내부 TCP 부하 분산기로 전송됩니다.

인터넷의 클라이언트에서 Apigee 런타임으로 트래픽을 라우팅하려면 전역 외부 HTTPS 부하 분산기(XLB)를 사용할 수 있습니다. 그러나 네트워크가 피어링되어 있더라도 XLB는 다른 프로젝트의 내부 IP 주소와 직접 통신할 수 없습니다. 이 문제를 해결하기 위해 가상 머신(VM)의 관리형 인스턴스 그룹(MIG)이 네트워크 브리지 역할을 합니다.

전역 서비스 및 백엔드 서비스를 포함하여 MIG를 네트워크 브리지로 사용할 때의 전체 아키텍처

MIG의 VM은 피어링된 네트워크에서 양방향으로 통신할 수 있습니다. 인터넷에서 들어오는 요청은 XLB를 통해 MIG의 브리지 VM으로 전달됩니다. VM은 Apigee 런타임의 내부 부하 분산기의 비공개 IP를 호출할 수 있습니다.

또한 런타임은 고객 프로젝트의 피어링된 네트워크에서 내부 IP 주소를 직접 호출하거나 Google 관리형 프로젝트의 Cloud NAT(네트워크 주소 변환) 게이트웨이를 통해 외부 IP를 호출할 수 있습니다.

API 프록시 호출 수명 주기

다음 이미지는 유료 Apigee X 조직의 API 프록시 호출 수명 주기를 보여 줍니다.

Apigee API 프록시 요청으로 시작하여 Apigee 요청 반환으로 끝나는 프록시 호출 수명 주기입니다.

  1. 클라이언트가 Apigee API 프록시를 호출합니다.
  2. 요청은 전역 외부 HTTPS 부하 분산기(XLB)로 전송됩니다. XLB는 외부 공개 IP 주소와 TLS 인증서로 구성됩니다.
  3. XLB는 요청을 MIG의 VM으로 전달합니다.
  4. VM은 요청을 Apigee 런타임으로 라우팅되는 내부 부하 분산기 비공개 IP 주소로 전달합니다.
  5. 요청을 처리한 후 Apigee 런타임은 요청을 백엔드 서비스로 보냅니다. 응답은 동일한 경로를 따라 반환됩니다.

Apigee UI

Apigee UI는 조직을 관리하는 데 사용됩니다. apigee.google.com으로 이동하여 UI에서 조직을 탐색할 수 있습니다.

참고: 프로비저닝 프로세스가 시작된 후 몇 분이 지나면 Apigee X 조직이 Apigee UI에 표시됩니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. Apigee 평가 조직을 만들고 프로비저닝될 때까지 기다립니다.

작업 3. 액세스 라우팅 설정

이 작업에서는 프로비저닝 마법사를 사용하여 VPC 네트워크 외부에서 API 호출을 수행할 수 있는 인프라를 만듭니다.

  1. 마법사 설정 탭으로 돌아갑니다.

    참고: 이전 진행 상황 체크포인트가 완료된 경우 Apigee 평가 조직 프로세스(3단계)가 완료된 것으로 표시되거나 곧 완료될 것으로 표시됩니다. 3단계가 완료될 때까지 기다립니다.
  2. 액세스 라우팅 옆에 있는 수정을 클릭합니다.

  3. 인터넷 액세스 사용 설정을 선택합니다.

    참고: 마법사에서 Google Cloud 부하 분산기 비용을 언급합니다. 이 실습을 사용하는 데 드는 비용은 없습니다.
  4. 와일드카드 DNS 서비스 사용을 선택합니다.

    와일드카드 DNS 서비스는 호스트 이름에 포함된 IP 주소를 기반으로 DNS 항목을 자동으로 반환합니다. 예를 들어 호스트 이름 eval-34.100.120.55.nip.io는 IP 주소 34.100.120.55로 확인됩니다.

  5. 기본 와일드카드 DNS 제공업체인 nip.io를 사용하려면 도메인을 변경하지 마세요.

  6. 서브네트워크apigeex-vpc를 선택합니다.

  7. 액세스 설정을 클릭합니다.

  8. 액세스 라우팅 구성이 완료될 때까지 기다린 다음 계속을 클릭합니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. 액세스 라우팅을 설정합니다.

평가 조직에 대한 외부 액세스가 생성되고 있습니다. 부하 분산기에서 사용하는 apigee-ssl-cert를 만드는 데 몇 분 정도 걸릴 수 있으므로 내부 액세스를 우선 테스트합니다.

작업 4. 내부 액세스를 사용하여 Apigee 평가 조직 테스트

이 작업에서는 Apigee 평가 조직의 프록시를 내부 IP 주소에서 호출할 수 있는지 테스트합니다.

내부 IP 주소를 사용하여 런타임 인스턴스에서 API 프록시를 호출하려면 인스턴스를 호출할 수 있는 동일한 네트워크에 VM을 만들어야 합니다.

Apigee 런타임에 대한 호출을 수행할 수 있는 가상 머신 만들기

프로비저닝 후 Apigee 평가 조직은 내부 IP 주소만 Apigee 런타임과 통신하도록 허용합니다. 클러스터 내의 Compute Engine VM은 Apigee 런타임의 내부 부하 분산기로 요청을 보낼 수 있습니다.

  1. Cloud Shell을 사용하여 다음 변수를 설정합니다.

    export ORG=${GOOGLE_CLOUD_PROJECT} export PROJECT_NUMBER=$(gcloud projects describe ${GOOGLE_CLOUD_PROJECT} --format="value(projectNumber)") export NETWORK=apigeex-vpc export SUBNET=apigeex-vpc export INSTANCE_NAME=eval-instance export VM_NAME=apigeex-test-vm export VM_ZONE={{{ project_0.default_zone | ZONE }}} export RUNTIME_IP=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${ORG}/instances/${INSTANCE_NAME}" | jq ".host" --raw-output) echo "RUNTIME_IP=${RUNTIME_IP}"

    런타임 IP 주소는 런타임 인스턴스의 세부정보를 검색하는 Apigee API를 사용하여 검색됩니다. jq 도구는 JSON 응답을 파싱하고 특정 필드를 검색하는 데 사용됩니다.

  2. 가상 머신을 만듭니다.

    gcloud beta compute --project=${GOOGLE_CLOUD_PROJECT} \ instances create ${VM_NAME} \ --zone=${VM_ZONE} \ --machine-type=e2-micro \ --subnet=${SUBNET} \ --service-account=${PROJECT_NUMBER}-compute@developer.gserviceaccount.com \ --scopes=https://www.googleapis.com/auth/cloud-platform \ --tags=http-server,https-server \ --image-family=debian-11 \ --image-project=debian-cloud \ --boot-disk-size=10GB \ --boot-disk-device-name=${VM_NAME} \ --metadata=startup-script="sudo apt-get update -y && sudo apt-get install -y jq"

    gcloud 명령어는 다음 파라미터를 사용하여 새 가상 머신을 만듭니다.

    • zone: VM 인스턴스의 영역입니다.
    • machine-type: e2-micro는 비용 효율적인 공유 코어 머신 유형입니다.
    • subnet: apigeex-vpc 네트워크에서 만든 서브넷입니다.
    • service-account: 인스턴스에 연결된 ID입니다.
    • scopes: VM의 서비스 계정에 제공되는 액세스 수준입니다.
    • tags: 인스턴스에 적용되는 태그 목록으로, 기본 방화벽 규칙과 경로를 제공하는 데 사용됩니다.
    • image-family: 이미지에 사용할 이미지 계열입니다. 계열 내에서 지원 중단되지 않은 최신 이미지가 사용됩니다.
    • image-project: 공개 이미지 계열을 호스팅하는 Google Cloud 프로젝트입니다.
    • boot-disk-size: 생성할 VM 부팅 디스크의 크기입니다.
    • boot-disk-device-name: 생성된 부팅 디스크의 이름입니다.
    • metadata:는 실행할 시작 스크립트를 지정합니다. 이 스크립트는 테스트에 사용되는 jq를 설치합니다.

    파라미터에 대한 자세한 내용은 다음 명령어를 사용하면 됩니다.

    gcloud compute instances create --help
  3. 네트워크의 VM에 대한 시큐어 셸(SSH) 액세스를 허용하는 방화벽 규칙을 추가합니다.

    gcloud compute --project=${GOOGLE_CLOUD_PROJECT} \ firewall-rules create ${NETWORK}-allow-ssh \ --direction=INGRESS \ --priority=65534 \ --network=${NETWORK} \ --action=ALLOW \ --rules=tcp:22 \ --source-ranges=0.0.0.0/0

    이 명령어는 머신에 대한 SSH 수신 요청이 모든 소스에서 허용됨을 지정합니다. SSH 세션에는 여전히 사용자 인증이 필요합니다.

  4. Cloud Shell에서 새 VM에 대한 SSH 연결을 엽니다.

    gcloud compute ssh ${VM_NAME} --zone=${VM_ZONE} --force-key-file-overwrite
  5. 묻는 질문마다 Enter 또는 Return을 클릭하여 기본 입력을 지정합니다.

    로그인한 ID가 프로젝트 소유자이므로 이 머신에 대한 SSH가 허용됩니다.

    이제 Cloud Shell 세션이 VM 내에서 실행됩니다.

Apigee 평가 조직 테스트

  1. VM의 셸에서 필요한 셸 변수를 설정합니다.

    export PROJECT_NAME=$(gcloud config get-value project) export ORG=${PROJECT_NAME} export INSTANCE_NAME=eval-instance export INSTANCE_IP=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${ORG}/instances/${INSTANCE_NAME}" | jq ".host" --raw-output) export ENV_GROUP_HOSTNAME=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${ORG}/envgroups" | jq ".environmentGroups[0].hostnames[0]" --raw-output) echo "INSTANCE_IP=${INSTANCE_IP}" echo "ENV_GROUP_HOSTNAME=${ENV_GROUP_HOSTNAME}"

    환경 그룹 호스트 이름은 평가 환경 그룹의 환경에 배포된 API 프록시에 대한 호출을 라우팅하는 데 사용됩니다.

  2. 내부 IP 주소를 사용하여 배포된 hello-world API 프록시를 호출합니다.

    curl -i -k --resolve "${ENV_GROUP_HOSTNAME}:443:${INSTANCE_IP}" \ "https://${ENV_GROUP_HOSTNAME}/hello-world"

    --resolve 설정은 환경 그룹 호스트 이름에 대한 DNS 항목이 없으므로 환경 그룹 호스트 이름으로 전송된 명령어가 인스턴스의 부하 분산기 IP 주소로 확인되도록 합니다. -k 옵션은 인스턴스의 부하 분산기가 제공하는 TLS 인증서의 확인을 건너뜁니다.

    curl 명령어는 피어링된 네트워크에 연결된 가상 머신을 사용하여 런타임의 부하 분산기의 내부 IP 주소를 호출합니다. curl 명령어는 hello-world 프록시에서 Hello, Guest!라는 출력을 반환합니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. 내부 액세스를 사용하여 Apigee 평가 조직을 테스트합니다.

작업 5. 외부 액세스를 사용하여 Apigee 평가 조직 테스트

이 작업에서는 Apigee 평가 조직의 프록시를 외부 IP 주소에서 호출할 수 있는지 테스트합니다.

프로비저닝 프로세스의 액세스 라우팅 단계에서는 외부 IP 주소에서 API 프록시를 호출하는 데 필요한 인프라를 만듭니다. 프로비저닝 마법사는 관리형 인스턴스 그룹을 통해 런타임을 호출하는 외부 부하 분산기를 만듭니다.

생성된 인프라 살펴보기

  1. 콘솔에서 네트워크 서비스 > 부하 분산으로 이동합니다.

    apigee-proxy-url-map이라는 이름의 부하 분산기가 생성되었습니다.

  2. apigee-proxy-url-map을 클릭합니다.

    부하 분산기 구성 섹션에는 프런트엔드, 호스트 및 경로 규칙, 백엔드가 포함됩니다.

    프런트엔드는 수신 트래픽에 대한 세부정보를 지정합니다. 이 부하 분산기는 외부 IP 주소의 포트 443에서 HTTPS 트래픽을 수락해야 합니다. 인증서 이름은 apigee-ssl-cert입니다.

    호스트 및 경로 규칙은 특정 백엔드를 호출하는 데 사용할 수 있는 호스트 이름과 URL 경로를 지정합니다. 이 경우 호스트 이름과 경로가 포함된 요청은 apigee-proxy-backend 백엔드 서비스로 전달됩니다.

    백엔드는 부하 분산기가 호출할 서비스를 지정합니다. apigee-proxy- 인스턴스 그룹에는 런타임 인스턴스로 요청을 전달하는 2개의 가상 머신이 포함되어 있습니다. 전역 부하 분산기는 요청을 내부 IP 주소로 전달할 수 없지만 인스턴스 그룹 VM은 내부 IP 주소를 호출할 수 있습니다.

  3. 인증서 세부정보에 액세스하려면 프런트엔드 구성에서 apigee-ssl-cert를 클릭합니다.

    활성 상태일 때 부하 분산기에서 사용하는 인증서에는 curl이 인증서 검사를 건너뛰지 않고 부하 분산기를 호출할 수 있도록 하는 인증서 체인이 있습니다. 인증서의 도메인은 [IP_ADDRESS].nip.io이며, 여기서 IP 주소는 프런트엔드 외부 IP 주소입니다.

    Google Cloud는 인증서를 프로비저닝해야 하며, 프로비저닝을 완료하는 데 상당한 시간이 걸릴 수 있습니다.

    활성 인증서의 구성은 다음과 같습니다.

    상태, 유형, 인증서 체인을 포함한 활성 인증 구성 설정입니다.

    인증서 상태가 PROVISIONING(프로비저닝 중)인 경우 Google Cloud에서 인증서를 생성했지만 아직 인증 기관과 협력하여 서명하고 있는 것일 수 있습니다.

    프로비저닝은 일반적으로 10분 이내에 완료되지만, 최대 1시간이 걸릴 수 있습니다. 자세한 내용은 관리 상태 문제 해결 가이드를 참고하세요.

  4. Cloud Shell에서 새 탭 열기(+)를 클릭하여 새 탭을 엽니다.

    Cloud Shell은 Google Cloud 프로젝트에서 비공개 IP 주소를 호출할 수 없습니다.

  5. 외부 IP 주소를 사용하여 배포된 hello-world API 프록시를 호출합니다.

    export PROJECT_NAME=$(gcloud config get-value project) export SSL_HOSTNAME=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://compute.googleapis.com/compute/v1/projects/${PROJECT_NAME}/global/sslCertificates/apigee-ssl-cert" | jq ".managed.domains[0]" --raw-output) echo "SSL_HOSTNAME=${SSL_HOSTNAME}" curl -H "Cache-Control: no-cache" "https://${SSL_HOSTNAME}/hello-world"

    Compute Engine API의 sslCertificates.get 메서드는 인증서와 연결된 nip.io 호스트 이름을 검색하는 데 사용됩니다.

    인증서가 완전히 프로비저닝되면 curl 명령어는 hello-world 프록시에서 Hello, Guest! 출력을 다시 반환합니다.

    curl 명령어가 핸드셰이크 실패를 반환하면 SSL 인증서가 아직 부하 분산기에 구성되지 않은 것입니다.

  6. 인증서 세부정보 페이지로 돌아가 인증서 상태를 확인합니다. 인증서 상태가 여전히 ACTIVE(활성)가 아니면 인증서가 활성화될 때까지 기다린 다음 curl 명령어를 다시 시도합니다.

수고하셨습니다.

이 실습에서는 가상 프라이빗 클라우드(VPC) 네트워크와 Apigee X 평가 조직을 만들었습니다. 그런 다음 가상 머신(VM)을 만들고 이를 사용하여 런타임을 직접 호출하여 Apigee X 조직에서 실행되는 API 프록시를 호출했습니다. 마지막으로 인터넷 액세스를 사용 설정하고 전역 부하 분산기를 통해 프록시를 호출했습니다.

다음 단계/더 학습하기

Google Cloud 교육 및 자격증

Google Cloud 기술을 최대한 활용하는 데 도움이 됩니다. Google 강의에는 빠른 습득과 지속적인 학습을 지원하는 기술적인 지식과 권장사항이 포함되어 있습니다. 기초에서 고급까지 수준별 학습을 제공하며 바쁜 일정에 알맞은 주문형, 실시간, 가상 옵션이 포함되어 있습니다. 인증은 Google Cloud 기술에 대한 역량과 전문성을 검증하고 입증하는 데 도움이 됩니다.

설명서 최종 업데이트: 2025년 9월 23일

실습 최종 테스트: 2025년 9월 23일

Copyright 2026 Google LLC. All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.

시작하기 전에

  1. 실습에서는 정해진 기간 동안 Google Cloud 프로젝트와 리소스를 만듭니다.
  2. 실습에는 시간 제한이 있으며 일시중지 기능이 없습니다. 실습을 종료하면 처음부터 다시 시작해야 합니다.
  3. 화면 왼쪽 상단에서 실습 시작을 클릭하여 시작합니다.

시크릿 브라우징 사용

  1. 실습에 입력한 사용자 이름비밀번호를 복사합니다.
  2. 비공개 모드에서 콘솔 열기를 클릭합니다.

콘솔에 로그인

    실습 사용자 인증 정보를 사용하여
  1. 로그인합니다. 다른 사용자 인증 정보를 사용하면 오류가 발생하거나 요금이 부과될 수 있습니다.
  2. 약관에 동의하고 리소스 복구 페이지를 건너뜁니다.
  3. 실습을 완료했거나 다시 시작하려고 하는 경우가 아니면 실습 종료를 클릭하지 마세요. 이 버튼을 클릭하면 작업 내용이 지워지고 프로젝트가 삭제됩니다.

현재 이 콘텐츠를 이용할 수 없습니다

이용할 수 있게 되면 이메일로 알려드리겠습니다.

감사합니다

이용할 수 있게 되면 이메일로 알려드리겠습니다.

한 번에 실습 1개만 가능

모든 기존 실습을 종료하고 이 실습을 시작할지 확인하세요.

시크릿 브라우징을 사용하여 실습 실행하기

Using an Incognito or private browser window is the best way to run this lab. This prevents any conflicts between your personal account and the Student account, which may cause extra charges incurred to your personal account.