© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Unboxing 온라인 세미나
윤석찬
AWS 테크에반젤리스트
Amazon RDS Proxy
완전 관리형 고가용성 데이터베이스 프록시 서비스
클라우드 네이티브 기반 애플리케이션의 DB 연결
AWS Cloud
AWSLambda
User
HTTP
Amazon RDS
Amazon
EC2
Amazon Elastic Container
Service (ECS)
SQL
클라우드 네이티브 기반 애플리케이션의 DB 연결
AWS Cloud
AWSLambda
HTTP
Amazon RDS
Amazon
EC2
Amazon Elastic
Container Service
SQL
Users
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
클라우드 네이티브 기반 애플리케이션의 DB 연결
AWS Cloud
AWS Lambda
HTTP
Amazon
EC2
Amazon Elastic
Container Service
Users
Amazon
ElastiCache
Connection Pool
Amazon RDS
SQL
클라우드 네이티브 기반 현대적 앱의 문제점
수천 개의 DB
연결이 있어 DB
리소스 소모
사용자 지정 오류 처리 :
코드에 DB 자격 증명과
같은 보안 위험 포함 가능
자체 DB 프록시 서버는
DB 부하 관리에 도움 되나
배포의 어려움
서버리스 앱을 포함한 많은 애플리케이션이 많은 수의 DB 연결과 연결/닫기 빈도
증가로 DB 자원을 소모할 수 있음
Amazon RDS Proxy
Amazon RDS를위한 완전 관리형 고가용성 데이터베이스 프록시 서비스
DB Pool 및 공유 DB 연결을 통해 확장성, DB 장애 탄력성 및 보안성 향상
향상된 앱 확장을위한
풀 및 공유 DB 연결
DB와 호환되는 완전
관리 형 DB 프록시
RDS Proxy 지원 엔진
• RDS/Aurora MySQL 5.6 / 5.7
• RDS/Aurora PostgreSQL 10.11/ 11.5.
Amazon RDS Proxy ­ 동작 방법
SQL / TLS
RDS Proxy ­ Connection pooling
RDSProxy
Connection pooling
RDS Proxy ­ 원활하고 빠른 장애 조치
Fast, seamless failover
RDSProxy
• 장애 조치 동안 애플리케이션 연결 유지
• DNS 캐시를 무시하고 장애 조치를 감지하고 스탠바이
서버에 빠르게 연결
• 최대 66 % 빠른 장애 조치 시간
RDS Proxy ­ 높은 애플리케이션 보안
• 관계형 데이터베이스 기반 AWS IAM 인증 시행
• AWS Secrets Manager를 사용하여 DB 자격 증명을 중앙에서 관리
AWS Lambda
AWS Secret ManagerAWS IAM
Amazon RDS
RDSProxy
RDS Proxy ­ 높은 애플리케이션 보안
const signer = new AWS.RDS.Signer({
username: process.env.username, hostname:
process.env.endpoint, region: 'us-east-2', port: 3306})
const token = await signer.getAuthToken()
const connection = mysql.createConnection({
host: process.env.endpoint, user: process.env.username,
password: token, database: process.env.database, })
connection.connect()
// 암호 불필요!
RDS Proxy ­ CloudWatch 메트릭 및 로깅
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
• ClientConnections
• QueryRequests
• DatabaseConnections
주요 메트릭 로그 그룹 내에서 모니터링
• /aws/rds/proxy/[proxy-name]
Serverless LAMP Stack
https://github.com/aws-samples/php-examples-for-aws-lambda
Serverless LAMP Stack
https://aws.amazon.com/blogs/compute/introducing-the-
serverless-lamp-stack-part-2-relational-databases/
Serverless LAMP Stack
https://github.com/aws-samples/php-examples-for-aws-
lambda/tree/master/0.2-Relational-Database-RDS-Proxy-Example
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Unboxing 온라인 세미나
참여해 주셔서 감사합니다!

Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나

  • 1.
    © 2020, AmazonWeb Services, Inc. or its Affiliates. All rights reserved. AWS Unboxing 온라인 세미나 윤석찬 AWS 테크에반젤리스트 Amazon RDS Proxy 완전 관리형 고가용성 데이터베이스 프록시 서비스
  • 2.
    클라우드 네이티브 기반애플리케이션의 DB 연결 AWS Cloud AWSLambda User HTTP Amazon RDS Amazon EC2 Amazon Elastic Container Service (ECS) SQL
  • 3.
    클라우드 네이티브 기반애플리케이션의 DB 연결 AWS Cloud AWSLambda HTTP Amazon RDS Amazon EC2 Amazon Elastic Container Service SQL Users
  • 4.
    © 2019, AmazonWeb Services, Inc. or its Affiliates. All rights reserved. 클라우드 네이티브 기반 애플리케이션의 DB 연결 AWS Cloud AWS Lambda HTTP Amazon EC2 Amazon Elastic Container Service Users Amazon ElastiCache Connection Pool Amazon RDS SQL
  • 5.
    클라우드 네이티브 기반현대적 앱의 문제점 수천 개의 DB 연결이 있어 DB 리소스 소모 사용자 지정 오류 처리 : 코드에 DB 자격 증명과 같은 보안 위험 포함 가능 자체 DB 프록시 서버는 DB 부하 관리에 도움 되나 배포의 어려움 서버리스 앱을 포함한 많은 애플리케이션이 많은 수의 DB 연결과 연결/닫기 빈도 증가로 DB 자원을 소모할 수 있음
  • 6.
    Amazon RDS Proxy AmazonRDS를위한 완전 관리형 고가용성 데이터베이스 프록시 서비스 DB Pool 및 공유 DB 연결을 통해 확장성, DB 장애 탄력성 및 보안성 향상 향상된 앱 확장을위한 풀 및 공유 DB 연결 DB와 호환되는 완전 관리 형 DB 프록시 RDS Proxy 지원 엔진 • RDS/Aurora MySQL 5.6 / 5.7 • RDS/Aurora PostgreSQL 10.11/ 11.5.
  • 7.
    Amazon RDS Proxy­ 동작 방법 SQL / TLS
  • 8.
    RDS Proxy ­Connection pooling RDSProxy Connection pooling
  • 9.
    RDS Proxy ­원활하고 빠른 장애 조치 Fast, seamless failover RDSProxy • 장애 조치 동안 애플리케이션 연결 유지 • DNS 캐시를 무시하고 장애 조치를 감지하고 스탠바이 서버에 빠르게 연결 • 최대 66 % 빠른 장애 조치 시간
  • 10.
    RDS Proxy ­높은 애플리케이션 보안 • 관계형 데이터베이스 기반 AWS IAM 인증 시행 • AWS Secrets Manager를 사용하여 DB 자격 증명을 중앙에서 관리 AWS Lambda AWS Secret ManagerAWS IAM Amazon RDS RDSProxy
  • 11.
    RDS Proxy ­높은 애플리케이션 보안 const signer = new AWS.RDS.Signer({ username: process.env.username, hostname: process.env.endpoint, region: 'us-east-2', port: 3306}) const token = await signer.getAuthToken() const connection = mysql.createConnection({ host: process.env.endpoint, user: process.env.username, password: token, database: process.env.database, }) connection.connect() // 암호 불필요!
  • 12.
    RDS Proxy ­CloudWatch 메트릭 및 로깅 © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. • ClientConnections • QueryRequests • DatabaseConnections 주요 메트릭 로그 그룹 내에서 모니터링 • /aws/rds/proxy/[proxy-name]
  • 14.
  • 15.
  • 16.
  • 17.
    © 2020, AmazonWeb Services, Inc. or its Affiliates. All rights reserved. AWS Unboxing 온라인 세미나 참여해 주셔서 감사합니다!