StorageGRID 로드 밸런싱에 대해 알아보십시오
로드 밸런싱을 사용하여 S3 클라이언트의 데이터 수집 및 검색 워크로드를 처리할 수 있습니다.
로드 밸런싱이란 무엇입니까?
클라이언트 애플리케이션이 StorageGRID 시스템에서 데이터를 저장하거나 검색할 때, StorageGRID는 로드 밸런서를 사용하여 수집 및 검색 워크로드를 관리합니다. 로드 밸런싱은 워크로드를 여러 스토리지 노드에 분산시켜 속도와 연결 용량을 극대화합니다.
StorageGRID 로드 밸런싱 서비스는 모든 관리 노드와 모든 게이트웨이 노드에 설치되어 레이어 7 로드 밸런싱을 제공합니다. 이 서비스는 클라이언트 요청에 대한 전송 계층 보안(TLS) 종료를 수행하고, 요청을 검사하며, 스토리지 노드와의 새로운 보안 연결을 설정합니다.
각 노드의 로드 밸런싱 서비스는 클라이언트 트래픽을 스토리지 노드로 전달할 때 독립적으로 작동합니다. 로드 밸런싱 서비스는 가중치 부여 과정을 통해 CPU 가용성이 높은 스토리지 노드로 더 많은 요청을 라우팅합니다.
|
|
StorageGRID Load Balancer 서비스가 권장되는 로드 밸런싱 메커니즘이지만, 타사 로드 밸런서를 통합할 수도 있습니다. 자세한 내용은 NetApp 계정 담당자에게 문의하거나 "StorageGRID에서 타사 로드 밸런서 사용"를 참조하십시오. |
로드 밸런싱 노드는 몇 개가 필요합니까?
일반적으로 StorageGRID 시스템의 각 사이트에는 Load Balancer 서비스를 사용하는 노드가 두 개 이상 포함되어야 합니다. 예를 들어, 한 사이트에 게이트웨이 노드가 두 개 있거나 관리 노드와 게이트웨이 노드가 모두 포함될 수 있습니다. 서비스 어플라이언스, 베어메탈 노드 또는 가상 머신(VM) 기반 노드를 사용하는 경우, 각 로드 밸런싱 노드에 적합한 네트워킹, 하드웨어 또는 가상화 인프라가 갖춰져 있는지 확인하십시오.
로드 밸런서 엔드포인트란 무엇인가요?
로드 밸런서 엔드포인트는 클라이언트 애플리케이션의 수신 및 발신 요청이 로드 밸런서 서비스가 포함된 노드에 액세스하는 데 사용할 포트와 네트워크 프로토콜(HTTPS 또는 HTTP)을 정의합니다. 또한 엔드포인트는 클라이언트 유형(S3), 바인딩 모드, 그리고 선택적으로 허용 또는 차단된 테넌트 목록을 정의합니다.
로드 밸런서 엔드포인트를 생성하려면 Grid Manager를 사용하거나 S3 설정 및 FabricPool 마법사를 완료하십시오.
로드 밸런서 캐싱에 대한 고려 사항
캐싱은 워크로드가 데이터의 일부를 처리하고 객체에 여러 번 액세스할 때 성능을 크게 향상시킵니다. 또한 캐싱을 통해 전체 그리드 배포 없이도 객체 스토리지에 원격으로 액세스할 수 있습니다. 로드 밸런서 캐싱은 게이트웨이 노드에서만 사용할 수 있습니다.
로드 밸런서 엔드포인트를 생성할 때 다음 사항을 고려하세요.
-
캐시 가능한 워크로드에 대해서만 캐싱을 활성화하십시오. 캐시된 데이터보다 캐시되지 않은 데이터에 더 자주 액세스하는 워크로드는 캐시를 사용하지 않을 때보다 성능이 저하될 수 있습니다. 경우에 따라 덮어쓰기 및 삭제 빈도가 높은 워크로드는 드라이브의 보증된 쓰기 내구성을 초과할 수도 있습니다.
-
캐싱에 적합한 개별 워크로드를 캐싱하기 위해 추가 엔드포인트 또는 노드를 추가하는 것을 고려하십시오.
-
캐시 가능한 워크로드와 캐시 불가능한 워크로드에 대해 서로 다른 엔드포인트를 사용하십시오. 이러한 분리를 통해 캐싱 메커니즘이 적절하게 적용되고 캐시 불가능한 데이터 처리와 충돌하지 않도록 할 수 있습니다.
-
캐시가 활성화된 엔드포인트로 워크로드를 전송하여 캐시 가능 여부를 평가합니다. 캐시 적중률을 모니터링하고 검증하여 워크로드의 캐싱 적합성을 판단합니다. 이러한 평가를 통해 성능을 최적화하고 캐시 리소스를 효율적으로 활용할 수 있습니다.
-
"감사 로그 검토"기존 워크로드가 캐싱에 적합한지 판단합니다. 특정 기간 동안 GET 요청 중 고유 객체에 대한 요청의 비율을 확인합니다. 캐싱에 적합하려면 이 값이 50% 미만이어야 합니다.
캐싱에 적합한 워크로드의 예시
-
데이터 레이크
-
고성능 컴퓨팅(HPC)
-
AI/ML 교육
-
콘텐츠 전송 네트워크(CDN)
-
미디어 자산 관리
-
영상 제작
|
|
|
캐싱에 적합하지 않은 워크로드의 예
-
FabricPool
-
백업 애플리케이션
-
스토리지 계층화
|
|
캐시에서 제공될 콘텐츠 중 저장 시 암호화가 필요한 콘텐츠가 있는 경우, "노드 또는 드라이브 암호화 활성화" 캐시 노드에서. |
캐시되지 않는 객체 및 요청 유형
-
The
response-content-encoding쿼리 매개변수 -
The
partNumber쿼리 매개변수 -
조건부 헤더
-
If-Match -
If-Modified-Since -
If-None-Match -
If-Unmodified-Since
-
-
다음과 같은 방법으로 저장 시 암호화된 요청:
-
SSE(StorageGRID 관리 키를 사용하는 서버 측 암호화)
-
SSE-C(고객이 제공한 키를 사용하는 서버 측 암호화)
-
저장된 객체 암호화
-
캐시되지 않은 요청은 캐시가 활성화되지 않은 것처럼 상위 LDR로 전달됩니다.
-
로드 밸런서 캐싱에 대한 자세한 내용은 기술 지원 부서에 문의하십시오.
포트에 대한 고려 사항
로드 밸런서 엔드포인트의 기본 포트는 처음 생성하는 경우 10433으로 설정되지만, 1에서 65535 사이의 사용되지 않는 외부 포트를 지정할 수 있습니다. 포트 80 또는 443을 사용하는 경우 해당 엔드포인트는 게이트웨이 노드의 로드 밸런서 서비스만 사용하게 됩니다. 이러한 포트는 관리 노드에서 예약되어 있습니다. 둘 이상의 엔드포인트에 동일한 포트를 사용하는 경우 각 엔드포인트에 대해 서로 다른 바인딩 모드를 지정해야 합니다.
다른 그리드 서비스에서 사용하는 포트는 허용되지 않습니다. "StorageGRID 내부 포트"을 참조하십시오.
네트워크 프로토콜 고려 사항
대부분의 경우 클라이언트 애플리케이션과 StorageGRID 간의 연결에는 TLS(전송 계층 보안) 암호화를 사용해야 합니다. TLS 암호화 없이 StorageGRID에 연결하는 것은 지원되지만, 특히 운영 환경에서는 권장하지 않습니다. StorageGRID 로드 밸런서 엔드포인트에 사용할 네트워크 프로토콜을 선택할 때는 *HTTPS*를 선택하십시오.
로드 밸런서 엔드포인트 인증서에 대한 고려 사항
로드 밸런서 엔드포인트의 네트워크 프로토콜로 *HTTPS*를 선택하는 경우 보안 인증서를 제공해야 합니다. 로드 밸런서 엔드포인트를 생성할 때 다음 세 가지 옵션 중 하나를 사용할 수 있습니다.
-
서명된 인증서를 업로드하세요(권장). 이 인증서는 공개적으로 신뢰할 수 있는 CA 또는 사설 인증 기관(CA)에서 서명할 수 있습니다. 연결 보안을 위해 공개적으로 신뢰할 수 있는 CA 서버 인증서를 사용하는 것이 가장 좋습니다. 생성된 인증서와 달리 CA에서 서명한 인증서는 서비스 중단 없이 갱신할 수 있으므로 만료 문제를 방지하는 데 도움이 됩니다.
로드 밸런서 엔드포인트를 생성하기 전에 다음 파일들을 확보해야 합니다.
-
사용자 지정 서버 인증서 파일입니다.
-
사용자 지정 서버 인증서 개인 키 파일입니다.
-
선택적으로, 각 중간 발급 인증 기관의 인증서를 묶은 CA 번들을 제공할 수 있습니다.
-
-
자체 서명 인증서를 생성합니다.
-
글로벌 StorageGRID S3 인증서를 사용하십시오. 로드 밸런서 엔드포인트에 이 인증서를 선택하려면 먼저 이 인증서의 사용자 지정 버전을 업로드하거나 생성해야 합니다. 을 참조하십시오. "S3 API 인증서 구성"
어떤 값이 필요합니까?
인증서를 생성하려면 S3 클라이언트 애플리케이션이 엔드포인트에 액세스하는 데 사용할 모든 도메인 이름과 IP 주소를 알고 있어야 합니다.
인증서의 주체 DN(고유 이름) 항목에는 클라이언트 애플리케이션이 StorageGRID에 사용할 정규화된 도메인 이름이 포함되어야 합니다. 예를 들면 다음과 같습니다.
Subject DN: /C=Country/ST=State/O=Company,Inc./CN=s3.storagegrid.example.com
필요에 따라 인증서는 와일드카드를 사용하여 로드 밸런서 서비스를 실행하는 모든 관리 노드 및 게이트웨이 노드의 정규화된 도메인 이름을 나타낼 수 있습니다. 예를 들어, .storagegrid.example.com 와일드카드를 사용하여 adm1.storagegrid.example.com 및 `gn1.storagegrid.example.com`을 나타냅니다.
S3 가상 호스팅 스타일 요청을 사용할 계획이라면, 인증서에는 구성한 각 "S3 엔드포인트 도메인 이름"에 대한 대체 이름 항목(와일드카드 이름 포함)도 포함되어야 합니다. 예를 들면 다음과 같습니다.
Alternative Name: DNS:*.s3.storagegrid.example.com
|
|
도메인 이름에 와일드카드를 사용하는 경우 "서버 인증서 보안 강화 지침"을(를) 검토하십시오. |
보안 인증서에 있는 각 이름에 대해 DNS 항목을 정의해야 합니다.
만료 예정인 인증서는 어떻게 관리하나요?
|
|
S3 애플리케이션과 StorageGRID 간의 연결을 보호하는 데 사용된 인증서가 만료되면 애플리케이션이 일시적으로 StorageGRID에 대한 액세스를 잃을 수 있습니다. |
인증서 만료 문제를 방지하려면 다음 모범 사례를 따르십시오.
-
로드 밸런서 엔드포인트 인증서 만료 및 S3 API용 글로벌 서버 인증서 만료 알림과 같이 인증서 만료일이 임박했음을 경고하는 모든 알림을 주의 깊게 모니터링하십시오.
-
StorageGRID 와 S3 애플리케이션의 인증서 버전을 항상 동기화 상태로 유지하십시오. 로드 밸런서 엔드포인트에 사용되는 인증서를 교체하거나 갱신하는 경우, S3 애플리케이션에서 사용하는 해당 인증서도 교체하거나 갱신해야 합니다.
-
공개적으로 서명된 CA 인증서를 사용하십시오. CA가 서명한 인증서를 사용하면 만료가 임박한 인증서를 서비스 중단 없이 교체할 수 있습니다.
-
자체 서명된 StorageGRID 인증서를 생성했고 해당 인증서의 만료일이 임박한 경우, 기존 인증서가 만료되기 전에 StorageGRID와 S3 애플리케이션 모두에서 수동으로 인증서를 교체해야 합니다.
결합 모드에 대한 고려 사항
바인딩 모드를 사용하면 로드 밸런서 엔드포인트에 액세스하는 데 사용할 수 있는 IP 주소를 제어할 수 있습니다. 엔드포인트가 바인딩 모드를 사용하는 경우 클라이언트 애플리케이션은 허용된 IP 주소 또는 해당 정규화된 도메인 이름(FQDN)을 사용하는 경우에만 엔드포인트에 액세스할 수 있습니다. 다른 IP 주소나 FQDN을 사용하는 클라이언트 애플리케이션은 엔드포인트에 액세스할 수 없습니다.
다음 바인딩 모드 중 하나를 지정할 수 있습니다.
-
전역(기본값): 클라이언트 애플리케이션은 모든 게이트웨이 노드 또는 관리 노드의 IP 주소, 모든 네트워크의 모든 HA 그룹의 가상 IP(VIP) 주소 또는 해당 FQDN을 사용하여 엔드포인트에 액세스할 수 있습니다. 엔드포인트의 액세스를 제한해야 하는 경우가 아니면 이 설정을 사용하십시오.
-
HA 그룹의 가상 IP 주소. 클라이언트 애플리케이션은 HA 그룹의 가상 IP 주소(또는 해당 FQDN)를 사용해야 합니다.
-
노드 인터페이스. 클라이언트는 선택된 노드 인터페이스의 IP 주소(또는 해당 FQDN)를 사용해야 합니다.
-
노드 유형. 선택한 노드 유형에 따라 클라이언트는 관리 노드의 IP 주소(또는 해당 FQDN) 또는 게이트웨이 노드의 IP 주소(또는 해당 FQDN) 중 하나를 사용해야 합니다.
테넌트 액세스 관련 고려 사항
테넌트 액세스는 StorageGRID 테넌트 계정 중 어떤 계정이 로드 밸런서 엔드포인트를 사용하여 버킷에 액세스할 수 있는지 제어할 수 있는 선택적 보안 기능입니다. 모든 테넌트가 엔드포인트에 액세스할 수 있도록 허용(기본값)하거나, 각 엔드포인트에 대해 허용 또는 차단할 테넌트 목록을 지정할 수 있습니다.
이 기능을 사용하면 테넌트와 해당 엔드포인트 간의 보안 격리를 강화할 수 있습니다. 예를 들어, 이 기능을 사용하여 한 테넌트가 소유한 일급 비밀 또는 고도로 기밀인 자료가 다른 테넌트에게 완전히 액세스되지 않도록 할 수 있습니다.
|
|
액세스 제어를 위해 테넌트는 클라이언트 요청에 사용된 액세스 키를 기준으로 결정됩니다. 요청의 일부로 액세스 키가 제공되지 않은 경우(익명 액세스와 같이) 버킷 소유자를 사용하여 테넌트를 결정합니다. |
테넌트 액세스 예시
이 보안 기능이 어떻게 작동하는지 이해하려면 다음 예를 살펴보십시오.
-
다음과 같이 두 개의 로드 밸런싱 엔드포인트를 생성했습니다.
-
Public 엔드포인트: 포트 10443을 사용하며 모든 테넌트에 대한 액세스를 허용합니다.
-
극비 엔드포인트: 포트 10444를 사용하며 극비 테넌트만 액세스할 수 있습니다. 다른 모든 테넌트는 이 엔드포인트에 액세스할 수 없습니다.
-
-
The `top-secret.pdf`은(는) 극비 테넌트가 소유한 버킷에 있습니다.
`top-secret.pdf`에 액세스하기 위해 *극비* 테넌트의 사용자는 `\https://w.x.y.z:10444/top-secret.pdf`에 GET 요청을 보낼 수 있습니다. 이 테넌트는 10444 엔드포인트를 사용할 수 있도록 허용되어 있으므로 사용자는 해당 객체에 액세스할 수 있습니다. 그러나 다른 테넌트에 속한 사용자가 동일한 URL로 동일한 요청을 보내면 즉시 액세스 거부 메시지가 표시됩니다. 자격 증명과 서명이 유효한 경우에도 액세스가 거부됩니다.
CPU 가용성
각 관리 노드와 게이트웨이 노드의 로드 밸런서 서비스는 스토리지 노드로 S3 트래픽을 전달할 때 독립적으로 작동합니다. 로드 밸런서 서비스는 가중치 부여 과정을 통해 CPU 가용성이 높은 스토리지 노드로 더 많은 요청을 라우팅합니다. 노드 CPU 부하 정보는 몇 분마다 업데이트되지만, 가중치는 더 자주 업데이트될 수 있습니다. 모든 스토리지 노드에는 최소 기본 가중치 값이 할당되며, 노드의 사용률이 100%이거나 사용률을 보고하지 않는 경우에도 마찬가지입니다.
경우에 따라 CPU 가용성에 대한 정보는 로드 밸런서 서비스가 위치한 사이트로 제한될 수 있습니다.