본문 바로가기
AWS 공부

AWS 성능 효율화

by 돈 되는 정보 공유하기 2022. 6. 6.
반응형

AWS 성능 효율화
AWS 클라우드 서비스는 물리적인 인프라 작업 없이 높은 효율을 제공하는 서비스이다. 단순히 AWS 클라우드 자원이 문제없이 실행되는 것만으로는 부족하다. AWS 클라우드 자원을 최대한 활용하기 위해 AWS 클라우드 특유의 각종 기능을 최대한 활용할 필요가 있다. AW는 컴퓨팅, 스토리지, 데이터베이스, 네트워크 서비스의 다양한 장점과 유연성을 제공하는데 애플리케이션의 성능 최적화를 위해 이들 도구를 미세하게 조절하고 세심하게 관리하고 플랫폼에 내장 다양한 환경설정 옵션도 사용할 수 있어야 한다. 우선 컴퓨팅 서비스의 가장 근본적인 목적은 워크로드 수요에 맞춰 신속하고 효율적으로 컴퓨팅 자원을 제공하는 것이다. 하지만 세상의 모든 문제를 동일한 컴퓨팅 자원만으로 해결한다는 것은 불가능하다. 사용자는 컴퓨팅 자원의 기능성과 연산력을 적절히 조합하여 사용해야 한다. EC2 인스턴스의 성능은 다양한 환경설정 변수에 의해 결정되며 처리하려는 워크로드에 가장 적합한 인스턴스 타입을 선택할 수 있어야 한다. 급변하는 환경에서 발생하는 다양한 문제를 다양한 문제를 해결하는 과정에서 인스턴스의 타입을 변경하거나 때론 인스턴스를 추가하기도 해야 한다. 환경설정 파라미터는 인스턴스의 성능 기반인 하드웨어의 각종 성능 요소를 추상화한 것이고 사용자는 이를 통해 인스턴스에 할당되는 자원을 정의할 수 있다. 인스턴스 파라미터로는 ECUSEC2, VCPUs, Physical Processor, Clock Speed, Memory, Instance Storage 등이 있는데 ECUSEC2는 컴퓨팅 유닛, 인스턴스 타입 간 컴퓨팅 성능 비교에 유용하고 VCPUs는  인스턴스에 할당된 가상 CPUS 수를 의미한다. Physical Processor는 호스트 서버가 사용하는 프로세서 패밀리를 뜻하고 Clock Speed는 말 그대로 호스트 서버가 사용하는 클럭 스피드이다. Memory는 인스턴스에 할당된 메모리 양이고 Instance Storage는 로컬 명 인스턴스 스토어 볼륨의 크기를 나타내는 파라미터이다. 이 외에도 EBS-Optimized Availabe, Network Performance, IPv6 Support, Processor Architecture, Intel AES-NI, Standard-New Instructions, Intel AVX, Intel Turbo 등의 파라미터들이 있다. 하나의 EC2 인스턴스로 워크로드를 처리할 수 없다면 스케일아웃만 하면 된다. 스케일아웃이나 수평적 스케일링은 애플리케이션 수요에 맞춰 자원을 추가하는 방법이고 기존 인스턴스와 병렬적으로 워크로드를 처리한다. 전형적인 스케일아웃 시나리오는 증가하는 고객 수요에 맞춰 커머스용 웹서버를 호스팅 하는 EC2 인스턴스를 확장하는 것이다. Auto Scaling은 변화하는 요구 수준에 맞춰 인스턴스를 자동으로 추가 또는 삭제할 수 있는 AWS의 도구다. 수요 증가 시 인스턴스 자원에 대한 성능 지표를 확인해 자동으로 인스턴스 복제본을 추가하고 개별 인스턴스의 부담을 줄여줄 수 있다. 반대로 수요 감소 시에는 미사용 자원을 삭제해 운영비용을 줄인다. Auto Scaling 그룹은 배포하려는 인스턴스를 정의한 시작 환경설정을 이용하며 애플리케이션을 미리 설치해 둔 커스텀 EC2 AMI를 이용하거나 인스턴스 시작 시점에 유저 데이터로 애플리케이션을 설치할 수 있는 표준 AMI를 이용할 수 있다. EC2 인스턴스를 사용하지 않고도 변화하는 환경에 대응해 효과적으로 컴퓨팅 인프라를 배포할 수 있다. Docker와 같은 컨테이너, Lambda 등의 서버리스 함수는 초경량의 자원만 사용해 거의 즉각적으로 여러분이 필요로 하는 컴퓨팅 인프라를 사용할 수 있도록 해준다. Amazon ECS(Elastic Container Service)와 같은 컨테이너 관리 서비스와 프런트엔드 추상화 서비스인 AWS Fargate는 자원 활성화율을 극대화하고, 단일 인스턴스 환경에서도 워크로드를 신속하게 처리할 수 있도록 돕는다. Kubernetes 기반의 EKS 등, AWS 컨테이너 환경은 관리자가 쉽게 자동화할 수 있도록 스크립트로 접근할 수 있다. AWS Lambda는 지속해서 실행되는 서버 호스트를 프로비저닝 할 필요가 없다는 점에서 EC2 인스턴스나 ECS 컨테이너와 다르다. Lambda 함수는 네트워크 이벤트에 대응해 최대 15분이라는 매우 짧은 시간 동안 실행된다. Lambda 함수는 다른 AWS 서비스와 쉽게 통합할 수 있으며, Amazon API Gateway를 이용해 API 요청 방식으로 워크로드를 처리할 수 있다. RAID(Redundant Array of Independent Disks) 기반의 디스크 관리 기술을 이용해 데이터 스토리지의 성능 및 안정성을 높일 수 있다. RAID는 데이터 센터의 관리자들이 수년간 사용해온 디스크 관리 기법이지만 AWS의 EBS 디스크에 이 기술을 적용하는 일은 새로 방식을 요구한다. 참고로 AWS에서 EBS 디스크는 OS 내에서 관리된다. RAID는 다수의 드라이브 공간을 하나의 논리 드라이브에 통합하면 내 전체 배열 구조에 데이터를 분산 또는 복제한다. 비중 복구 현형 RAID 0 표준은 데이터 스트라이핑을 통해 데이터를 세분화하고 하나 이상의 디바이스에 저장해 단일 디스크의 접근 제약성을 동시다발적인 작업으로 극복한다. 이 방식은대규모의 트랜잭션 데이터를 처리하는 데이터베이스의 I/O 성능을 크게 높여준다. RAID(Redundant Array of Independent Disks) 기반의 디스크 관리 기술을 이용해 데이터 스토리지의 성능 및 안정성을 높일 수 있는데 RAID는 데이터 센터의 관리자들이 수년간 사용해온 디스크 관리 기법이다. 하지만 AWS의 EBS 디스크에 이 기술을 적용하는 일은 새로 방식을 요구한다. 참고로 AWS에서 EBS 디스크는 OS 내에서 관리된다. RAID는 다수의 드라이브 공간을 하나의 드라이브에 통합하고 전체 배열 구조에 데이터를 복제한다. 

반응형

'AWS 공부' 카테고리의 다른 글

AWS 보안 2  (0) 2022.06.09
AWS 보안  (0) 2022.06.08
Amazon CloudFront  (0) 2022.06.05
AWS DNS Route53  (0) 2022.06.03
AWS IAM  (0) 2022.06.02

댓글