GCP 서비스 정보

이 개요에서는 일반적으로 사용되는 GCP(Google Cloud Platform) 서비스 중 일부를 소개합니다. 전체 서비스 목록은 제품 및 서비스 페이지를 참조하세요.

이 개요에는 다음 유형의 서비스가 포함됩니다.

컴퓨팅 및 호스팅 서비스

GCP는 컴퓨팅 및 호스팅을 위한 여러 옵션을 제공합니다. 다음 중에서 선택할 수 있습니다.

  • 서버리스 환경에서 작업합니다.
  • 관리형 애플리케이션 플랫폼을 사용합니다.
  • 유연성 확보를 위해 컨테이너 기술을 활용합니다.
  • 최대한의 제어 및 유연성 확보를 위해 고유한 클라우드 기반 인프라를 구축합니다.

한 쪽에서는 개발자가 리소스 관리를 대부분 책임지고, 다른 쪽에서는 Google이 이러한 관리를 대부분 책임지는 스펙트럼이 있다고 가정해보세요.

컴퓨팅 및 호스팅 옵션으로 다양한 운영 요구사항 제공

서버리스 컴퓨팅

GCP의 FaaS(서비스로서의 함수)인 Google Cloud Functions는 클라우드 서비스 구축 및 연결을 위한 서버리스 실행 환경을 제공합니다. Cloud Functions를 사용하면 클라우드 인프라와 서비스에서 발생하는 이벤트에 연결되는 단일 목적의 간단한 함수를 작성할 수 있습니다. Cloud Functions는 감시 이벤트가 발생할 때 실행됩니다. 코드가 완전 관리형 환경에서 실행되므로 인프라를 프로비저닝하거나 서버 관리를 걱정할 필요가 없습니다.

자바스크립트를 사용하여 Cloud Functions를 작성하고 GCP의 Node.js v6.11.5 환경에서 실행합니다. 모든 표준 Node.js 런타임에서 Cloud Functions를 실행할 수 있으므로, 이동성과 로컬 테스트가 모두 간편합니다.

Cloud Functions는 다음과 같은 사용 사례에 적합합니다.

  • 동영상 트랜스코딩 및 IoT 스트리밍 데이터와 같은 시나리오를 위한 데이터 처리 및 ETL 작업

  • HTTP 트리거에 응답하기 위한 Webhook

  • 느슨하게 결합된 논리를 애플리케이션으로 구성하는 경량 API

  • 모바일 백엔드 함수

애플리케이션 플랫폼

Google App Engine은 GCP의 PaaS(서비스로서의 플랫폼)입니다. Google은 App Engine을 사용해서 대부분의 리소스 관리를 처리합니다. 예를 들어 웹 사이트 트래픽 증가로 인해 애플리케이션에 컴퓨팅 리소스가 더 필요한 경우, Google은 시스템을 자동으로 확대하여 해당 리소스를 제공합니다. 시스템 소프트웨어에 보안 업데이트가 필요하면 이것도 자동으로 처리됩니다.

App Engine에서 앱을 빌드할 때는 다음을 수행할 수 있습니다.

  • App Engine 표준 환경 런타임 위에 표준 환경이 지원하는 언어인 Python 2.7, 자바 8, 자바 7, PHP 5.5, Go 1.8, 1.6으로 앱을 빌드할 수 있습니다.

  • App Engine 가변형 환경 런타임 위에 App Engine 가변형 환경이 지원하는 언어인 Python 2.7/3.6, 자바 8, Go 1.8, Node.js, PHP 5.6, 7, .NET, Ruby로 앱을 빌드할 수 있습니다. 또는 커스텀 런타임을 사용해서 지원되는 언어 또는 다른 언어의 대체 구현을 사용할 수 있습니다.

  • Google이 앱 호스팅, 확장, 모니터링, 인프라를 자동으로 관리하도록 할 수 있습니다.

  • App Engine SDK를 사용하여 GCP에서 App Engine을 시뮬레이션하는 환경에서 로컬 머신을 개발하고 테스트할 수 있습니다.

  • App Engine이 표준 및 가변형 환경에서 지원하도록 디자인된 저장소 기술을 쉽게 사용할 수 있습니다.

    Google Cloud SQL은 MySQL 또는 PostgreSQL을 지원하는 SQL 데이터베이스입니다. Google Cloud Datastore는 스키마가 없는 NoSQL 데이터 스토리지입니다. Google Cloud Storage는 대용량 파일을 위한 공간을 제공합니다.

    표준 환경에서는 Redis, MongoDB, Cassandra, Hadoop와 같이 애플리케이션에 사용할 다양한 타사 데이터베이스 중에서 선택할 수도 있습니다.

    가변형 환경에서는 Google App Engine 인스턴스에서 데이터베이스에 액세스할 수 있는 경우, 해당 언어에서 지원되는 모든 타사 데이터베이스를 쉽게 사용할 수 있습니다.

    어느 환경이든 타사 데이터베이스를 Compute Engine에 호스팅하거나, 다른 클라우드 제공업체에 호스팅하거나, 온프레미스에 호스팅하거나, 타사 공급업체에 관리를 맡길 수 있습니다.

  • 표준 환경에서 Cloud Endpoints를 사용하여 다른 애플리케이션의 데이터 액세스를 간소화하기 위해 사용할 수 있는 API 및 클라이언트 라이브러리를 생성할 수 있습니다. Endpoints를 사용하면 Android 또는 iOS와 같은 웹 클라이언트 및 모바일 클라이언트를 위한 웹 백엔드를 쉽게 만들 수 있습니다.

  • 이메일 및 사용자 관리와 같은 활동을 위한 기본 제공되는 관리형 서비스를 사용할 수 있습니다.

  • Cloud Security Scanner를 사용하여 기존 보안 디자인 및 개발 프로세스에 대한 보조 방식으로 보안 취약성을 식별할 수 있습니다.

  • macOS 또는 Microsoft Windows에서 앱 엔진 실행기 GUI를 사용하거나 명령줄을 사용하여 앱을 배포할 수 있습니다.

  • 표준 환경의 경우 미국 중부 또는 서부 유럽 지역에서 앱을 실행할 수 있습니다.

App Engine 기능에 대한 전체 목록과 설명을 보려면 App Engine 문서를 참조하세요.

컨테이너

컨테이너 기반 컴퓨팅에서는 호스팅 환경에 대한 배포 및 통합 대신 애플리케이션 코드에 집중할 수 있습니다. GCP의 CaaS(서비스로서의 컨테이너)인 Google Kubernetes Engine은 오픈소스 Kubernetes 시스템을 기반으로 구축되어, GCP의 공용 클라우드 인프라는 물론 온프레미스 또는 하이브리드 클라우드를 선택할 수 있는 유연성을 제공합니다.

Kubernetes Engine을 사용하여 빌드하면 다음을 수행할 수 있습니다.

  • 클러스터라고 부르는 Kubernetes 실행 Compute Engine 인스턴스 그룹을 만들고 관리합니다. Kubernetes Engine은 Compute Engine 인스턴스를 클러스터의 노드로 사용합니다. 각 노드는 Docker 런타임, 노드 상태를 모니터링하는 Kubernetes 노드 에이전트, 단순 네트워크 프록시를 실행합니다.

  • 단순 JSON 구성 파일을 만들어서 Docker 컨테이너의 요구사항을 선언합니다.

  • Docker 이미지에 대한 보안 비공개 저장소로 Google Container Registry를 사용합니다. 레지스트리에 이미지를 푸시하고, HTTP 엔드포인트를 사용하여 Compute Engine 인스턴스 또는 고유한 하드웨어로 이미지를 가져올 수 있습니다.

  • 단일 및 다중 컨테이너 포드를 만듭니다. 각 포드는 하나 이상의 컨테이너를 포함할 수 있는 논리적 호스트를 나타냅니다. 포드에 포함된 컨테이너는 네트워킹 리소스와 같은 리소스를 공유하여 함께 작동합니다. 여러 포드 집합이 하나로 작동하여 전체 애플리케이션, 마이크로 서비스, 다중 계층 애플리케이션의 한 계층을 구성할 수 있습니다.

  • 템플릿을 기준으로 포드 복제본의 생성 및 삭제를 관리하는 복제 컨트롤러를 만들고 관리합니다. 복제 컨트롤러는 안정적인 실행 및 적절한 확장을 위해 필요한 리소스가 애플리케이션에 포함되었는지 확인하는 데 도움이 됩니다.

  • 서비스를 만들고 관리합니다. 서비스는 백엔드 기능을 제공하는 포드에서 프런트엔드 클라이언트를 분리하는 추상화 계층을 만듭니다. 이렇게 하면 클라이언트가 특정 시점에 생성 또는 삭제되는 포드가 무엇인지 확인할 필요 없이 작동할 수 있습니다.

  • 외부 네트워크 부하 분산기를 만듭니다.

가상 머신

GCP의 비관리형 컴퓨팅 서비스는 Google Compute Engine입니다. Compute Engine은 IaaS(서비스로서의 인프라)를 제공하는 것으로 인식될 수 있습니다. 시스템이 강력한 컴퓨팅 인프라를 제공하지만, 사용하려는 플랫폼 구성요소를 개발자가 선택하고 구성해야 합니다. Compute Engine을 사용할 때는 개발자가 시스템을 구성, 관리, 모니터링해야 합니다. Google이 사용자가 사용할 리소스의 가용성, 안정성 및 준비 상태를 보장하지만, 이를 프로비저닝하고 관리하는 것은 사용자의 책임입니다. 이로 인한 장점은 개발자가 시스템을 완벽하게 제어할 수 있고 무제한 유연성을 얻을 수 있다는 것입니다.

Compute Engine에서 빌드할 때는 다음을 수행할 수 있습니다.

  • 고유한 하드웨어 인프라가 있을 때와 마찬가지로, 인스턴스라고 부르는 가상 머신(VM)을 사용하여 애플리케이션을 빌드합니다. 요구 및 예산에 맞게 구성을 맞춤설정할 수 있도록 다양한 인스턴스 유형 중에서 선택할 수 있습니다.

  • 리소스를 배포할 전역 리전 및 영역(zone)을 선택하여, 데이터 저장 및 사용 위치를 제어할 수 있습니다.

  • 원하는 운영체제, 개발 스택, 언어, 프레임워크, 서비스, 기타 소프트웨어 기술을 선택합니다.

  • 공개 또는 비공개 이미지에서 인스턴스를 만듭니다.

  • GCP 저장소 기술 또는 원하는 타사 기술을 사용합니다.

  • Google Cloud Launcher를 사용하여 미리 구성된 소프트웨어 패키지를 빠르게 배포합니다. 예를 들어 클릭 몇 번 만으로 LAMP 또는 MEAN 스택을 배포할 수 있습니다.

  • 여러 인스턴스를 하나로 쉽게 관리할 수 있도록 인스턴스 그룹을 만듭니다.

  • 인스턴스 그룹을 사용한 자동 확장을 사용하여 용량을 자동으로 추가 및 삭제합니다.

  • 필요에 따라 디스크를 연결 및 분리합니다.

  • SSH를 사용하여 인스턴스에 직접 연결합니다.

컴퓨팅 및 호스팅 옵션 결합

컴퓨팅 서비스 유형은 하나만 사용할 필요가 없습니다. 예를 들어 App Engine과 Compute Engine을 결합하면 두 유형의 기능과 이점을 모두 활용할 수 있습니다. App Engine과 Compute Engine을 모두 사용하는 예는 Google Compute Engine에서 안정적인 작업 일정 예약을 참조하세요.

웹사이트 호스팅 옵션을 자세히 보려면 웹사이트 호스팅을 참조하세요.

저장소 서비스

애플리케이션이 무엇이든 일부 데이터를 저장해야 할 수 있을 것입니다. GCP는 다음과 같은 다양한 저장소 서비스를 제공합니다.

  • Cloud SQL의 SQL 데이터베이스는 MySQL 또는 PostgreSQL 데이터베이스를 제공합니다.

  • Cloud Spanner의 완전 관리형의 미션 크리티컬 관계형 데이터베이스 서비스는 전역 규모에서의 트랜잭션 일관성, 스키마, SQL 쿼리, 고가용성을 위한 자동 동기식 복제를 제공합니다.

  • NoSQL 데이터 스토리지를 위한 두 가지 옵션: Cloud DatastoreCloud Bigtable.

  • Cloud Storage의 일관성, 확장성, 대용량 데이터 저장소. Cloud Storage는 여러 옵션으로 제공됩니다.

    • 다중 리전 옵션은 최대한의 가용성과 지역 중복성을 제공합니다.
    • 리전별 옵션은 고가용성 및 지역화된 저장소 위치를 제공합니다.
    • Nearline 옵션은 한 달에 한 번 미만 액세스되는 데이터에 적합한 저비용 아카이브 저장소를 제공합니다.
    • Coldline 옵션은 백업 및 재해 복구를 위한 저비용 아카이브 저장소를 제공합니다.
  • 인스턴스의 기본 저장소로 사용하기 위한 Compute Engine의 영구 디스크. Compute Engine은 표준 영구 디스크라고 부르는 하드 디스크 기반의 영구 디스크와 SSD(솔리드 스테이트 디스크) 기반의 영구 디스크를 모두 제공합니다.

또한 영구 디스크를 사용하여 Compute Engine에서 원하는 저장소 기술을 설정할 수도 있습니다. 예를 들어 NoSQL 저장소로 MongoDB를 설정할 수 있습니다.

GCP에서 제공되는 여러 저장소 서비스의 전체 범위 및 이점을 확인하려면 저장소 옵션 선택을 참조하세요.

네트워킹 서비스

App Engine이 네트워킹을 관리하고, Kubernetes Engine이 Kubernetes 모델을 사용하지만, Compute Engine은 네트워킹 서비스 집합을 제공합니다. 이러한 서비스는 리소스 간 트래픽의 부하를 분산하고, DNS 레코드를 만들고, 기존 네트워크를 Google 네트워크에 연결할 수 있게 해줍니다.

네트워크, 방화벽, 경로

가상 사설 클라우드(VPC)는 VM 인스턴스가 사용하는 네트워킹 서비스 집합을 제공합니다. 각 인스턴스는 하나의 네트워크에만 연결할 수 있습니다. 모든 VPC 프로젝트에는 기본 네트워크가 있습니다. 프로젝트에서 추가 네트워크를 만들 수 있지만, 프로젝트 간에 네트워크를 공유할 수 없습니다.

방화벽 규칙은 네트워크의 인스턴스로 들어오는 트래픽을 제어합니다. 기본 네트워크에는 기본 방화벽 규칙 집합이 있으며, 개발자가 커스텀 규칙을 만들 수도 있습니다.

경로를 사용하면 VPN 만들기와 같이, 인스턴스에서 고급 네트워킹 기능을 구현할 수 있습니다. 경로는 인스턴스를 나가는 패킷의 대상을 지정합니다. 예를 들어 경로는 특정 네트워크 범위로 지정된 패킷이 개발자가 구성 및 작동하는 게이트웨이 가상 머신 인스턴스에서 처리되는 방식을 지정할 수 있습니다.

부하 분산

웹사이트 또는 애플리케이션이 Compute Engine에서 실행될 때는, 여러 인스턴스 간에 작업 부하를 분산해야 할 경우가 발생할 수 있습니다. 서버 측 부하 분산 기능은 다음과 같은 옵션을 제공합니다.

  • 네트워크 부하 분산을 사용하면 주소, 포트, 프로토콜과 같이 들어오는 IP 프로토콜 데이터를 기준으로 동일 리전에 있는 서버 인스턴스 간에 트래픽을 분산할 수 있습니다. 네트워크 부하 분산은 웹사이트에 들어오는 트래픽의 수요를 충족시키려는 경우에 효과가 뛰어난 솔루션입니다.

  • HTTP/HTTPS 부하 분산을 사용하면 리전 간 트래픽 분산을 통해 요청이 가장 가까운 리전으로 라우팅되도록 보장하거나, 오류 또는 용량 초과 제한이 발생했을 때 그 다음으로 가까운 리전에 있는 정상 인스턴스로 라우팅되도록 보장할 수 있습니다. 또한 HTTP/HTTPS 부하 분산을 사용하면 콘텐츠 유형을 기준으로 트래픽을 분산할 수 있습니다. 예를 들어 한 서버에서는 이미지 및 CSS와 같은 정적 콘텐츠를 전달하고, 다른 서버에서는 PHP 페이지와 같은 동적 콘텐츠를 전달하도록 설정할 수 있습니다. 부하 분산기는 각 콘텐츠 유형을 제공하는 서버로 각 요청을 전달할 수 있습니다.

Cloud DNS

Google에서 사용되는 것과 동일한 인프라를 사용해서 DNS(도메인 이름 시스템)를 게시하고 유지 관리할 수 있습니다. Google Cloud Platform Console, 명령줄 또는 REST API를 사용하여 관리되는 영역(zone) 및 DNS 레코드로 작업할 수 있습니다.

고급 연결

GCP 리소스에 연결하려는 기존 네트워크가 있으면 GCP는 고급 연결을 위한 다음 옵션을 제공합니다.

  • Cloud Interconnect를 사용하면 가용성이 높고 지연 시간이 낮은 엔터프라이즈급 연결을 통해 VPC 네트워크에 기존 네트워크를 연결할 수 있습니다. 전용 상호 연결을 사용하여 Google에 직접 연결하거나 파트너 상호 연결을 사용하여 지원되는 서비스 제공업체를 통해 Google에 연결할 수 있습니다.

  • Cloud VPN을 사용하면 IPsec 연결을 통해 VPC 네트워크에 기존 네트워크를 연결할 수 있습니다. 또한 VPN을 사용하여 2개의 Cloud VPN 게이트웨이를 서로 연결할 수 있습니다.

  • 직접 피어링을 사용하면 Google의 광범위한 연결 에지 네트워크 위치 중 하나에서 네트워크와 Google 네트워크 사이에 인터넷 트래픽을 교환할 수 있습니다. 에지 위치에 대한 자세한 내용은 Google 피어링 사이트를 참조하세요.

  • 이동통신사 피어링을 사용하면 서비스 제공업체를 사용해서 가용성이 높고 지연 시간이 낮은 연결을 통해 Google의 네트워크 에지에 인프라를 연결할 수 있습니다. 또한 네트워크 간 VPN 터널을 사용해서 이동통신사 피어링 링크를 통해 가상 사설 클라우드 네트워크로 사설 네트워크를 확장할 수 있습니다.

빅데이터 서비스

빅데이터 서비스를 사용하면 클라우드에서 빅데이터를 처리 및 쿼리하여 복잡한 질문에 대한 답변을 빠르게 얻을 수 있습니다.

데이터 분석

BigQuery는 데이터 분석 서비스를 제공합니다. BigQuery를 사용하면 다음을 수행할 수 있습니다.

  • 데이터를 데이터세트와 테이블로 구성하는 커스텀 스키마를 만듭니다.

  • 스트리밍 데이터를 포함하여 여러 소스에서 데이터를 로드합니다.

  • SQL과 비슷한 명령을 사용하여 대용량 데이터세트를 매우 빠르게 쿼리합니다. BigQuery는 빠른 속도를 위해 디자인 및 최적화되었습니다.

  • 웹 UI, 명령줄 인터페이스, API를 사용합니다.

  • 작업을 사용해서 데이터를 로드, 쿼리, 내보내기, 복사합니다.

  • 권한을 사용하여 데이터를 관리하고 보호합니다.

BigQuery를 빠르고 쉽게 사용해보려면 웹 UI 빠른 시작을 사용해서 공개 데이터세트를 쿼리해보세요.

일괄 처리 및 스트리밍 데이터 처리

Cloud Dataflow는 일괄 처리 및 스트리밍 데이터 처리 작업을 수행하기 위해 사용할 수 있는 관리형 서비스와 SDK 집합을 제공합니다. Dataflow는 특히 처리 작업을 병렬 작업 부하로 쉽고 명확하게 구분할 수 있는 경우의 대용량 컴퓨팅에 적합합니다. Dataflow는 또한 ETL(추출-변환-로드) 작업에 적합하며, 여러 저장소 미디어 간에 데이터를 이동하거나, 데이터를 보다 적절한 형식으로 변환하거나, 데이터를 새로운 저장소 시스템에 로드하는 작업에 유용합니다.

비동기 메시징

Cloud Pub/Sub는 비동기 메시징 서비스입니다. 애플리케이션은 JSON 데이터 구조와 같은 메시지를 항목이라고 부르는 게시 단위로 전송할 수 있습니다. Cloud Pub/Sub 항목은 전역 리소스이기 때문에, 개발자가 소유하는 프로젝트에 있는 다른 애플리케이션은 해당 항목에 가입하여 HTTP 요청 또는 응답 본문의 메시지를 수신할 수 있습니다. Cloud Pub/Sub에 대해 자세히 알아보려면 Cloud Pub/Sub 빠른 시작을 참조하세요.

Cloud Pub/Sub는 빅데이터에만 유용한 것이 아닙니다. Cloud Pub/Sub는 비동기 메시징 서비스가 필요한 많은 경우에 사용할 수 있습니다. Cloud Pub/Sub를 사용해서 App Engine과 Compute Engine을 조정하는 예는 Compute Engine에서 안정적인 작업 일정 예약을 참조하세요.

머신러닝 서비스

GCP Cloud AI는 여러 가지 강력한 ML(머신러닝) 서비스를 제공합니다. 특정 애플리케이션에 맞게 최적화된 사전 학습된 모델을 제공하거나, 관리형 TensorFlow 프레임워크를 사용해서 개발자 고유의 대규모 정밀 모델을 빌드하고 학습하는 API를 선택해서 사용할 수 있습니다.

ML API

GCP는 개발자가 고유 모델을 만들고 학습하지 않고도 Google의 ML을 활용할 수 있게 해주는 다양한 API를 제공합니다.

  • Google Cloud Video Intelligence API에서는 레이블 감지, 음란물 감지, 샷 변경 감지, 지역화 기능을 제공하는 동영상 분석 기술을 사용할 수 있습니다.

  • Google Cloud Speech API를 사용하면 오디오 텍스트 변환을 수행하고, 110개 이상의 언어 및 변형 형태를 인식하고 전역 사용자 기반을 지원할 수 있습니다. 애플리케이션의 마이크로 입력되는 사용자의 음성을 텍스트로 변환하거나, 음성을 통한 명령 제어 기능을 사용 설정하거나, 오디오 파일을 텍스트로 변환하는 등 다양하게 활용할 수 있습니다.

  • Google Cloud Vision API를 사용하면 이미지 라벨링, 얼굴 및 랜드마크 감지, OCR(광학 문자 인식), 음란물 태깅 등의 시각적 감지 기능을 쉽게 통합할 수 있습니다.

  • Google Natural Language API를 사용하면 감정 분석, 항목 분석, 항목 감정 분석, 콘텐츠 분류, 구문 분석 등을 추가할 수 있습니다.

  • Google Cloud Translation API를 사용하면 수백 개의 지원 언어로 소스 텍스트를 빠르게 번역할 수 있습니다. 언어 감지는 소스 언어를 알 수 없는 경우에 도움이 됩니다.

  • Dialogflow Enterprise Edition을 사용하면 웹사이트, 모바일 애플리케이션, 인기 있는 메시징 플랫폼, IoT 장치를 위한 대화형 인터페이스를 빌드할 수 있습니다. 이를 사용하면 사람들 간의 자연스럽고 다양한 상호 작용을 지원하는 채팅봇과 같은 인터페이스를 빌드할 수 있습니다.

Cloud ML Engine

Cloud Machine Learning Engine은 GCP의 관리형 인프라를 TensorFlow의 성능 및 유연성과 결합합니다. 이를 사용하면 머신러닝 모델을 대규모로 학습하고, 학습된 모델을 호스팅하여 클라우드에서 새로운 데이터를 예측할 수 있습니다.

Cloud ML Engine을 사용하면 GCP에서 TensorFlow 학습 애플리케이션을 실행하여 머신러닝 모델을 학습시키고, 이렇게 학습된 모델을 호스팅하여 새로운 데이터 예측을 위해 사용할 수 있습니다. Cloud ML Engine은 학습 작업을 실행해야 하는 컴퓨팅 리소스를 관리하여, 개발자가 하드웨어 구성 또는 리소스 관리 대신 모델이 더 집중할 수 있게 해줍니다.

Cloud ML Engine을 사용해보려면 Flowers 데이터세트를 사용한 이미지 분류를 참조하세요.

다음 단계: 개발자 및 관리자 도구 알아보기

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...