Cloud Storage 버킷을 부하 분산기에 추가

Cloud Storage 버킷을 부하 분산기 백엔드로 사용

이 문서에서는 정적 콘텐츠 요청을 Cloud Storage 버킷으로 라우팅하도록 HTTP(S) 부하 분산기 예시 구성을 수정하는 방법을 보여줍니다. Cloud Storage 버킷으로 부하 분산기를 구성하면 /static으로 시작하는 URL 경로 요청은 스토리지 버킷으로 전송되고 다른 모든 요청은 가상 머신 인스턴스로 전송됩니다. 이 문서에서는 US 리전과 EU 리전을 지원하는 2개의 백엔드 버킷 사이에 트래픽을 라우팅하는 구성을 만드는 방법도 보여줍니다.

시작하기 전에

  1. gcloud 또는 gsutil 유틸리티를 사용하는 경우 빠른 시작: gsutil 도구 사용 문서를 참조하여 둘 다 설치할 수 있습니다.
  2. 기본 프로젝트를 설정합니다.

    Console


    a. Google Cloud Platform Console에서 홈페이지로 이동합니다.
    Google Cloud Platform 홈페이지로 이동

    b. Google Cloud Platform 오른쪽의 풀다운 메뉴에서 프로젝트를 선택합니다.

    gcloud 또는 gsutil


     gcloud config set project [PROJECT_ID]
    

    또는

     gsutil config set project [PROJECT_ID]
    
    • [PROJECT_ID] - 이 가이드에 사용할 프로젝트입니다.
  1. 콘텐츠 기반 및 교차 리전 부하 분산 가이드를 완료합니다. 이 문서에 나온 안내를 따르려면 해당 가이드를 사용하여 빌드할 리소스가 필요합니다.

Cloud Storage 버킷 및 부하 분산 서비스 구성

다음 안내에서는 단일 객체를 각 Cloud Storage 버킷에 업로드한 다음 객체에 대한 권한을 설정한다고 가정합니다.

Cloud Storage 버킷의 모든 객체를 공개로 설정하려면 객체 그룹을 공개적으로 읽을 수 있도록 설정하기 안내를 참조하세요.

와일드 카드(globs)를 사용하여 여러 객체를 업로드하고 권한을 설정하려면 와일드 카드 이름을 참조하세요. 객체 업로드에 대한 자세한 내용은 객체 업로드를 참조하세요.

Cloud Storage 버킷 구성

2개의 Cloud Storage 버킷을 만들고 각각에 객체를 업로드합니다. 버킷 이름은 전역에서 고유해야 합니다. 이 예시에서는 HTTP(S) 부하 분산의 인스턴스와 동일한 리전에 두 개의 멀티 리전 버킷을 만듭니다.

Console


미국에 Cloud Storage 버킷을 만듭니다.

  • Google Cloud Platform Console에서 Cloud Storage 브라우저를 엽니다.
    Cloud Storage 브라우저 열기
  • 버킷 만들기를 클릭합니다.
  • 버킷의 고유한 이름을 입력합니다.
    • 버킷 네임스페이스는 전역적이며 전체 공개로 표시되기 때문에 버킷 이름에 민감한 정보를 포함하면 안 됩니다.
  • 스토리지 클래스에서 표준을 선택합니다.
  • 위치에서 미국을 선택합니다.
  • 만들기를 클릭합니다.
  • 이 단계를 반복하여 두 번째 버킷을 만듭니다. 이번에는 위치에서 유럽 연합을 선택합니다.

    us 버킷을 입력합니다.

    static 폴더를 만듭니다.

    1. 버킷에서 폴더 만들기를 클릭합니다.
    2. 폴더 이름 static을 입력합니다.
    3. 만들기를 클릭합니다.

    로컬 디렉터리에서 객체를 업로드합니다.

    1. 폴더에서 파일 업로드를 클릭합니다.
    2. 파일 시스템에서 객체를 찾아 선택합니다.
    3. 열기를 클릭합니다.

    부하 분산에서 사용할 수 있도록 객체를 공개적으로 읽을 수 있게 설정합니다.

    1. 공개할 객체와 연결된 메뉴 아이콘을 클릭합니다.

      메뉴 아이콘은 객체 행 오른쪽 끝에 세로로 나열된 3개의 점입니다.

    2. 메뉴에서 권한 수정을 선택합니다.

    3. 항목 추가를 클릭합니다.

    4. allUsers에 대한 권한을 추가합니다.

      • 항목사용자를 선택합니다.
      • 이름allUsers를 입력합니다.
      • 액세스리더를 선택합니다.
    5. 저장을 클릭합니다.

    공개적으로 공유되면 공개 액세스 열에 링크 아이콘이 나타납니다. 이 아이콘을 클릭하여 객체의 URL을 가져올 수 있습니다.

    단계를 반복합니다. 이번에는 eu 버킷을 입력합니다.

    gsutil


    1. Cloud Storage 버킷을 만듭니다.

    2. 터미널 창을 엽니다.
    3. gsutil mb 명령어와 고유한 이름을 사용하여 버킷을 만듭니다.
      gsutil mb gs://my-awesome-bucket/
      

      여기서는 'my-awesome-bucket'이라는 이름의 버킷을 사용합니다. 전역적으로 고유한 버킷 이름을 직접 선택해야 합니다.

      성공하면 다음과 같은 결과가 반환됩니다.

      Creating gs://my-awesome-bucket/...
      
    4. 이제 원하는 항목을 저장할 수 있는 버킷이 생성되었습니다.

    단계를 반복합니다. 이번에는 gsutil mb -l eu gs://my-awesome-bucket/을 실행하여 위치를 eu로 지정합니다.

    us 버킷을 입력합니다.

    1. 로컬 디렉터리에서 객체를 업로드합니다. 파일이 다른 디렉터리에 있으면 전체 경로를 입력합니다.

      gsutil cp [OBJECT_NAME] gs://[EXAMPLE_BUCKET]/static/[OBJECT_NAME]
      
      • [EXAMPLE_BUCKET] - 이미 만든 버킷
      • [OBJECT_NAME] - 업로드할 객체의 파일 이름
    2. 부하 분산에서 사용할 수 있도록 객체를 공개적으로 읽을 수 있게 설정합니다.

      gsutil acl ch -u AllUsers:R gs://[EXAMPLE_BUCKET]/static/[OBJECT_NAME]
      
      • [EXAMPLE_BUCKET] - 이미 만든 버킷
      • [OBJECT_NAME] - 업로드한 객체의 파일 이름

    단계를 반복합니다. 이번에는 eu 버킷을 입력합니다.

    Cloud Storage 버킷용 백엔드 버킷 만들기

    이 절차에서는 HTTP(S) 부하 분산 예시를 완료했다고 가정합니다.

    동영상 콘텐츠의 경우처럼 정적 콘텐츠의 백엔드 서비스를 만드는 대신 위에서 만든 Cloud Storage 버킷을 가리키는 2개의 새 백엔드 버킷을 만듭니다.

    Console


    1. Google Cloud Platform Console의 부하 분산 페이지로 이동합니다.
      부하 분산 페이지로 이동
    2. web-map 행에서 수정을 클릭합니다.
    3. 백엔드 구성 옆의 오른쪽 화살표를 클릭합니다.
    4. 백엔드 버킷 만들기 또는 선택을 클릭한 후 백엔드 버킷 만들기를 선택합니다.
    5. static-bucket-us이름을 입력합니다.
    6. Cloud Storage 버킷 옆의 찾아보기를 선택합니다.
    7. 이전에 만든 us 버킷을 찾아 선택합니다.
    8. 선택을 클릭합니다.
    9. 만들기를 클릭하여 백엔드 버킷을 만듭니다.
    10. 부하 분산기에 대해 아직 업데이트를 클릭하면 안 됩니다.

    단계를 반복하여 두 번째 백엔드 버킷을 만듭니다. 이번에는 이름 필드에 static-bucket-eu를 입력한 다음 이전에 만든 eu 버킷을 선택합니다.

    gcloud


    gcloud compute backend-buckets create static-bucket \
        --gcs-bucket-name [EXAMPLE_BUCKET]
    
    • [EXAMPLE_BUCKET] - 이전에 만든 us 버킷

    명령어를 반복합니다. 이번에는 EXAMPLE_BUCKET을 이전에 만든 eu 버킷으로 바꿉니다.

    web-map URL 맵 수정

    /static/*를 위에서 만든 백엔드 버킷에 매핑하는 규칙을 기존 web-map URL 맵에 추가합니다. 그러면 /static/*가 포함된 모든 요청이 Cloud Storage 버킷으로 라우팅됩니다.

    콘솔


    1. 호스트 및 경로 규칙 옆의 오른쪽 화살표를 클릭합니다.
    2. 세 번째 행에서 호스트 필드에 *를 입력합니다.
    3. 경로 필드에 /static/us/*를 입력합니다.
    4. 백엔드 필드에 static-bucket-us를 입력합니다.
    5. 부하 분산기에 대해 업데이트를 클릭합니다.

    단계를 반복합니다. 이번에는 경로 필드에 /static/eu/*를 입력하고 백엔드 필드에 static-bucket-eu를 입력합니다.

    gcloud


    US에 대한 경로 규칙을 추가합니다.

    gcloud compute url-maps add-path-matcher web-map \
        --default-service web-map-backend-service \
        --path-matcher-name bucket-matcher \
        --backend-bucket-path-rules="/static/us/*=static-bucket-us"
    

    EU에 대한 경로 규칙을 추가합니다.

    gcloud compute url-maps add-path-matcher web-map 
    --default-service web-map-backend-service
    --path-matcher-name bucket-matcher
    --backend-bucket-path-rules="/static/eu/*=static-bucket-eu"

    Cloud Storage 버킷에서 리소스 가져오기

    Console


    1. Google Cloud Platform 콘솔의 주소 페이지로 이동합니다.
      주소 페이지로 이동
    2. lb-ip-1 행을 찾아 외부 주소 필드에 있는 IP 주소를 메모합니다.
    3. 부하 분산기에 사용되는 프로토콜에 따라 브라우저에 http://[IP_ADDRESS]/static/[REGION]/[OBJECT_NAME] 또는 https://[IP_ADDRESS]/static/[REGION]/[OBJECT_NAME]을 입력하고 Enter 키를 누릅니다. 모두 입력해 보세요.

    gcloud


    1. 전역 전달 규칙의 IP 주소를 찾습니다.

      gcloud compute forwarding-rules list
      
    2. 원하는 주소는 HTTP(S) 부하 분산 예시를 통해 실행할 때 만든 규칙의 주소입니다. curl을 사용하거나 브라우저에서 URL을 방문하여 Cloud Storage 버킷이 트래픽을 수신하는지 테스트합니다.

      curl http://[IP_ADDRESS]/static/[REGION]/[OBJECT_NAME]
      

      또는

      curl -k https://[IP_ADDRESS]/static/[REGION]/[OBJECT_NAME]
      
      • [IP_ADDRESS] - 전역 전달 규칙의 IP 주소
      • [OBJECT_NAME] - 업로드한 객체 예시의 이름 사용
      • [REGION] - us 또는 eu. 각각을 사용해 보세요.

    이 명령어는 [EXAMPLE_BUCKET] Cloud Storage 버킷의 [OBJECT_NAME]을 사용하여 응답합니다.

    static/[FOLDER_NAME]/[FOLDER_NAME]/[OBJECT_NAME]이라는 이름으로 객체를 버킷에 저장하면 http://[IP_ADDRESS]/static/[FOLDER_NAME]/[FOLDER_NAME]/[OBJECT_NAME] URL로 검색할 수 있습니다.

    다음 단계

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

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