[AWS] What is AWS Graviton processor?

 

l  Version : Amazon Web Service

 

이번 포스트는 AWS에서 출시하여 제공하고 있는 AWS Graviton 프로세서가 무엇인지 알아본다. Graviton 프로세서에 대한 성능 기존 X86 프로세서와의 벤치마크 등은 다른 자료를 참고할 있도록 한다.

 

AWS Graviton Amazon EC2(Elastic Compute Cloud) 가상 머신 인스턴스 고객을 위해 ARM 아키텍처를 기반으로 AWS에서 2018 출시한 서버 프로세서이다.  AWS Graviton 1 프로세서는 맞춤형 실리콘과 64비트 Neoverse 코어를 특징으로 한다. 2020 AWS Graviton2 프로세서를 출시했고. 2021, re:Invent 컨퍼런스에서 Graviton3 프로세서를 발표했다.

 

l  ARM architecture family : https://en.wikipedia.org/wiki/ARM_architecture_family

 

Graviton2 무엇일까?

AWS Graviton2 프로세서는 7nm 공정에서 제작된 맞춤형 프로세서로, Arm 새로운 Neoverse N1 코어 기반으로 한다. Graviton2 64개의 코어와 2.5GHz 클럭으로 동작하고, 이들은 2TB/s 메시 아키텍처로 연결된다. L3캐시는 32MB 구성되어 있다. 시스템의 메모리 채널은 8채널 DDR4-3200 메모리 컨트롤러로 지원되며 PCIe4 64개를 지원한다.

 

Amazon Graviton2 : FIRST NEOVERSE N1 Chip

 

l  Neoverse N1 - Microarchitectures – ARM : https://en.wikichip.org/wiki/arm_holdings/microarchitectures/neoverse_n1

 

AWS Graviton 프로세스를 만든 이유는 무엇일까?

2020 말에 AWS EC2 부사장인 David Brown 흥미로운 관점을 밝혔다. 그는 크든 작든 엄청난 수의 Amazon EC2 고객이 EC2 용량을 간신히 사용하고 있다고 말했다. 그는 고객의 의견을 경청한 AWS 여러 가지 이유로 서버용으로 X86-64 프로세서 제품군에서 전환했다.

AWS 요구사항 :

l  EC2 인스턴스 선택에 있어 고객에게 많은 선택권 제공

l  서버와 같은 ARM 기반 애플리케이션 대상

l  가상화 비용을 줄이면서 고가용성 보안 제공

l  고객을 위한 저렴한 가격으로 적절한 서버 성능 조정

AWS 요구사항 외에도 혁신을 위해 Intel AMD 의존하기 보다 AWS 작동하는 방식으로 작동하도록 구축된 사내 서버 프로세서 제품군을 필요했다.

 

AWS Graviton 프로세서는 좋은가?

일부 서클에서는 1세대 AWS Graviton 프로세서가 당시 AMD Intel 프로세서에 비해 취급을 받을 것이라 했다. 그러나 시간이 지남에 따라 프로세서는 서버용 X86 기반 프로세서보다 약간 나은 것으로 판명되었다. 예를 들어 ARM 프로세서는 X86코어에 비해 전력 소비가 낮다. 이는 AWS 추구해온 제안 하나이므로 궁극적으로 EC2 요금까지 절감할 있게 되었다.

 

AWS Graviton Vs Graviton2 프로세서 차이점은 무엇일까?

출시 당시 AWS Graviton2 X86 프로세서 보다 40%, AWS Graviton1 프로세서 보다 7 나은 가격대비 성능을 제공한다고 발표했다. 또한 차세대 프로세서는 Graviton1 프로세서보다 4 빠른 컴퓨팅 코어, 5 빠른 메모리, 2 캐시를 제공한다. 또한 AWS Graviton2 통해 개발자가 안전하고 대규모로 실행할 있는 클라우드 네이티브 앱을 만들 있도록 가지 주요 개선사항을 만들었다. 여기에는 항상 활성화 되어 있는 256비트 DRAM 암호화가 포함된다.

 

아래는 Graviton1 프로세서와 Graviton2 프로세서의 차이점에 대해서 살펴본다.

1.       스토리지

AWS Graviton1 이미지, 비디오 분석 데이터와 같은 서비스를 호스팅하는데 유용한 간단한 스토리지를 제공한다. 저장된 데이터에 원격으로 쉽게 액세스할 있게 해주는 객체 수준 데이터 스토리지 서비스를 제공한다. 이에 비해 Graviton2 일반적으로 블록이라고 하는 여러 값으로 파일을 저장하는데 도움이 되는 블록 수준 저장소를 제공한다. 블록은 또한 인터넷 연결을 통해 원격으로 쉽게 액세스 없도록 하여 데이터를 보호한다.

2.       정보 접근성

AWS Graviton1 데이터를 클러스터 되지 않은 형식으로 저장하므로 쉽게 데이터에 액세스 있다. HTTP 프로토콜을 사용하여 데이터를 검색할 있다. Graviton2 오직 Attached연결에서만 액세스 있는 형식으로 데이터를 저장한다.

3.       가용성

AWS Graviton1 API 사용하여 인터넷을 통해 사용할 있다. Graviton2 하드웨어 프로세서에 연결된 단일 인스턴스에서 사용할 있다.

4.       내구성

AWS Graviton1 여러 가용 영역에 데이터를 저장하여 내구성을 제공하는 반면, Graviton2 단일 가용 영역에서만 데이터를 저장한다.

5.       용도

Graviton2 EC2인스턴스 외에도 Amazon ElastiCache, Amazon RDS Amazon EKS(컨테이너 서비스)실행에도 사용할 있다.

 

언제 AWS Graviton 프로세서를 사용하면 좋을까?

서버, 로그 처리, 비디오 인코딩, 전자 설계 자동화 CPU 인터페이스 기반의 기계 학습에 AWS Graviton1 Graviton2 사용한다. 현재 X86기반 서버를 사용하는 경우 Arm 아키텍처에서 실행되도록 애플리케이션을 다시 설계해야 한다.

 

AWS Graviton 사용하면 어떤 이점이 있을까?

AWS Graviton 가장 중요한 이점은 비용 절감, 짧은 지연 시간, 향상된 확장성, 향상된 가용성 보안이다.

1.       비용 효율적

프로세서 제품군은 Arm 아키텍처 기반으로 한다. SoC(System On Chip) 가능성이 높다. 뜻은 만족스러운 성능을 제공하는 동시에 전력 소비 비용을 낮출 있는 것으로 해석할 있다.

2.       생태계 지원

AWS Graviton1 Graviton2 64비트 Arm Neoverse 코어 아키텍처를 기반으로 하기 때문에 여러 Linux 기반 운영체제가 구성을 지원한다. 여기에는 Amazon Linux 2, SUSE Red Hat 포함된다. 이는 고객에게 많은 선택권을 제공한다.

3.       효율적인 CPU 전력

AWS Graviton 프로세서는 전통적인 아키텍처보다 최대 3.45% 높은 성능을 제공한다. 또한 X86 프로세서보다 간단한 프로세서 구현을 제공한다.

4.       범용 구축

AWS Graviton 코어는 서버, 중간 규모 데이터 저장 프로세스, 마이크로 서비스 클러스터 컴퓨팅의 효울성을 개선하도록 구축되었다.

5.       버스트 가능한 워크로드 제공

확장 가능한 마이크로 서비스, 중소 규모 데이터베이스 서비스, 가상 데스크톱, 중요한 비즈니스에 적합한 애플리케이션 선택과 같은 광범위한 부분에서 버스트 가능한 워크로드 서비스 세트를 사용자에게 제공한다.

6.       컴퓨터 집약적 모델을 기반으로 구축

프로세서는 HD 비디오 성능 컴퓨팅, 비디오 인코딩, 게임 CPU 기반 컴퓨터 학습 프로세스와 같은 컴퓨터 집약적 모델을 기반으로 한다.

7.       향상된 네트워킹 제공

EFO(Elastic Fabric Operator) 100Gbps 네트워킹 기능을 제공한다.

 

 

 

[참고자료]

l  https://www.cloudzero.com/blog/aws-graviton

l  https://techcrunch.com/2021/11/30/aws-launches-its-graviton-3-processor/

l  https://www.techrepublic.com/article/faq-what-arm-servers-on-aws-mean-for-your-cloud-and-data-center-strategy/

l  https://www.anandtech.com/show/15578/cloud-clash-amazon-graviton2-arm-against-intel-and-amd

l  https://en.wikichip.org/wiki/arm_holdings/microarchitectures/neoverse_n1

 

 

 

2022-03-26 / Sungwook Kang / http://sungwookkang.com

 

 

AWS Graviton, AWS 그라비톤, ARM CPU, AWS ARM

[AWS RDS] RDS Proxy

-          커넥션풀을 관리하여 RDS에서 발생할 있는 연결 오류 오버헤드 방지

 

l  Version : Amazon RDS

 

AWS Relational Database Service(RDS) 관리형 데이터베이스 서비스이다. RDS 제한된 수의 커넥션 연결만 허용하는데 최근 애플리케이션의 패턴이 발전하고, 특히 서버리스 애플리케이션 에서는 많은 수의 DB 커넥션을 발생시킨다. 이렇게 제한된 숫자 이상의 커넥션 연결을 요청하게 되면 데이터베이스는 커넥션 연결 오류가 발생하고 애플리케이션은 정상적인 서비스 제공이 불가능하게 된다. 이러한 문제점을 해결하기 위해서 RDS Proxy(프록시) 사용할 있다.

 

RDS 프록시는 다른 프록시 서비스와 유사하게 작동한다. 기본적으로 미들웨어 역할을 하여 RDS 데이터베이스 인스턴스와 Amazon Aurora 데이터베이스 클러스터로 들어오는 네트워크 트래픽을 구성한다.

 

RDS Proxy 일반 프록시보다 훨씬 많은 기능을 제공한다. RDS 데이터베이스를 위해 특별히 설계되었으며 데이터베이스 프로토콜, 요청 응답 처리, 데이터베이스에서 클라이언트 애플리케이션으로 다시 푸시한 결과를 인식하는 기능이 있다.

RDS 프록시는 DB 연결을 풀링 공유하여 작동하므로 애플리케이션의 확장성과 데이터베이스 오류에 대한 탄력성을 높인다. RDS 프록시 사용의 주요 이점은 아래와 같다.

l  연결 풀링 연결 공유를 사용하여 열려 있는 데이터베이스 연결 수를 줄여 애플리케이션 성능 향상

l  데이터베이스가 애플리케이션 연결을 처리하기 위한 CPU 메모리 절약

l  데이터베이스 장애조치(failover) 같은 오류 시나리오 동안 애플리케이션 가용성을 개선

l  TLS/SSL AWS IAM 포함한 모든 RDS 보안 기능을 사용하여 애플리케이션 코드에서 데이터베이스 연결에 대한 자격증명 불필요

l  RDS Proxy에서 사용하는 리소스는 RDS 데이터베이스용으로 프로비저닝된 리소스와 독립적이므로 데이터베이스에 대한 추가 오버헤드를 발생시키지 않음

 

보안 측면에서 장점을 조금 설명하면, AWS Secrets Manager와도 작동한다. 이상 데이터베이스 자격 증명을 노출하거나 어떤 방식으로든 하드 코딩할 필요가 없다. 따라서 RDS Proxy Secrets Manager 함께 작동하도록 구성하면 엄격한 보안 정책을 시행할 있다. 예를 들어 TLS 활성화하려면 유효한 인증서를 AWS Certificate Manager 추가한 다음 이를 사용하도록 RDS 프록시를 구성하기만 하면 된다. 구성이 ssl-mode 지원하기 때문에 종단 통신에 SSL 사용을 시행하는 것도 편리하다.

 

 

RDS 프록시를 모니터링하는 방법으로는 Amazon CloudWatch 사용하여 모니터링할 있다. CloudWatch RDS 프록시와 통합되어 프록시의 성능과 동작을 이해하는 사용할 있는 유용한 지표를 제공한다. 아래 목록은 모니터링에 사용되는 주요 지표들이다.

l  DatabaseConnections: 백엔드 데이터베이스에 대한 데이터베이스 연결

l  DatabaseConnectionsCurrentlyBorrowed: 현재 애플리케이션에서 사용 중인 연결 . 지표에 대한 알림을 설정하여 빠르게 알림을 받을 있도록 한다.

l  DatabaseConnectionsCurrentlySessionPinned: 고정 상태의 연결 . 숫자는 RDS 프록시 성능을 최대화하려면 이상적으로는 가능한 낮아야 한다.

 

CloudWatch 사용한 RDS Proxy 모니터링에 관한 자세한 내용은 아래 링크를 참고 한다.

l  Monitoring RDS Proxy metrics with Amazon CloudWatch : https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-proxy.monitoring.html

 

 

RDS 프록시에 대한 가지 주요 제한 사항으로는 아래와 같이 정리할 있다.

l  RDS 프록시는 데이터베이스 인스턴스와 동일한 VPC 있어야 한다. 데이터베이스 인스턴스가 있는 경우에도 프록시에 공개적으로 액세스할 없다.

l  RDS 프록시는 자체 관리형 EC2 인스턴스 기반 데이터베이스와 함께 사용할 없다.

l  RDS 프록시는 아직 Aurora Serverless 사용할 없다. 현재  Aurora MySQL, Aurora PostgreSQL, RDS MySQL, RDS PostgreSQL 에서 사용할 있다.

l  프록시는 1개의 데이터베이스 인스턴스에만 연결할 있다.

 

RDS Proxy 구성하는 방법으로는 아래 링크를 참고하여 실습할 있다.

l  AWS RDS Proxy 사용한 공유 데이터베이스 연결 설정 : https://aws.amazon.com/ko/getting-started/hands-on/set-up-shared-database-connection-amazon-rds-proxy/

 

 

[참고자료]

l  https://aws.amazon.com/ko/getting-started/hands-on/set-up-shared-database-connection-amazon-rds-proxy/

l  https://aws.amazon.com/rds/proxy/

l  https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-proxy.html

 

 

 

2022-03-23 / Sungwook Kang / http://sungwookkang.com

 

 

AWS RDS, RDS Proxy, 아마존 프록시, DB Pooling, DB Connection

[AWS RDS] Modify RDS instance type

-          AWS RDS 인스턴스 타입 변경 (업그레이드 또는 다운그레이드)

 

l  Version : Amazon RDS

 

AWS RDS 환경에서는 운영중인 RDS 인스턴스의 용량 증설 감소(Scale-Up / Scale-Down) 작업을 Management Console 통해서 매우 간단하게 변경할 있다. 아래 순서에 따라 인스턴스를 변경할 있다.

1.       변경할 인스턴스를 선택하고 Modify버튼을 클릭한다.

 

2.       DB Instance size 항목에서 변경할 인스턴스 타입을 선택 한다. 글에서는 db.r5.large 인스턴스를 db.t3.medium으로 다운그레이드 한다.

 

3. 아래 위치한 Continue 버튼을 클릭한다.

4. 변경하려는 인스턴스 타입을 다시 한번 확인하고, Scheduling of modifications 항목에서 정해진 시간에 수정사항을 적용할 것인지, 아니면 즉시 적용할 것인지 선택 한다. 글에서는 즉시 변경 (Apply immediately) 선택한다.

 

 

5. 인스턴스가 수정되고 있는 상황을 확인할 있다.

 

즉시 변경을 선택하였더라도 인스턴스의 종류, 백업할 데이터 양에 따라 수초에서 수분이 걸릴 있다. 따라서 일정 시간 다운타임이 발생한다. 하지만 이러한 다운타임은 예방하기 위해서는 데이터베이스를 이중화 구성하여 롤링 업그레이드 방식을 통해서 하나씩 업그레이드 하면서 failover 역할을 변경하면 다운타임을 예방할 있다.

높은 성능의 인스턴스에서 낮은 성능의 인스턴스로 변경할 간혹 아래와 같은 오류가 발생할 있다.

 

이때에는 Performance Insights 항목에서 Enable Performance Insights 항목을 선택해제하고, 적용한 인스턴스 타입을 변경할 있도록 한다. 이번 실습에서 db.r5.large에서 db.t3.medium으로 먼저 선택하면 해당 항목이 숨겨져서 보이지 않게 되는데, 실제 변경시에는 오류를 반환한다.

 

 

[참고자료]

l  https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Enabling.html

 

2022-03-23 / Sungwook Kang / http://sungwookkang.com

 

 

AWS RDS, SQL Server, RDS 인스턴스 타입 변경, Modify RDS Instance type

[AWS RDS] Modify RDS SQL Server Standard Edition to Enterprise Edition

-          AWS RDS SQL Server 스탠다드 에디션에서 엔터프라이즈 에디션으로 변경

 

l  Version : Amazon RDS for SQL Server

 

Microsoft SQL Server 다양한 버전으로 제공되며 버전은 고유한 기능, 성능 가격 옵션을 제공한다. 설치하는 버전도 특정 요구사항에 따라 다르다. 일부 고객은 높은 메모리와 고가용성 기능을 활용하기 위해 SQL Server Amazon RDS Standard Edition에서 Amazon RDS Enterprise Edition으로 변경을 원할 있다. 이번 글은 RDS SQL Server 스탠다드 에디션에서 RDS SQL Server 엔터프라이즈 에디션으로 업그레이드 하는 방법에 대해서 살펴 본다.

 

업그레이드를 위해서 작업자는 아래의 권한을 가지고 있어야 한다.

l  Amazon RDS for SQL Server

l  AWS Management Console 접근 권한

l  SQL Server Management Studio

 

업그레이드 프로세스는 아래와 같은 단계가 포함된다.

l  기존 RDS SQL Server Standard Edition 인스턴스의 스냅샷 생성

l  스냅샷을 RDS SQL Server Enterprise Edition으로 복원

l  RDS SQL Server Enterprise 인스턴스 확인

 

먼저 콘솔을 통해 SQL Server RDS 버전을 수정하는 방법을 안내한다. 기존 RDS for SQL Server 인스턴스의 스냅샷을 만든 다음 다른 버전의 SQL Server 복원한다. SQL Server Management Studio에서 RDS 버전을 확인할 있다.

1.        Amazon RDS 콘솔에서 데이터베이스를 선택

2.        데이터베이스를 선택하고 작업 메뉴에서 스냅샷 생성을 선택

3.        스냅샷 이름을 입력, 스냅샷을 생성

4.        스냅샷 페이지에서 스냅샷이 성공적으로 생성되었는지 확인하고 상태가 사용 가능한지 확인

5.        스냅샷을 선택하고 작업 메뉴에서 스냅샷 복원을 선택

6.        DB 사양에서 SQL Server 버전(SQL Server Enterprise Edition) 선택

7.        DB 인스턴스 식별자에 인스턴스 이름을 입력

8.        인스턴스 클래스를 선택

9.        DB 인스턴스 복원 선택

10.    데이터베이스 복원 진행

11.    데이터베이스가 복원된 SQL Server 버전 확인

 

AWS CLI 통해서도 SQL Server RDS 인스턴스를 업그레이드 있다.  아래 스크립트를 실행하여 DB 스냅샷을 생성한다.

aws rds create-db-snapshot ^
db-instance-identifier mydbinstance ^
db-snapshot-identifier mydbsnapshot

 

아래 스크립트를 실행하여 스냅샷에서 데이터베이스를 복원한다.

aws rds restore-db-instance-from-db-snapshot ^
db-instance-identifier mynewdbinstance ^
db-snapshot-identifier mydbsnapshot^
engine sqlserver-ee

 

업그레이드가 완료되면 향후 비용이 발생하지 않도록 기존 RDS Standard Edition 삭제 하도록 한다.

 

[참고자료]

l  https://dataintegration.info/modify-an-amazon-rds-for-sql-server-instance-from-standard-edition-to-enterprise-edition

 

 

2022-03-21 / Sungwook Kang / http://sungwookkang.com

 

 

AWS RDS, SQL Server, AWS SQL Server, Modify SQL Server Edition, 에디션 변경

'AWS' 카테고리의 다른 글

[AWS RDS] RDS Proxy  (0) 2022.03.23
[AWS RDS] Modify RDS instance type  (0) 2022.03.23
[AWS Aurora] Aurora I/O Planning  (0) 2022.03.20
[AWS Aurora] Aurora Storage Engine  (0) 2022.03.19
[AWS RDS MySQL] RDS MySQL와 Aurora MySQL 차이점  (0) 2022.03.18

+ Recent posts