Anthos 살펴보기

Google Cloud에의 Anthos 샘플 배포(미리보기)는 지금 미리보기가 가능한 Google Cloud Marketplace 솔루션입니다. GKE 클러스터, 서비스 메시, 여러 마이크로서비스를 포함한 애플리케이션과 함께 실제 Anthos 실무 환경이 배포됩니다. 이 가이드에서는 이러한 기능을 소개하며 가상의 은행을 통해 Google Cloud에 배포된 Anthos에 대해 알아봅니다. 그런 다음 후속 가이드에서 이 은행의 Anthos 사례를 따라 하며 관심 있는 Anthos 기능을 살펴볼 수 있습니다.

Anthos와 그 구성요소에 대해 먼저 알아보려면 기술 개요를 참조하세요. 하지만 Anthos에 대해 잘 몰라도 이 가이드를 진행할 수 있습니다. 클러스터 등의 기본 Kubernetes 개념에는 익숙해야 합니다. 이러한 개념을 잘 모른다면 Kubernetes 기본사항, Google Kubernetes Engine(GKE) 문서, Anthos Service Mesh용 애플리케이션 준비를 참조하세요.

실제 프로덕션 설치가 준비되면 설정 섹션을 참조하세요.

내 여정

나는 Bank of Anthos의 플랫폼 책임자입니다. Bank of Anthos는 약 10년 전 2대의 서버를 기반으로 결제 대행 서비스를 제공하는 중소기업으로 비즈니스를 시작했으며 이후 수천 명의 직원을 보유한 대규모 상업 은행으로 성장했으며 엔지니어링 조직도 커졌습니다. Bank of Anthos는 현재 비즈니스를 더 확장하려고 합니다.

그동안은 새로운 비즈니스 가치를 창출하는 것보다 인프라 유지보수에 더 많은 시간과 비용을 투자해 왔습니다. 기존 스택에 대한 경험이 수십 년간 누적되어 있지만 기존 기술로는 확장 시 은행에서 필요로 하는 글로벌 배포 규모를 충족할 수가 없습니다.

확장 목표를 이루기 위해 Anthos를 채택하여 애플리케이션을 현대화하고 클라우드로 마이그레이션했습니다.

목표

이 가이드에서는 다음 작업을 통해 Anthos의 주요 기능을 소개합니다.

  • 클러스터, 애플리케이션, Anthos 구성요소(Anthos Service Mesh 및 Anthos Config Management)를 사용하여 Anthos 환경을 배포합니다.

  • Google Cloud Console을 사용하여 애플리케이션에서 사용하는 Anthos 클러스터 리소스를 탐색합니다.

  • Anthos Service Mesh를 사용하여 애플리케이션 서비스를 관측합니다.

비용

Anthos 샘플 배포를 사용하면 Anthos를 구독하지 않는 한, 가격 책정 페이지에 나와 있는 Google Cloud의 Anthos 종량제 요금이 발생합니다.

Compute Engine VM 및 부하 분산기 요금과 같이 Anthos 샘플 배포를 실행하는 동안 발생하는 기타 Google Cloud 비용도 사용자가 부담합니다. 배포의 Google Cloud Marketplace 페이지에서 이러한 모든 리소스의 예상 월간 비용을 확인할 수 있습니다.

추가 요금이 청구되지 않도록 가이드를 완료하거나 배포를 살펴본 후 삭제하는 것이 좋습니다. Anthos 샘플 배포는 프로덕션 용도가 아니며 해당 구성요소를 업그레이드할 수 없습니다.

시작하기 전에

Google Cloud에의 Anthos 샘플 배포를 사용하려면 기존 리소스가 포함되지 않은 새 프로젝트를 사용해야 합니다.

다음과 같은 추가 프로젝트 요구사항이 적용됩니다.

  • 대상 배포 프로젝트 및 영역에 vCPU 7개, 메모리 24.6GB, 디스크 공간 310GB, VPC 1개, 방화벽 규칙 2개, Cloud NAT 1개 이상의 충분한 할당량이 있어야 합니다.
  • 조직에 클릭하여 배포 이미지의 사용을 명시적으로 제한하는 정책이 없어야 합니다.

가이드를 시작하기 전에:

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

  3. Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.

  4. Compute Engine and Service Management API를 사용 설정합니다.

    API 사용 설정

그리고 다음 작업을 수행하여 프로젝트가 Anthos 샘플 배포를 실행하기 위한 요구사항을 충족하는지 확인합니다.

  1. 새 프로젝트의 상단 툴바에서 Cloud Shell 활성화 셸 활성화 버튼를 클릭하여 Cloud Shell을 실행합니다.

    Cloud Shell은 웹브라우저에서 프로젝트와 리소스를 관리할 수 있는 Google Cloud용 대화형 셸 환경입니다.

  2. 다음 명령어에서 ZONE을 대상 배포 영역으로 바꿔 Cloud Shell을 구성합니다.

    gcloud config set compute/zone ZONE
    
  3. 다음 명령어를 입력하여 프로젝트가 필요한 요구사항을 충족하는지 확인하는 스크립트를 실행합니다.

    curl -sL https://github.com/GoogleCloudPlatform/anthos-sample-deployment/releases/latest/download/asd-prereq-checker.sh | sh -
    

    결과(예시):

    Your active configuration is: [cloudshell-4100]
    Checking project my-project-id, region us-central1, zone us-central1-c
    
    PASS: User has permission to create service account with the required IAM policies.
    PASS: Org Policy will allow this deployment.
    PASS: Service Management API is enabled.
    PASS: Anthos Sample Deployment does not already exist.
    PASS: Project ID is valid, does not contain colon.
    PASS: Project has sufficient quota to support this deployment.
    

    PASS가 출력되지 않는다면 문제 해결 가이드를 참조하세요. 이러한 오류를 수정하지 않고는 샘플을 배포할 수 없습니다.

배포 대상

Google Cloud에의 Anthos 샘플 배포는 다음을 사용하여 프로젝트를 프로비저닝합니다.

  • Google Cloud에서 실행되는 1개의 GKE 클러스터 anthos-sample-cluster1

  • 클러스터에 설치된 Anthos Service Mesh. Anthos Service Mesh를 사용하여 anthos-sample-cluster1에서 서비스 메시를 관리합니다.

  • 후속 가이드인 안전한 Anthos에서 Anthos Config Management를 사용하여 anthos-sample-cluster1에서 구성을 및 보안 정책을 관리하는 방법을 알아봅니다.

  • 클러스터에서 실행되는 Bank of Anthos 애플리케이션: 자바, Python, 자바스크립트 등 다양한 프로그래밍 언어로 작성된 여러 마이크로서비스를 사용하는 웹 기반 뱅킹 앱입니다.

  • 클러스터가 생성된 후 가이드 환경을 빠르게 시작하기 위해 여러 자동화된 작업을 수행하는 단일 Compute Engine 인스턴스(가상 머신): asd-jump-server

  • GKE 클러스터 및 Compute Engine 인스턴스의 대상 배포 리전 내에 서브네트워크가 있는 VPC Cloud RouterCloud NAT 게이트웨이 및 배포 구성요소 간 연결을 위한 방화벽 규칙

Google Cloud에의 Anthos 샘플 배포 실행

Cloud Marketplace를 통해 Google Cloud에의 Anthos 샘플 배포를 실행합니다.

  1. Google Cloud에의 Anthos 샘플 배포를 엽니다.

    Google Cloud에의 Anthos 샘플 배포로 이동

  2. 사용할 Google Cloud 프로젝트를 선택하고 확인합니다. 이 프로젝트는 시작하기 전에 섹션에서 만든 프로젝트여야 합니다.

  3. 실행을 클릭합니다. 솔루션에서 API를 몇 개 사용 설정하는 동안 배포 구성 화면으로 이동하는 데 몇 분 정도 걸릴 수 있습니다.

  4. 모든 기본 요건을 충족했는지 확인 체크박스를 선택하여 기본 요건 스크립트가 정상적으로 실행되었음을 확인합니다.

  5. (선택사항) 배포 구성 화면에서 선택한 배포 이름, 영역, 서비스 계정을 지정합니다. 그러나 첫 번째 배포에서는 새 서비스 계정 만들기를 포함하여 제공된 모든 기본값을 수락하는 것이 좋습니다.

  6. 배포를 클릭합니다. 무료 체험판 배포에는 최대 15분이 걸릴 수 있습니다. 잠시 기다리게 되더라도 걱정하지 마세요.

배포가 진행되는 동안 Cloud Console은 Deployment Manager 뷰로 전환됩니다. 샘플이 배포되면 전체 배포를 검토할 수 있습니다. 1개의 GKE 클러스터(anthos-sample-cluster1)와 1개의 Compute Engine 인스턴스(asd-jump-server)를 포함하여 사용 설정된 모든 리소스 목록이 표시됩니다.

배포 오류가 발생하면 문제 해결 가이드를 참조하세요.

Anthos 대시보드 사용

Anthos는 클러스터, 서비스, 워크로드를 포함한 모든 애플리케이션 리소스의 구조화된 뷰를 즉시 제공하여 리소스를 대략적으로 한눈에 볼 수 있으며 필요한 경우 드릴다운하여 하위 수준의 정보도 찾을 수 있습니다. 배포의 최상위 수준 대시보드를 보려면 Google Cloud Console에서 프로젝트의 Anthos 대시보드로 이동합니다.

Anthos 대시보드로 이동

다음과 같이 표시됩니다.

  • 서비스 메시 섹션에서는 서비스 9개가 있음을 알려줍니다(서비스 상태를 보려면 조치가 필요함). 이에 대한 자세한 내용은 가이드의 뒷부분에 나와 있습니다.

  • 클러스터 상태 섹션에서는 정상적인 GKE 클러스터 1개가 있음을 알려줍니다.

Anthos 대시보드의 스크린샷

Explore Anthos 클러스터 리소스

Anthos 클러스터 페이지에는 Google Cloud 외부의 클러스터를 포함하여 Anthos에 등록된 프로젝트의 모든 클러스터가 표시됩니다. Google Kubernetes Engine 클러스터 페이지에서 프로젝트의 모든 클러스터를 확인할 수도 있습니다. 실제로 더 많은 클러스터와 노드 세부정보를 확인할 수 있는 경우 Anthos 클러스터 페이지에서는 GKE 페이지를 상세히 살펴볼 수 있습니다.

이 섹션에서는 Bank of Anthos의 GKE 리소스를 자세히 살펴봅니다.

클러스터 관리

  1. Google Cloud Console에서 Anthos 클러스터 페이지로 이동합니다.

    클러스터 페이지로 이동

  2. anthos-sample-cluster1 클러스터를 클릭하면 오른쪽 창에 유형, 마스터 버전, 위치를 포함한 기본 세부정보가 표시됩니다. 클러스터 기능 섹션에서 이 클러스터에 사용 설정된 Anthos 기능을 확인할 수도 있습니다.

  3. 이 클러스터에 대한 자세한 내용을 보려면 GKE의 세부정보 더보기를 클릭하세요. 그러면 클러스터의 모든 현재 설정이 포함된 Google Kubernetes Engine 콘솔의 클러스터 페이지로 이동합니다.

  4. Google Kubernetes Engine 콘솔에서 노드 탭을 클릭하여 클러스터의 모든 작업자 머신을 확인합니다. 여기에서 드릴다운하여 각 노드에서 실행 중인 워크로드 pod와 노드의 리소스 요약(CPU, 메모리, 스토리지)도 확인할 수 있습니다.

GKE 클러스터 및 노드에 대한 자세한 내용은 GKE 문서를 참조하세요.

클러스터 워크로드

Google Kubernetes Engine 콘솔에는 모든 GKE 클러스터에서 실행되는 워크로드(pod)를 집계한 워크로드 뷰가 있습니다.

GKE 클러스터 및 네임스페이스의 워크로드가 표시됩니다. 예를 들어 boa 네임스페이스의 워크로드는 anthos-sample-cluster1에서 실행됩니다.

서비스 및 인그레스

서비스 및 인그레스 뷰에는 프로젝트의 서비스 및 인그레스 리소스가 표시됩니다. 서비스는 pod 집합을 엔드포인트가 포함된 네트워크 서비스로 노출하고, 인그레스는 클러스터의 서비스에 대한 외부 액세스를 관리합니다. Bank of Anthos는 일반적인 Kubernetes 인그레스 대신 은행에 대한 트래픽에 Istio 인그레스 게이트웨이 서비스를 사용합니다. Anthos Service Mesh 메시는 이 서비스를 사용하여 수신 트래픽에 더 복잡한 트래픽 라우팅을 추가할 수 있습니다. 이 가이드의 뒷부분에서 서비스 메시 관측 가능성 기능을 사용할 때 이를 확인할 수 있습니다.

  1. Google Kubernetes Engine 콘솔에서 서비스 및 인그레스 페이지로 이동합니다.

    서비스 및 인그레스 페이지로 이동

  2. Bank of Anthos 인그레스 게이트웨이를 찾으려면 사용 가능한 서비스 목록을 아래로 스크롤하여 istio-ingressgateway라는 이름의 서비스를 찾습니다.

  3. istio-ingressgateway의 행 끝에 있는 아래쪽 화살표를 클릭하면 모든 외부 엔드포인트를 포함한 서비스에 대한 자세한 정보가 표시됩니다. 인그레스 게이트웨이에서 애플리케이션 서비스 메시의 인바운드 트래픽을 관리하므로 이 경우 서비스 세부정보를 사용하여 은행의 웹 프런트엔드를 방문할 수 있습니다.

  4. 포트 80을 사용하는 istio-ingressgateway 외부 엔드포인트를 클릭합니다. Bank of Anthos 웹 인터페이스를 탐색할 수 있습니다.

서비스 관측

Anthos의 서비스 관리 및 관측 가능성은 안정적인 서비스 메시를 모니터링하고 관리하는 데 도움이 되는 Istio에서 제공하는 도구 모음인 Anthos Service Mesh로 제공됩니다. Anthos Service Mesh와 마이크로서비스 관리에 도움이 되는 방법에 대해 자세히 알아보려면 Anthos Service Mesh 문서를 참조하세요. 컨테이너에서 마이크로서비스 사용 및 수행할 수 있는 작업에 익숙하지 않은 경우 Anthos Service Mesh용 애플리케이션 준비를 참조하세요.

이 예시에서는 샘플 배포의 클러스터에서 마이크로서비스 기반의 Bank of Anthos 샘플 애플리케이션이 실행됩니다. 또한 대시보드에서 측정항목과 트래픽을 확인할 수 있도록 클러스터에 대한 소량의 부하를 시뮬레이션하는 loadgenerator 유틸리티가 애플리케이션에 포함되어 있습니다.

이 섹션에서는 Anthos Service Mesh 페이지를 사용하여 이 애플리케이션의 서비스와 트래픽을 살펴봅니다.

서비스 테이블 뷰 관측

  1. Anthos Service Mesh 페이지로 이동합니다.

    Anthos Service Mesh 페이지로 이동

  2. 기본적으로 이 페이지에는 시스템 서비스가 포함된 모든 프로젝트의 마이크로서비스 목록이 표시되는 테이블 뷰가 표시됩니다. Bank of Anthos 서비스만 필터링하려면 페이지 왼쪽 상단의 네임스페이스 드롭다운에서 boa를 선택합니다.

테이블의 행마다 Bank of Anthos 애플리케이션을 구성하는 서비스 중 하나를 나타냅니다. 예를 들어 frontend 서비스는 애플리케이션의 웹 사용자 인터페이스를 렌더링하며 userservice 서비스에서는 사용자 계정과 인증을 관리합니다.

각 서비스 목록에는 해당 서비스의 오류율 및 주요 지연 시간과 같은 최신 측정항목이 표시됩니다. 이러한 측정항목은 Anthos에 배포된 서비스에서 즉시 수집됩니다. 통계를 확인하기 위해 애플리케이션 코드를 작성할 필요는 없습니다.

이 뷰에서 드릴다운하여 각 서비스의 세부정보를 살펴볼 수 있습니다. 예를 들어 transactionhistory 서비스에 대해 자세히 알아보려면 다음 안내를 따르세요.

  1. 서비스 목록에서 transactionhistory를 클릭합니다. 서비스 세부정보 페이지에 이 서비스에 사용할 수 있는 모든 원격 분석이 표시됩니다.

  2. transactionhistory 페이지의 탐색 메뉴에서 연결된 서비스를 선택합니다. 여기에서 서비스의 인바운드 연결 및 아웃바운드 연결을 모두 확인할 수 있습니다. 잠금 해제된 자물쇠 아이콘은 일부 트래픽이 상호 TLS(mTLS)를 사용하지 않는 이 포트에서 관찰되었음을 나타냅니다. Secure Anthos 가이드에서 작동 방식을 자세히 알아볼 수 있습니다.

Anthos Service Mesh 연결된 서비스 뷰의 스크린샷

서비스 토폴로지 뷰 관측

테이블 뷰만이 Anthos에서 서비스를 관측할 수 있는 유일한 방법은 아닙니다. 토폴로지 뷰를 사용하면 서비스 상호작용 방식을 집중적으로 살펴볼 수 있습니다.

  1. 아직 이동 전이라면 페이지 상단의 뒤로 화살표를 클릭하여 서비스 세부정보 뷰에서 테이블 뷰로 돌아갑니다.

  2. 페이지 오른쪽 상단의 토폴로지를 클릭하여 테이블 보기에서 워크로드/서비스 그래프 시각화로 전환합니다. 범례에서 볼 수 있듯이 그래프에는 애플리케이션의 Anthos Service Mesh 서비스와 이를 구현하는 GKE 워크로드가 모두 표시됩니다.

    Anthos Service Mesh 토폴로지 뷰의 스크린샷

이제 토폴로지 그래프를 살펴보겠습니다. Anthos Service Mesh는 서로 통신하는 서비스를 자동으로 관측하여 서비스 간 연결 세부정보를 표시합니다.

  • 마우스 포인터를 항목 위로 가져가면 각 서비스의 아웃바운드 QPS를 포함한 추가 세부정보가 표시됩니다.

  • 그래프의 특정 부분이 더 잘 보이게 마우스로 노드를 드래그하세요.

  • 서비스 노드를 클릭하면 자세한 서비스 정보를 확인할 수 있습니다.

  • 마우스 포인터를 워크로드 노드 위에 올려놓고 펼치기를 클릭하면 현재 실행 중인 워크로드의 인스턴스 수를 포함한 자세한 정보가 표시됩니다.

Anthos 자세히 살펴보기

이 가이드에서는 여러 Anthos 기능을 다루고 있지만 Anthos는 그 밖에도 많은 정보와 작업들을 배포에 제공합니다. 후속 가이드 중 하나를 선택하여 Anthos를 사용한 실습에 참여하거나 다음 섹션의 삭제 안내를 따르기 전에 직접 Google Cloud에의 Anthos 샘플 배포를 계속 살펴보세요.

가이드 더보기:

삭제

Anthos 샘플 배포를 모두 살펴본 후 Google Cloud에서 만든 리소스를 삭제하면 이 리소스가 할당량을 차지하지 않고 이후에 요금이 청구되지 않습니다. 다음 섹션은 이러한 리소스를 삭제하거나 사용 중지하는 방법을 설명합니다.

  • 옵션 1. 프로젝트를 삭제할 수 있습니다. 권장 방법입니다. 하지만 프로젝트를 유지하려는 경우에는 옵션 2를 사용하여 배포를 삭제하면 됩니다.

  • 옵션 2. (실험용) 기존의 빈 프로젝트에서 작업하는 경우 배포 삭제부터 시작하여 이 가이드의 모든 단계를 수동으로 되돌리는 것이 좋습니다.

  • 옵션 3. (실험용) Google Cloud 전문가이거나 클러스터에 기존 리소스가 있는 경우 이 가이드에서 만든 리소스를 수동으로 삭제하는 것이 좋을 수 있습니다.

프로젝트 삭제(옵션 1)

  1. Cloud Console에서 리소스 관리 페이지로 이동합니다.

    리소스 관리로 이동

  2. 프로젝트 목록에서 삭제할 프로젝트를 선택하고 삭제를 클릭합니다.
  3. 대화상자에서 프로젝트 ID를 입력한 후 종료를 클릭하여 프로젝트를 삭제합니다.

배포 삭제(옵션 2)

Deployment Manager에서 생성된 항목을 실행 취소하도록 허용하는 방식입니다. 배포에 오류가 발생했더라도 이 방식을 사용하여 실행취소할 수 있습니다.

  1. Cloud Console의 탐색 메뉴에서 Deployment Manager를 클릭합니다.

  2. 배포를 선택한 후 삭제를 클릭합니다.

  3. 삭제를 다시 클릭하여 확인합니다.

  4. 배포에 오류가 발생했더라도 배포를 선택하여 삭제할 수 있습니다.

  5. 삭제를 클릭해도 삭제되지 않으면 마지막 수단으로 삭제하지만 리소스는 유지를 시도할 수 있습니다. Deployment Manager에서 리소스를 삭제할 수 없는 경우 해당 리소스를 확인한 후 나중에 수동으로 삭제해야 합니다.

  6. Deployment Manager에서 삭제를 완료할 때까지 기다립니다.

  7. (임시 단계) 탐색 메뉴에서 네트워크 서비스 > 부하 분산을 클릭한 후 anthos-sample-cluster1 클러스터에서 만든 전달 규칙을 삭제합니다.

  8. (선택사항) https://source.cloud.google.com/<project_id>로 이동합니다. 이름에 config-repo가 있는 저장소를 삭제합니다(있는 경우).

  9. (선택사항) 배포 중에 만든 서비스 계정과 관련된 모든 IAM 역할을 삭제합니다.

수동 삭제(옵션 3)

Google Cloud Console에서 리소스를 수동으로 삭제하는 방식입니다.

  1. Cloud Console의 탐색 메뉴에서 Kubernetes Engine을 클릭합니다.

  2. 클러스터를 선택하고 삭제를 클릭한 후 삭제를 다시 클릭하여 확인합니다.

  3. Cloud Console의 탐색 메뉴에서 Compute Engine을 클릭합니다.

  4. 점프 서버를 선택하고 삭제를 클릭한 후 삭제를 다시 클릭하여 확인합니다.

  5. 옵션 2의 7단계와 8단계를 따릅니다.

수동 삭제 후 다시 배포하려면 시작하기 전에 섹션의 설명대로 모든 요구사항이 충족되었는지 확인합니다.

다음 단계