3단계: apigeectl 설치

이 단계에서는 AWS의 AWS GKE 머신에 apigeectl을 다운로드하고 설치하는 방법을 설명합니다. 이 단계에는 설치 디렉터리 설정, 하이브리드 구성요소가 통신하는 데 필요한 Google Cloud 서비스 계정 만들기, Apigee Hybrid가 작동하는 데 필요한 TLS 사용자 인증 정보 만들기가 포함됩니다.

apigeectl 다운로드 및 설치

apigeectl은 Kubernetes 클러스터에서 Apigee Hybrid 설치 및 관리를 위한 명령줄 인터페이스(CLI)입니다.

apigeectl을 가져오려면 다음 절차를 따르세요.

  1. 다음 명령어를 사용하여 최신 버전 번호를 변수에 저장합니다.
    export VERSION=$(curl -s \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/current-version.txt?ignoreCache=1)
  2. 다음 명령어를 사용하여 변수가 버전 번호로 채워졌는지 확인합니다. 다른 버전을 사용하려면 대신 환경 변수에 저장하면 됩니다.
    echo $VERSION
  3. 다음 명령어를 사용하여 운영체제용 출시버전 패키지를 다운로드합니다.

    Mac 64비트:

    curl -LO \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_mac_64.tar.gz

    Linux 64비트:

    curl -LO \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_linux_64.tar.gz

    Mac 32비트:

    curl -LO \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_mac_32.tar.gz

    Linux 32비트:

    curl -LO \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_linux_32.tar.gz
  4. Apigee hybrid 설치의 기본 디렉터리 역할을 하는 디렉터리를 시스템에 만듭니다.
  5. 다음 명령어를 사용하여 다운로드한 gzip 파일 콘텐츠를 방금 만든 기본 디렉터리에 추출합니다.

    tar xvzf filename.tar.gz -C path-to-base-directory
  6. cd 명령어를 사용하여 디렉터리를 기본 디렉터리로 변경합니다.
  7. tar 콘텐츠는 기본적으로 이름에 해당 버전과 플랫폼이 포함된 디렉터리로 확장됩니다. 예를 들면 ./apigeectl_1.0.0-f7b96a8_linux_64입니다. 다음 명령어를 사용하여 디렉터리 이름을 apigeectl로 변경합니다.

    mv apigeectl_1.0.0-f7b96a8_linux_64 apigeectl
  8. 다음 명령어를 사용하여 디렉터리로 변경합니다.
    cd ./apigeectl

    이 디렉터리는 apigeectl 홈 디렉터리입니다. 여기에 apigeectl 실행 가능한 명령어가 있습니다.

  9. 다음 명령어를 사용하여 이 홈 디렉터리 경로를 저장할 환경 변수를 만듭니다.
    export APIGEECTL_HOME=$PWD
  10. 다음 명령어를 사용하여 변수에 올바른 경로가 포함되었는지 확인합니다.
    echo $APIGEECTL_HOME

프로젝트 디렉터리 구조 설정

다음 디렉터리 구조는 권장되는 방식입니다. 이 방식은 Apigee Hybrid 출시 소프트웨어를 개발자가 만들어야 하는 구성 파일과 분리합니다. 만들려는 $APIGEECTL_HOME 변수 및 심볼릭 링크를 사용하면 원하는 경우 새 소프트웨어 버전으로 쉽게 전환할 수 있습니다. Apigee Hybrid 업그레이드도 참조하세요.

  1. 다음 명령어를 사용하여 기본 디렉터리(apigeectl 디렉터리가 있는 디렉터리)에 있는지 확인합니다.
    cd $APIGEECTL_HOME/..
  2. 다음 명령어를 사용하여 hybrid-files라는 새 폴더를 만듭니다. 디렉터리에 원하는 이름을 지정할 수 있지만 문서에서는 hybrid-files 이름을 일관되게 사용합니다. 나중에 이 폴더에 구성 파일, 서비스 계정 키, TLS 인증서를 저장합니다. 이 폴더를 사용하면 구성 파일을 apigeectl 소프트웨어 설치와 별도로 유지할 수 있습니다.
    mkdir hybrid-files
  3. 현재 디렉터리 구조는 이제 다음과 같이 표시됩니다.
    pwd && ls
    /hybrid-base-directory
      apigeectl
      hybrid-files
  4. 다음 명령어를 사용하여 디렉터리를 hybrid-files 폴더로 변경합니다.
    cd hybrid-files
  5. hybrid-files 디렉터리 내에서 다음 하위 디렉터리를 만들어 나중에 만들 파일을 구성합니다.
    mkdir overrides
    mkdir service-accounts
    mkdir certs
  6. hybrid-files 디렉터리 내에서 $APIGEECTL_HOME에 대해 다음 심볼릭 링크를 만듭니다. 이러한 링크를 사용하면 다음 예시와 같이 hybrid-files 디렉터리 내부에서 apigeectl 명령어를 실행할 수 있습니다.
    ln -s $APIGEECTL_HOME/tools tools
    ln -s $APIGEECTL_HOME/config config
    ln -s $APIGEECTL_HOME/templates templates
    ln -s $APIGEECTL_HOME/plugins plugins
  7. 심볼릭 링크가 올바르게 생성되었는지 확인하려면 이 명령어를 실행하고 링크 경로가 올바른 위치를 가리키는지 확인합니다.
    ls -l | grep ^l

서비스 계정 만들기

Apigee Hybrid는 Google Cloud 서비스 계정을 사용하여 승인된 API 호출을 만들어 하이브리드 구성요소가 통신할 수 있도록 합니다. 이 단계에서는 Apigee Hybrid 명령줄 도구를 사용하여 서비스 계정 집합을 만듭니다. 또한 도구는 서비스 계정 비공개 키를 자동으로 다운로드합니다. 그런 다음 Apigee Hybrid 클러스터 구성 파일에 이러한 키를 추가해야 합니다.

Apigee는 단일 명령어로 서비스 계정을 만들고, 서비스 계정에 역할을 할당하고, 서비스 계정의 키 파일을 만들고 다운로드하는 도구 create-service-account를 제공합니다. 관련 Google Cloud 개념에 대한 자세한 내용은서비스 계정 만들기 및 관리서비스 계정 키 만들기 및 관리를 참조하세요.

  1. 프로젝트 디렉터리 구조 설정에서 구성한 base_directory/hybrid-files 디렉터리에 있는지 확인합니다.
  2. hybrid-files 디렉터리 내에서 다음 명령어를 실행합니다. 이 명령어는 apigee-metrics 구성요소의 서비스 계정을 만들고 다운로드한 키를 ./service-accounts 디렉터리에 배치합니다.
    ./tools/create-service-account apigee-metrics ./service-accounts

    다음 프롬프트가 표시되면 y를 입력합니다.

    [INFO]: gcloud configured project ID is project_id.
     Press: y to proceed with creating service account in project: project_id
     Press: n to abort.

    도구로 할당된 정확한 이름이 있는 SA를 처음 만들면 도구에서 SA를 만들므로 추가적으로 해야 할 작업은 없습니다.

    하지만 다음 메시지 및 프롬프트가 표시되면 y를 입력하여 새 키를 생성합니다.

    [INFO]: Service account apigee-metrics@project_id.iam.gserviceaccount.com already exists.
    ...
     [INFO]: The service account might have keys associated with it. It is recommended to use existing keys.
     Press: y to generate new keys.(this does not de-activate existing keys)
     Press: n to skip generating new keys.
    
  3. 이제 다음 명령어를 사용하여 서비스 계정의 나머지 부분을 만듭니다. create-service-account 명령어는 대화형이며 각 계정의 응답이 필요합니다.
    ./tools/create-service-account apigee-synchronizer ./service-accounts
    ./tools/create-service-account apigee-udca ./service-accounts
    ./tools/create-service-account apigee-mart ./service-accounts
    ./tools/create-service-account apigee-cassandra ./service-accounts
    ./tools/create-service-account apigee-logger ./service-accounts
    ./tools/create-service-account apigee-watcher ./service-accounts
  4. 다음 명령어를 사용하여 서비스 계정 키가 생성되었는지 확인합니다. 이러한 비공개 키를 안전하게 보관할 책임은 사용자에게 있습니다. 키 파일 이름에는 Google Cloud 프로젝트 이름이 프리픽스로 추가됩니다.
    ls ./service-accounts

    다음과 같은 결과가 표시됩니다.

    gcp-project-id-apigee-cassandra.json
    gcp-project-id-apigee-logger.json
    gcp-project-id-apigee-mart.json
    gcp-project-id-apigee-metrics.json
    gcp-project-id-apigee-synchronizer.json
    gcp-project-id-apigee-udca.json
    gcp-project-id-apigee-watcher.json
  5. apigee-org-admin 서비스 계정에 Apigee 조직 관리자 역할을 할당합니다.
  6. 다음 예시와 같이 apigee-org-admin 서비스 계정의 이메일 주소가 service_account@PROJECT_ID.iam.gserviceaccount.com 패턴을 따르는지 확인합니다.
    gcloud iam service-accounts list --filter "apigee-org-admin"
  7. 다음 명령어를 사용하여 역할을 할당합니다.
    gcloud projects add-iam-policy-binding $PROJECT_ID \
    --member serviceAccount:apigee-org-admin@$PROJECT_ID.iam.gserviceaccount.com --role roles/apigee.admin

    여기서 PROJECT_ID는 Google Cloud 프로젝트입니다. 서비스 계정 이메일 주소가 이 패턴과 다른 경우 적절하게 변경합니다.

    출력에는 다음을 포함한 모든 서비스 계정과 해당 역할 목록이 포함되어야 합니다.

    - members:
      - serviceAccount:apigee-org-admin@hybrid-example-2.iam.gserviceaccount.com
      role: roles/apigee.admin

TLS 인증서 만들기

Apigee Hybrid 구성에 런타임 인그레스 게이트웨이에 대한 TLS 인증서를 제공해야 합니다. 이 빠른 시작(비프로덕션 무료 체험판 설치)에서 런타임 게이트웨이는 자체 서명 사용자 인증 정보를 수락할 수 있습니다. 다음의 절차에서 openssl은 자체 서명 사용자 인증 정보를 생성하는 데 사용됩니다.

이 단계에서는 TLS 사용자 인증 정보 파일을 만들어 base_directory/hybrid-files/certs 디렉터리에 추가합니다. 4단계: 클러스터 구성에서는 파일 경로를 클러스터 구성 파일에 추가합니다.

  1. 프로젝트 디렉터리 구조 설정에서 구성한 base_directory/hybrid-files 디렉터리에 있는지 확인합니다.
  2. 다음 명령어를 사용하여 도메인 이름이 DOMAIN 환경 변수에 저장되어 있는지 확인합니다.
    echo $DOMAIN
  3. hybrid-files 디렉터리 내에서 다음 명령어를 실행합니다.
    openssl req  -nodes -new -x509 -keyout ./certs/keystore.key -out \
        ./certs/keystore.pem -subj '/CN='$DOMAIN'' -days 3650

    여기서 DOMAIN빠른 시작(하이브리드) 5단계: DNS 구성에서 하이브리드 설치를 위해 예약된 도메인입니다.

    이 명령어는 빠른 시작 설치에 사용할 수 있는 자체 서명 인증서/키 쌍을 만듭니다.

  4. 다음 명령어를 사용하여 파일이 ./certs 디렉터리에 있는지 확인합니다.
    ls ./certs
      keystore.pem
      keystore.key

    여기서 keystore.pem은 자체 서명 TLS 인증서 파일이고 keystore.key는 키 파일입니다.

이제 Kubernetes 클러스터에서 Apigee Hybrid를 구성, 배포, 관리할 수 있는 홈이 제공됩니다. 다음 단계로 하이브리드 런타임 구성요소를 클러스터에 배포하기 위해 Kubernetes에서 사용되는 파일을 만듭니다.

다음 단계

1 2 3 (다음) 4단계: 클러스터 구성 5