홍카나의 공부방

[AWS] Amazon Aurora 정리 본문

Cloud Engineering/AWS

[AWS] Amazon Aurora 정리

홍문관카페나무 2024. 2. 12. 00:45

Amazon Aurora(오로라)

- AWS에서 자체적으로 구축한 RDBMS로, 오픈소스는 아니지만 Postgres와 MySQL과 호환된다.

( 즉, Aurora 데이터베이스에 호환되는 driver가 Postgres와 MySQL에서도 작동한다는 의미다. )

- MySQL는 5개이지만 Aurora는 15개의 읽기 전용 복제본(replica)을 둘 수 있으며, 복제 속도도 빠르다.

- 다른 RDS 보다 비용이 20% 높지만, 효율성은 그 이상의 값어치를 한다.

 

Aurora Docs : Diagram

 

- 오로라는 높은 가용성(High Availability)과 읽기 스케일링(Read Scaling)이라는 특징이 있다.

- 오로라는 write할 때마다 3개의 AZ에 걸쳐 6개의 사본(Data Copies)을 저장한다.

- 하나의 인스턴스만이 Master Instance 개념으로 Write 명령을 받게 되며, Master 인스턴스가 작동하지 않으면 30초 이내로 장애 조치가 시작된다. 마스터 외에는 15개의 읽기 전용 복제본(replica)을 둘 수 있다.

- 일부 데이터에 손상이 있으면, 백엔드 단에서 P2P 복구 과정을 진행한다.

- 단일 볼륨에 의존하지 않고, 수 백 개의 볼륨을 사용한다.

 

 

Aurora DB Cluster

 

Cluster 도식 // 출처 : https://adelachao.medium.com

 

- 기본적으로 클라이언트는 Writer Endpoint로 마스터 인스턴스에 접근한다.

- 마스터 인스턴스는 10기가부터 128테라까지 확장가능한 Cluster Volume에 Write하게 된다.

- Reader Endpoint는 모든 읽기 전용 복제본(Replica)에 자동으로 연결되며, 연결 단에서 로드 밸런싱의 역할을 수행한다.

- 즉, 읽기 작업을 여러 복제본에 분산시키며 성능을 향상시킨다.

- 읽기 전용 복제본들은 Auto Scaling이 지원된다.

 

 

Amazon Aurora ML

 

출처 : aws docs

 

- Amazon SageMaker, Amazon Comprehend와 연동되어 머신러닝 분석이 가능하다.

- 예를 들어서, 아래 쿼리처럼 제품 리뷰 테이블을 하나 만들고, 여기에 제품에 대한 리뷰 레코드들을 저장했다고 가정하자.

CREATE TABLE IF NOT EXISTS comments (
       comment_id INT AUTO_INCREMENT PRIMARY KEY,
       comment_text VARCHAR(255) NOT NULL
);

INSERT INTO comments (comment_text)
VALUES ("This is very useful, thank you for writing it!");
INSERT INTO comments (comment_text)
VALUES ("Awesome, I was waiting for this feature.");
INSERT INTO comments (comment_text)
VALUES ("An interesting write up, please add more details.");
INSERT INTO comments (comment_text)
VALUES ("I don’t like how this was implemented.");

 

- 해당 리뷰들을 감성 분석하기 위해서는, SQL 함수 중에서 aws_comprehend_detect_sentiment와 aws_comprehend_detect_sentiment_confidence를 사용할 수 있다.

SELECT comment_text,
       aws_comprehend_detect_sentiment(comment_text, 'en') AS sentiment,
       aws_comprehend_detect_sentiment_confidence(comment_text, 'en') AS confidence
  FROM comments;

Amazon Comprehend를 이용한 감성분석 결과

 

aws_comprehend_detect_sentiment 함수가 레코드 하나하나의 센티먼트(감성)가 긍정인지, 중립인지, 아니면 부정인지 classification하며, confidence로 해당 감성 분석의 신뢰도도 측정할 수 있다.

 

즉, Aurora를 이용하면 SQL 쿼리 만으로도 머신러닝 분석을 할 수 있다는 얘기다.

자세한 사항은 아래 공식 문서를 참고한다.

 

https://aws.amazon.com/ko/blogs/aws/new-for-amazon-aurora-use-machine-learning-directly-from-your-databases/

 

New for Amazon Aurora – Use Machine Learning Directly From Your Databases | Amazon Web Services

March 23, 2020: Post updated to clarify networking, IAM permissions, and database configurations required to use machine learning from Aurora databases. A new notebook using SageMaker Autopilot gives a complete example, from the set up of the model to

aws.amazon.com

 

반응형

'Cloud Engineering > AWS' 카테고리의 다른 글

[AWS] Lambda 기초  (0) 2024.02.28
[AWS] S3 객체 암호화  (0) 2024.02.21
[AWS] Route 53 CNAME vs Alias  (0) 2024.02.19
[AWS] EBS와 EFS의 차이점  (0) 2024.02.07
[AWS] EC2 Instance 유형  (0) 2024.02.05