AWS Storage Gateway의 게이트웨이가 AWS에 업로드될 때 성능이 저하되는 문제를 해결하고 싶습니다.
해결 방법
AWS에 대한 인터넷 대역폭 또는 네트워크 처리량 검토
게이트웨이와 AWS 간의 인터넷 속도는 업로드 성능에 영향을 미칠 수 있습니다. 게이트웨이에 사용할 수 있는 인터넷 대역폭을 확인하려면 가상 머신에서 네트워크 테스트를 실행하거나 게이트웨이 디바이스와 동일한 네트워크에 있는 시스템을 사용합니다.
예를 들어, 게이트웨이는 Amazon Virtual Private Cloud(VPC) 엔드포인트를 통해 AWS에 연결됩니다. 해당 엔드포인트는 Amazon Simple Storage Service(S3)용이며, AWS Direct Connect 또는 VPN 연결을 통해 연결됩니다. 연결이 성립되면, 온프레미스 VM에서 VPC의 인스턴스로의의 네트워크 처리량 테스트를 실행합니다.
게이트웨이를 온프레미스로 호스팅하고 VPC 엔드포인트를 통해 AWS에 연결하는 경우는 다른 테스트를 진행합니다. 예를 들어, 해당 엔드포인트는 AWS Direct Connect를 통한 Storage Gateway 또는 VPN 연결용입니다. 이 예시에서 게이트웨이에서 S3 버킷으로의 트래픽은 퍼블릭 가상 인터페이스 또는 퍼블릭 인터넷을 통과합니다. 퍼블릭 가상 인터페이스 또는 퍼블릭 인터넷 연결이 혼잡하면 게이트웨이의 업로드 성능이 영향을 받을 수 있습니다. 트래픽이 프라이빗 가상 인터페이스를 통과할 수 있도록 하려면 Amazon S3 PrivateLink VPC 엔드포인트로 게이트웨이를 설정합니다. 이 구성을 사용하면, 게이트웨이 디바이스에서 Amazon Elastic Compute Cloud(EC2) 프록시를 생성하고 구성해야 합니다.
Storage Gateway 디바이스에 기록된 파일 크기 확인
Storage Gateway는 일반적으로 대용량 파일을 업로드할 때 작은 파일을 업로드할 때보다 더 좋은 성능을 보입니다. 이는 Storage Gateway가 대용량 파일을 여러 부분으로 쪼갠 다음 해당 부분을 병렬 스트림으로 S3 버킷에 업로드하기 때문입니다.
파일 크기 및 스레드 수로 테스트를 실행하여 게이트웨이에서 AWS로의 업로드 속도를 벤치마킹합니다. 그 후에 CloudBytesUploaded 지표를 검토하여 업로드 속도를 결정합니다.
게이트웨이의 캐시 스토리지 검토
파일 게이트웨이를 사용한다면 CachePercentDirty 지표를 확인합니다. 게이트웨이에 기록된 데이터 중 아직 Amazon S3에 기록되지 않은 데이터는 모두 오손 데이터로 간주합니다. CachePercentDirty 지표가 80% 를 초과하면 게이트웨이에서 Amazon S3로의 업로드가 느려질 수 있습니다.
CachePercentDirty 지표가 높으면 CloudBytesUploaded 지표를 확인하여 Amazon S3로의 업로드 속도가 느린지 확인합니다. 업로드 속도가 느리면 게이트웨이에서 사용할 수 있는 인터넷 대역폭을 늘립니다.
또한 Amazon CloudWatch에서 게이트웨이의 IoWaitPercent 지표를 확인합니다. 테스트 중에 게이트웨이의 ioWaitPercent 지표가 10% 보다 높게 나온다면, 게이트웨이에 문제가 있을 수도 있습니다. 게이트웨이에 워크로드를 처리하기에 충분한 I/O를 가지고 있지 않은 디스크가 있을 수 있습니다. SampleCount 통계를 사용하여 WriteBytes 지표를 검토하고 AWS에 대한 총 쓰기 I/O를 확인합니다.
게이트웨이의 캐시 디스크에 I/O가 충분하지 않아 워크로드를 처리할 수 없다면 캐시 디스크를 더 빠른 디스크 유형으로 교체합니다. 예를 들어, SSD 또는 NVMe 지원 SSD 디스크를 사용합니다. 게이트웨이에 다른 캐시 디스크를 연결하면 게이트웨이에 사용할 수 있는 집계 I/O를 늘릴 수 있습니다.
게이트웨이 호스트 VM 또는 Amazon EC2 인스턴스 구성 확인
게이트웨이 호스트 VM 또는 EC2 인스턴스의 CPU 및 RAM이 AWS에 대한 게이트웨이 처리량을 지원하는지 확인합니다. 한 예로, 모든 EC2 인스턴스 유형은 다른 기준 처리량을 보입니다. 인스턴스는 버스트 처리량이 모두 소진되면 기준 처리량을 사용합니다. 이로 인해 AWS로의 업로드 처리량이 제한됩니다.
게이트웨이가 EC2 인스턴스에서 호스팅된다면 해당 인스턴스의 NetworkOut 지표를 확인합니다. 테스트 중에 NetworkOut 지표가 기준 처리량에 도달하면 인스턴스를 더 큰 인스턴스 유형으로 변경합니다. 더 큰 인스턴스 유형은 더 많은 네트워크 처리량을 달성합니다.
게이트웨이와 데이터 세트 간 지리적 거리 확인
데이터 세트와 동일한 네트워크에 게이트웨이를 배포하는 것을 가장 권장합니다. 혹은 데이터 세트와 지리적으로 가까운 네트워크에 배포할 수도 있습니다. WAN(광역 네트워크)을 통해 연결을 설정하지 않습니다. AWS Direct Connect 또는 VPN을 통해 파일 공유가 마운트된 상태로 EC2 인스턴스에 배포하는 게이트웨이가 한 예입니다. WAN 연결을 통해 온프레미스 트래픽에서 AWS로 전송되는 지연 시간은 데이터가 게이트웨이에 도달하는 속도에 영향을 미칩니다. 이 지연 시간은 결국 S3 버킷으로의 업로드 속도에 영향을 미칩니다. 업로드 지연 시간을 줄이려면 파일 공유로 사용하는 S3 버킷과 동일한 AWS 리전에 게이트웨이를 배포해야 합니다.