파일 시스템 전송 작업을 만들기 전에 필요한 API를 사용 설정하고 Docker를 설치해야 합니다.
최초 설정을 수행하는 동안 오류가 발생하면 로그인한 사용자에게 설정 단계를 수행하는 데 필요한 권한이 있는지 확인합니다. 대부분의 경우 이러한 권한을 모든 사용자가 사용할 수 있는 것은 아니며, 프로젝트 관리자에게 문의하여 지원을 받아야 할 수 있습니다.
시스템 요구사항
파일 시스템 전송에 Storage Transfer Service를 사용하려면 다음 항목이 필요합니다.
POSIX 준수 소스 또는 대상
보존 정책이 적용되지 않은 Cloud Storage 버킷. 보존 정책이 적용된 버킷으로 전송하려면 보존 정책이 적용된 버킷으로 전송을 참조하세요.
아웃바운드 연결을 위해 열려 있는 TCP 포트 443 (HTTPS)
전송 에이전트 머신 요구사항은 다음과 같습니다.
전송하려는 데이터에 액세스할 수 있는 Docker 지원 64비트 Linux 서버 또는 가상 머신 CentOS, Debian, Fedora, Ubuntu 운영체제를 지원하는 Docker Community Edition
다른 Linux 운영체제를 사용하려면 Docker Enterprise를 참조하세요.
가장 효과적이려면 컨테이너당 최소 8GB 메모리와 최소 4개 CPU가 필요합니다.
허용되는 프로세스 ID 수에 대한 시스템 수준 또는 사용자 수준의 제약 조건(예:
ulimit -u로 구성됨)은 실행하려는 에이전트 수를 고려해야 합니다. 각 에이전트 프로세스는 최대 수백 개의 스레드를 만들 수 있습니다. 전송 에이전트를 실행할 때 프로세스 ID 한도를 삭제하는 것이 좋습니다.Podman을 사용하여 에이전트 컨테이너를 만드는 고객은 Storage Transfer Service 에이전트 스레드를 수용할 만큼 충분히 큰
--pids-limit값을 지정해야 합니다.--pids-limit의 기본값은 2,048이므로 에이전트를 두 개 이상 실행할 때 문제가 발생할 수 있습니다. 컨테이너당 무제한 프로세스 ID를 허용하도록--pids-limit=-1을 설정하는 것이 좋습니다.
필수 엔드포인트
전송 에이전트가 다음 DNS 엔드포인트에 액세스할 수 있어야 합니다. 에이전트는 구성에 따라 이러한 엔드포인트의 하위 집합만 사용할 수 있지만 모든 엔드포인트가 전체 기능을 보장하도록 허용되어야 합니다.
Google 엔드포인트
필수 엔드포인트 목록은 변경될 수 있습니다. 전송 중단을 방지하려면 조직의 보안 정책에서 허용하는 경우 기본 googleapis.com 도메인과 gcr.io를 허용하는 것이 좋습니다.
| 엔드포인트 | 서비스 | 목적 |
|---|---|---|
storagetransfer.googleapis.com |
Storage Transfer Service | 에이전트에서 Storage Transfer Service에 연결하고, 전송 작업을 수신하고, 상태를 보고하는 데 사용합니다. |
storage.googleapis.com |
Cloud Storage | Cloud Storage 버킷에 객체 나열, 읽기, 쓰기를 비롯한 핵심 데이터 전송 작업을 수행하는 데 사용합니다. |
www.googleapis.com |
Google API | 전송 에이전트의 버전 업데이트를 다운로드하는 데 사용합니다. |
monitoring.googleapis.com |
Cloud Monitoring | 전송 성능 및 에이전트 상태 측정항목을 내보내는 데 사용합니다. |
logging.googleapis.com |
Cloud Logging | 에이전트 시스템 및 활동 로그를 게시하는 데 사용합니다. |
oauth2.googleapis.com |
Google OAuth 2.0 | 사용자 인증 정보를 안전하게 교환하고 API 승인을 위한 수명이 짧은 액세스 토큰을 검색하는 데 사용합니다. |
iamcredentials.googleapis.com |
IAM 서비스 계정 사용자 인증 정보 | 에이전트가 특정 서비스 계정을 가장하도록 구성된 경우 임시 사용자 인증 정보를 생성하는 데 사용합니다. |
cloudresourcemanager.googleapis.com |
Resource Manager | 에이전트 설치 및 설정 중에 프로젝트 구성 및 권한을 확인하는 데 사용합니다. |
gcr.io |
Container Registry | 설치 중에 Storage Transfer Service 에이전트 컨테이너 이미지를 다운로드하는 데 사용합니다. |
전송 성능을 최적화하기 위해 에이전트는 다양한 엔드포인트와 통신할 때 최소한 HTTP/1.1 및 HTTP/2를 비롯한 다양한 HTTP 프로토콜을 사용할 수 있습니다. 구성된 프록시 또는 방화벽이 이러한 모든 프로토콜 유형을 제대로 지원하고 성능이 우수한지 확인합니다.
지역 엔드포인트
소스 및 대상 스토리지 엔드포인트
또한 에이전트는 S3 호환 API, HDFS 클러스터 또는 POSIX용 NFS와 같은 특정 소스 및 대상 스토리지 시스템에 대한 네트워크 액세스 권한이 필요합니다.
작업 및 에이전트의 확장 제한사항
Storage Transfer Service는 전송 작업과 에이전트에 다음과 같은 확장 제한사항이 적용됩니다.
- 작업당 10억 개 미만의 파일
- 대역폭 한도는 1MBps를 초과해야 합니다.
- 에이전트 풀당 최대 100개의 에이전트
- 프로젝트당 최대 800개의 에이전트 풀
API 사용 설정
-
Google Storage Transfer API를 사용 설정합니다.
API 사용 설정에 필요한 역할
API를 사용 설정하려면
serviceusage.services.enable권한이 포함된 서비스 사용량 관리자 IAM 역할(roles/serviceusage.serviceUsageAdmin)이 필요합니다. 역할 부여 방법 알아보기
Docker 설치
Google Cloud CLI 또는 Docker를 사용하여 전송 에이전트를 설치하고 실행하는 경우, 실제 또는 가상 Linux 머신에 Docker Engine을 설치합니다.
Podman을 사용하여 전송 에이전트를 설치하고 실행하는 경우 Podman 관련 설치 안내 로 바로 건너뜁니다.
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo systemctl enable docker --now
설치 오류가 발생하면 문제 해결을 참조하세요.
Docker 인증 허용
Docker 컨테이너에서 gcloud 기본 사용자 인증 정보로 인증하도록 하려면 다음 명령어를 실행해 애플리케이션 기본 사용자 인증 정보가 있는 파일을 포함한 Docker 볼륨을 만드세요.
sudo docker run -ti --name gcloud-config google/cloud-sdk gcloud auth application-default login