본문 바로가기

Cloud/GCP

(7)
GCP GKE 클러스터 시작/중지 자동화 1. 샘플 소스 클론 git clone https://github.com/GoogleCloudPlatform/cloud-run-samples.git 2. 디렉터리 이동 cd cloud-run-samples/gcloud-report/ 3. 시작 자동화, script.sh 내용 수정 gcloud container clusters resize [YOUR-CLUSTER-NAME] --num-nodes=[YOUR-NODE-NUMBER] --zone asia-northeast3-a --quiet quiet: Y 입력 생략 4. IAM 생성 및 권한 부여 GCP > IAM 및 관리자 > IAM > 액세스 권한 부여(Kubernetes 관리자, Cloud Run 관리자 권한 부여) 5. 컨테이너를 빌드하고 Contai..
GCS 서명된 URL로 파일 업로드(JavaScript) 배경 웹 애플리케이션에서 파일을 업로드하려면 서버로 파일을 보내야 합니다. 하지만 파일의 용량이 너무 크거나 업로드 트래픽이 급증했을 경우, 백엔드 서버의 메모리가 초과돼서 서버가 다운될 수 있습니다. 이런 경우엔 클라이언트 측에서 하나의 파일을 작게 chunk 해서 여러 번 요청하면 서버의 부담이 줄어들기 때문에 서버에 직접 저장하는 경우엔 효과적입니다. 하지만 GCP와 같은 클라우드 플랫폼을 사용하는 경우, 보통 파일을 버킷에 저장하기 때문에 클라이언트 측에서 버킷으로 직접 업로드를 요청하는 것이 더욱 안전하고 효율적인 방법입니다. 이 글에선 백엔드에서 서명된 URL을 만들고, 이를 클라이언트로 보내서 직접 업로드하는 방법을 다룹니다. 서명된 URL? URL이 있으면 누구나 해당 버킷에 접근할 수 있..
GCS 버킷 CORS 적용 1. JSON 파일 준비 example.json [{ "origin": ["*"], "responseHeader": [ "Content-Type", "Access-Control-Allow-Origin", "x-goog-resumable" ], method: ["PUT", "GET", "HEAD", "DELETE", "POST", "OPTIONS"], "maxAgeSeconds": 3600 }] 위 예시는 모든 출처 도메인을 허용하고, 모든 HTTP 메소드를 허용하는 CORS 설정입니다. 2. GCP 콘솔에 명령어 입력 gcloud storage buckets update gs://BUCKET_NAME --cors-file=example.json 3. 설정 확인 gcloud storage buckets d..
[GCP] Cloud CDN을 위한 서명된 URL 만들기(JavaScript) 배경GCP에 버킷을 만들고 CDN을 적용하면 이미지나 영상 같은 정적 파일을 빠르게 전송할 수 있습니다. 하지만 버킷을 외부에 공개하면 파일을 보호할 수 없기 때문에 좋지 않고, 그렇다고 비공개로 설정하면 클라이언트에서 파일을 가져올 수 없습니다. 이에 대한 대안으로 서명된 인증 URL을 통해 제한된 권한으로 파일을 가져올 수 있습니다.서명된 URL?권한이 없어도 버킷에 접근할 수 있는 인증 URL입니다. 이 URL이 있으면 누구나 버킷의 파일에 접근할 수 있게 됩니다. URL에는 요청을 수행하는 데 필요한 제한된 권한과 시간이 포함되며, URL 쿼리를 통해 인증 정보를 전송합니다. https://cloud.google.com/storage/docs/access-control/signed-urls?hl=..
GCS 버킷 서명된 URL 만들기(NodeJS) 비공개 버킷 파일에 대한 권한이 포함된 URL을 생성해서 클라이언트에 보내줄 수 있습니다. import { Storage } from '@google-cloud/storage'; const storage = new Storage({ projectId: 'YOUR-PROJECT-ID' }); const [url] = await storage .bucket('YOUR-BUCKET-NAME') .file('FILE-DESTINATION') .getSignedUrl({ action: 'read', // 'read' | 'write' | 'delete' | 'resumable' expires: Date.now() + 15 * 60 * 1000, // 15분 version: 'v4', // 'v2' | 'v4' });
GCS 버킷에 Cloud CDN 적용하기 목표 브라우저에서 Cloud CDN이 제공하는 파일에 접근하기 버킷 생성 Cloud CDN과 연결할 버킷을 만들어 줍니다. 외부 공개를 위해 '이 버킷에 공개 액세스 방지 적용'을 해제해줍니다. 또한 외부 공개를 위해 엑세스 수정에서 권한을 추가해줘야 합니다. allUser가 저장소 개체 뷰어 권한을 갖게 되면 누구나 볼 수 있으므로, 보안에 취약하기 때문에 실제 배포할 땐 서명된 URL을 사용하는 것이 좋습니다. 로드 밸런서(부하 분산기) 생성 도메인과 연결을 위해 아이피를 생성해 주었습니다. HTTPS를 사용한다면 인증서를 새로 만들어서 진행하면 됩니다. 백엔드 구성에선 백엔드 버킷으로 만들어주세요. 찾아보기에서 이전에 생성한 버킷을 선택해주세요. Cloud CDN 사용을 체크해주고 백엔드를 만들어주..
GKE(autopilot) 사용해보기 배경 기존에 웹을 전통적 방식으로 개발을 해오다가, 확장이 쉽고 격리된 공간에서 배포할 수 있는 컨테이너 환경으로 개발을 해보기로 했습니다. 목표 GKE에 대한 이해 GKE 생성 / 사용해보기 GKE? GKE(Google Kubernetes Engine)는 GCP에서 쿠버네티스를 쉽게 구축할 수 있게 해주는 서비스입니다. GKE의 대략적인 기능은 아래와 같습니다. GKE는 Master Node에 대한 완전 관리 서비스를 제공하며, Compute Engine(VM)을 제공해 직접 Pod를 실행하는 등의 작업도 가능합니다. 이제 GKE를 생성하고 사용해보겠습니다. 1. GKE 클러스터 생성 https://console.cloud.google.com/kubernetes/list/overview?project=..