Amazon Athena는 표준 SQL을 사용하여 Amazon S3에 있는 데이터를 직접 간편하게 분석할 수 있는 대화형 쿼리 서비스입니다. Athena는 S3에 저장된 비정형, 반정형 및 정형 데이터를 분석하는데 도움을 주며 인프라를 관리할 필요 없이 S3 데이터에 대해 대화형 쿼리를 쉽게 실행할 수 있습니다. AWS Glue Data Catalog 및 다른 AWS 서비스들과 통합되는 것 또한 장점입니다. 오늘은 S3에 있는 데이터로 Athena에서 Table을 생성하고, SQL로 몇 가지 쿼리를 실행해봅시다. 1. Table 생성 Amazon Athena 콘솔로 접속합니다. Create > S3 bucket data를 누릅니다. Table의 이름을 작성합니다. 새로운 Database를 생성하거나, G..
RDS Database에 접속할 때 암호를 사용해도 되지만, IAM 인증을 사용해도 됩니다. IAM 인증에서는 RDS가 생성하는 인증 토큰을 사용하며 각 토큰의 수명은 15분입니다. SSL 또는 TLS를 사용하여 DB 인스턴스에 대한 연결을 암호화합니다. 오늘은 EC2 Instance에서 RDS MySQL Instance로 IAM 인증을 사용하여 접속해봅시다. 1. 준비 RDS Database를 생성할 때나 Database Modify를 통해 IAM database authentication 옵션에 체크합니다. EC2와 연결되는 IAM Role에 다음과 같은 Policy가 있어야 합니다. { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "A..
Kinesis Data Stream으로 로그를 전송하는 기본적인 방법은 Kinesis Agent를 이용하는 것입니다. Kinesis Agent는 Kinesis Data Stream이나 Kinesis Data Firehose에 데이터를 전송할 수 있으며 CloudWatch Metrics로 지표도 보낼 수 있습니다. 1. 준비 Kinesis Data Stream 하나를 생성합니다. 데이터를 확인하기 위해 Kinesis Data Firehose까지 생성해도 좋습니다. 로그를 생성할 EC2 Instance(Amazon Linux) 하나를 생성합니다. EC2 Instance가 사용하는 IAM Role에 다음과 같은 Policy가 있어야 합니다. { "Version": "2012-10-17", "Statement"..
AWS Lambda는 많은 용도로 사용되며, 많은 기능이 있습니다. 그 중 Lambda Function URL 기능을 이용하면 Lambda 함수에 대한 전용 HTTPS 엔드포인트를 제공받을 수 있습니다. Function URL은 단일 기능 마이크로서비스를 구현해야 하는 양식 유효성 검사기, 모바일 결제 처리, 광고 배치 등에 적합합니다. Function URL을 CloudFront와 연결하면 가장 짧은 지연 시간을 제공하는 엣지 로케이션을 통해 서비스를 최적의 성능으로 제공할 수 있습니다. 오늘은 Lambda Function URL과 CloudFront를 연결해봅시다. 1. Lambda Create a function을 누릅니다. Function 이름을 입력하고, Runtime을 Python 3.11로 ..
Terraform의 Module은 함께 사용되는 여러 리소스에 대한 컨테이너로서 .tf 및 .tf.json 파일 등으로 구성됩니다. Module을 통해 리소스 구성을 패키징하고 재사용할 수 있습니다. 또한, Terraform Registry를 통하여 다른 사람이 게시한 Module도 사용할 수 있습니다. 오늘은 Terraform Registry에 게시된 Module 중 VPC Module을 사용해봅시다. 1. tf 파일 작성 작업 디렉토리 하나를 생성하고, 설정 파일(config.tf) 하나를 생성합니다. 설정 파일에서는 provider 정보를 명시합니다. terraform { required_providers { aws = { source = "hashicorp/aws" version = "~> 5.0..
웹서비스는 국내뿐만 아니라 해외에도 빠른 연결을 제공해야 합니다. 그러나 데이터를 보관하는 데이터베이스가 국내에만 있을 경우, 해외에서는 Read / Write가 느려질 것입니다. 이 문제를 해결하려면 다른 리전에도 Read Replica를 놓는 등의 조치를 해야합니다. 오늘은 2가지 방법을 통해 해외에도 빠른 Read / Write를 제공해봅시다. 0. 사전 준비 Seoul 리전과 Tokyo 리전에 2개의 public subnet, 2개의 private subnet을 가진 VPC가 생성되어야 합니다. 두 리전 모두 private subnet 2개를 포함하는 subnet group을 생성합니다. 다음 링크를 참고하여 Seoul 리전에 Aurora Database를 생성합니다. https://arcozz...
RDS의 DB 엔진으로 MySQL, PostgreSQL을 선택해도 되지만, 아마존이 클라우드에 최적화되게 개발하여 성능이 좋은 Aurora를 선택해도 됩니다. 오늘은 DB 엔진 Aurora에 대해 알아봅시다. 1. Aurora MySQL과 PostgreSQL에서 호환됩니다. 여러가지 최적화를 통해 RDS의 MySQL보다 5배 높은 성능, Postgres보다 3배 높은 성능을 가집니다. 자동으로 스토리지를 확장합니다. 10GB에서 시작하여 128TB까지 확장 가능합니다. CPU 96vCPU와 메모리 768GB까지 증가 가능합니다. 최대 15개의 Read Replicas를 더 빠른 복제 속도로 생성 가능합니다. 즉각적인 장애 조치와 높은 가용성을 가지고 있습니다. RDS에 비해 약 20% 정도 높은 비용이지..
RDS Database의 고가용성을 위하여 Read Replicas와 Multi AZ 기능을 이용하는 것이 좋습니다. 오늘은 이 두 기능에 대해 알아봅시다. 1. Read Replicas Read(읽기)를 스케일링하여 DB의 부하를 분산시킵니다. MySQL, MariaDB, PostgreSQL DB 엔진은 최대 15개를 생성할 수 있습니다. Oracle, Microsoft SQL Server DB 엔진은 최대 5개를 생성할 수 있습니다. 동일한 가용 영역 또는 가용 영역이나 리전을 걸쳐서(Cross AZ, Cross Region) 생성이 가능합니다. DB Instance와 Read Replicas 간 비동기식(Async) 복제가 발생하여 Read가 일관적으로 유지됩니다. DB Instance로 승격시킬 ..