728x90

고성능 컴퓨팅을 위해서는 고성능의 인스턴스를 준비하면 된다.

높은 퍼포먼스가 필요하다면 그만한 인스턴스가 필요한 것은 당연한건데, 비용 효율적으로 퍼포먼스를 늘리 수 있는 방법을 적어보려고 한다.

우선 기본은 auto scaling이다.

무중단으로 운영되는 서비스에서 늘어나는 워크로드에 따라 조절 할 수 있는 auto scaling은

온디멘드 인스턴스를 사용한 오토스케일링이고,

이번 글에서 써보려는 것은 고성능을 요구하는 작업이지만, 무중단으로 운영되는 서비스가 아닌것(예를 들어 당일 매출 분석)을 스팟 인스턴스를 사용한 오토스케일링으로 고성능 컴퓨팅 아키텍처한 정리를 해보려고 한다.

 

스팟 인스턴스는 저렴한 가격으로 EC2를 사용하는 것을 말한다. AWS에 EC2 여유분이 있을 경우 이 것을 여유분에 따라 좀 더 저렴한 가격에 사용이 가능하다. 그래서 사용자가 설정한 가격 범위 내에서 EC2를 사용할 수 있을 때 EC2를 사용할 수 있다. 가격 범위가 넘어서면 EC2 사용을 중단해버리기 때문에, 일반적인 운영 서비스에 사용되거나 DB와 같은 서비스에는 적합하지 않다. 

적절한 예는, 어떤 작업이 높은 성능의 컴퓨팅 파워가 필요하지만, 최단 시간내에 끝낼 필요가 없을 때, 그리고 해당 작업의 속도가 느려졌다 빨라졌다 해도 상관 없을 때, 그럴때 컴퓨팅 노드 형태로 사용하는 것이 좋다.

데이터는 EC2가 종료되어도 사라지지 않도록 S3와 EC2를 연결하면 되는데, EBS의 경우 EC2가 종료되면서 EBS가 같이 종료 될 수 있으니 해당 부분에 대해서는 설정이 필요하다.

AWS ParallelCluster 서비스를 통해서 AWS HPC 클러스터를 배포하고 관리할 수 있다.

 

고성능 컴퓨팅을 위해서는 컴퓨팅 노드도 중요하지만 네트워크도 상당히 중요하다.

"AWS는 네트워크 트래픽을 최적화하는 제품 기능(예: 향상된 네트워킹, Amazon EC2 네트워킹 최적화 인스턴스, Amazon S3 Transfer Acceleration, 동적 Amazon CloudFront)을 제공합니다. 또한 AWS는 네트워크 거리 또는 지터를 줄이기 위한 네트워킹 기능(예: Amazon Route 53 지연 시간 기반 라우팅, Amazon VPC 종단점, AWS Direct Connect 및 AWS Global Accelerator)도 제공합니다."

라고 한다.

*최신 버전의 EC2 인스턴스는 강화된 네트워킹 기능을 활용할 수 있습니다. M5n 및 M5dn과 같은 N 시리즈 EC2 인스턴스는 4세대 사용자 지정 니트로 카드 및 Elastic Network Adapter(ENA) 디바이스를 활용하여 단일 인스턴스에 최대 100Gbps의 네트워크 처리량을 제공합니다

* 최적화된 구성 스택을 사용하는 Amazon EBS 최적화 인스턴스는 Amazon EBS I/O 전용 용량을 추가로 제공합니다. 이 최적화를 수행하면 Amazon EBS I/O와 인스턴스의 기타 트래픽 간에 경합이 최소화되므로 EBS 볼륨의 성능을 최대한 높일 수 있습니다.

* 외부 사용자는 Amazon S3 콘텐츠 가속 기능을 통해 CloudFront의 네트워킹 최적화 이점을 활용하여 Amazon S3에 데이터를 업로드할 수 있습니다. 이렇게 하면 AWS 클라우드 전용 연결을 사용할 수 없는 원격 위치에서 대량의 데이터를 전송할 수 있습니다.

* Amazon Route 53용 LBR(지연 시간 기반 라우팅)을 사용하면 전 세계 고객을 대상으로 워크로드 성능을 개선할 수 있습니다. LBR은 워크로드가 실행되는 다양한 AWS 리전의 실제 성능 측정값을 기준으로 하여 가장 빠른 환경을 제공하는 AWS 엔드포인트(예: EC2 인스턴스, 탄력적 IP 주소 또는 ELB 로드 밸런서)로 고객을 라우팅하는 방식으로 작동합니다.

* Amazon VPC 종단점은 인터넷 게이트웨이 또는 NAT(네트워크 주소 변환) 인스턴스가 없어도 Amazon S3 등의 AWS 서비스에 안정적으로 연결할 수 있는 기능을 제공합니다.

* AWS Direct Connect 는 AWS 환경으로의 전용 연결(50Mbps~10Gbps)을 제공합니다. 그러므로 지연 시간을 관리/제어하고 대역폭을 프로비저닝할 수 있습니다. 따라서 워크로드에서 우수한 성능을 유지하면서 다른 환경에 쉽게 연결할 수 있습니다. AWS Direct Connect 파트너 중 하나를 활용하면 여러 환경에서 엔드 투 엔트 연결 기능을 사용할 수 있으므로 성능이 일관되게 유지되는 확장 네트워크가 제공됩니다.

* AWS Global Accelerator 는 AWS 글로벌 네트워크를 사용하여 글로벌 애플리케이션 가용성 및 성능을 개선하는 서비스입니다. 이 서비스는 정체가 없는 방대한 AWS 글로벌 네트워크를 활용하여 네트워크 경로를 최적화합니다.

 

아마존 문서 설명이 좋아서 그대로 정리 없이 가져와봤다.

 

다시 한번 강조(?)하고 넘어가면 스팟 인스턴스를 쓰는 것은 가격을 고려한 부분이다.

만약 컴퓨팅 시 컴퓨팅의 성능이 줄어들면 안 되거나, 처리량이 일정하진 않지만(많거나 적을수도 있다면) 특정 시간 전까지는 끝내야하는 그런 작업이라면 온디맨드 인스턴스로 하여 가격이 싸지 않더라도 인스턴스를 늘려서 컴퓨팅 파워를 늘려버려야 한다.

 

 

 

 

+ Recent posts