분류 전체보기 138

Amazon CloudWatch Logs: 애플리케이션 로그 수집과 활용

# Amazon CloudWatch Logs 실행되는 애플리케이션에 대한 서버들의 작업 내역을 로그라고 하고, 이러한 로그 파일들을 수집하는 역할을 수행하는 서비스가 CloudWatch Logs이다. 수집된 로그 파일은 사용자가 트러블 슈팅을 수행하는 등의 경우, 로그 파일을 확인하며 애플리케이션의 작업이나 설명을 살펴보는데 사용될 수 있다. CloudWatch는 Elastic Beanstalk, ECS, 람다, CloudTrail, CloudWatch Log Agents 등을 통해 로그를 수집할 수 있다. 특히 로그 에이전트를 EC2 머신이나 온프레미스 서버에 설치하면, 해당 서버에서 AWS로 직접 로그를 가져올 수도 있다. 이렇게 수집한 로그를 활용하여 CloudWatch Logs에서 로그에 대한..

AWS 2025.04.19

Amazon CloudWatch 경보: 리소스 모니터링과 자동 알림을 위한 도구

Amazon CloudWatch를 사용하면 리소스의 여러 지표들을 확인할 수 있다. 단순히 지표를 확인하는 것을 넘어, 지표가 원하는 수치를 넘어서거나 근접하고 있을 때 자동으로 알람을 보내주는 기능이 있다면 훨씬 유용할 것이다. 이를 제공하는 것이 CloudWatch Alarms이다. # CloudWatch 경보 지표에 대한 알림을 트리거 할 때 CloudWatch 경보가 사용된다. 사용자가 설정한 임계값을 지표가 넘어갈 때 CloudWatch에서 경보를 보내주는 것. 아래와 같은 경우에 경보를 보낼 수 있다. 오토 스케일링 그룹: 원하는 만큼 EC2 인스턴스의 수를 늘리거나 줄여서 자동 스케일링이 가능하도록 하는 오토 스케일링 작업예를 들어, EC2 인스턴스의 사용률이 90%가 넘을 경우 문제가..

AWS 2025.04.18

검색 시스템 개선을 위한 Elasticsearch 도입기

🏛️ 도입 배경가게 검색 기능은 우리 서비스에서 핵심 기능 중 하나이며, 초기에는 JPA를 사용해 RDS에서 검색 기능을 구현했지만 다음과 같은 한계가 있었습니다: 🛠️ JPA 검색의 한계와 문제점LIKE 조건 기반 검색은 정확도와 유연성이 낮음검색 조건이 많아질수록 쿼리 메서드의 복잡도 증가 및 검색 로직의 확장성 부족 문제 발생기본 검색 조건만으로도 파라미터가 많아져 **파라미터 객체화(@ModelAttribute)**로 구조를 정리했지만, 이는 구조 문제 해결일 뿐 검색 최적화와는 무관데이터가 많아지면 쿼리 응답 속도가 느려질 가능성 🆚 DB 인덱스 vs Elasticsearch vs OpenSearch기준DB 인덱스 최적화ElasticsearchOpenSearch한국어 지원기본 SQL LIK..

카테고리 없음 2025.04.17

CloudWatch Metrics로 AWS 리소스 모니터링

# CloudWatch Metrics CloudWatch는 AWS 내 모든 서비스에 대한 지표를 제공하는 서비스이다. 🤔 Metrics란? Metrics, 즉 지표란 모니터링 대상이 되는 변수이다. 예를 들어 CPU, 메모리 사용량 등등..! 지표는 시간에 대한 내용을 포함하며, 타임스탬프를 갖는다. CloudWatch에서 제공하는 지표들을 한 눈에 시각화할 수 있도록 지표 대시보드를 생성할 수도 있다. 예를 들어, CloudWatch로 과금 지표(Billing metric)를 확인할 수 있다. 해당 지표는 us-east-1에서만 제공하는 지표이며, 예시 사진처럼 지불한 전체 금액을 확인할 수 있다. 시간이 흐름에 따라 지표가 점점 증가했다가 매월 말에 0으로 초기화되는 것 또한 확인할 수 ..

AWS 2025.04.16

Amazon MQ: 클라우드 전환을 위한 메시지 브로커

# Amazon MQ SQS와 SNS는 AWS에서 만든 독접 프로토콜로 클라우드 네이티브 서비스이고, 자체 API 세트를 사용한다. 반면 온프레미스로 기존 애플리케이션을 실행하는 경우 개방형 프로토콜을 사용한다. 만약 클라우드로 애플리케이션을 마이그레이션할 일이 있을 때, SQS와 SNS 프로토콜(자체 API)을 사용하려고 애플리케이션을 변경할 필요 없이, 기존 프로토콜을 사용하는 편이 훨씬 편리할 것이다. 이때 사용할 수 있는 것이 Amazon MQ이다. Amazon MQ는 RabbitMQ와 ActiveMQ를 지원하는 관리형 메시지 브로커 서비스이다. 이 두가지는 앞서 얘기한 개방형 프로토콜에 액세스 권한을 제공하는 온프레미스 기술로, Amazon MQ를 사용하면 클라우드에 브로커를 관리형 버전으..

AWS 2025.04.15

Amazon SNS: Pub/Sub 패턴으로 서비스 분리

# Amazon SNS Simple Notification Service, SNS도 비동기 방식의 통신을 지원하며 애플리케이션을 분리하도록 돕는 서비스 중 하나이다.  이벤트 게시자는 하나의 SNS topic으로 메시지를 보내고, SNS topic은 알림을 전달받을 구독자를 얼마든지 가질 수 있다. 주제를 구독하는 각각의 구독자들은 모든 메시지를 받을 수 있다. SQS에서는 컨슈머들이 대기열의 메시지를 공유하여 폴링해왔던 방식이라면, SNS에서는 Publisher가 메시지를 Subscribers에게 직접 보낸다고 이해할 수 있다.  SNS가 보내는 알림은 SQS, 람다, Kinesis, 이메일, 모바일 알림, HTTP(S) 엔드포인트 등등으로 전해질 수 있다.     하나의 메시지를 다수의 수신자에게 보..

AWS 2025.04.14

Kinesis란? 실시간 데이터 처리 서비스 정리

# Kinesis Kinesis는 실시간 빅데이터 스트리밍 서비스이다. 관리형 서비스로, 대규모로 실시간 스트리밍 데이터를 수집/처리/분석하는데 사용할 수 있다.    Kinesis는 네 가지 주요 구성 요소로 이루어져 있다:   1. Kinesis Data Stream: 수백에서 수천 개의 소스(예: 트럭, 선박, IoT 기기 등)에서 발생하는 대규모 데이터를 매우 짧은 지연 시간으로 실시간 수집할 수 있는 서비스이다. 수집된 데이터는 분석 또는 후속 처리에 사용될 수 있다.  2. Kinesis Data Firehose: 스트리밍 데이터를 자동으로 S3, Redshift, Elasticsearch 등으로 전송해주는 서비스이다. 별도의 데이터 버퍼링 없이도 실시간으로 데이터를 저장소에 저장할 수 있어 ..

AWS 2025.04.13

Amazon SQS란? 비동기 통신과 큐 개념 정리

# Amazon SQS SQS는 Simple Queue Service로, 비동기 통신 방식으로 애플리케이션을 분리할 수 있게 하는 서비스이다.  🧐 Queue란 뭘까? Queue는 메시지가 쌓여있는 대기열이라고 생각하면 된다.    하나 또는 여러개의 프로듀서는 메시지를 만들고 SQS 대기열로 메시지를 전송할 수 있다. 전송된 메시지는 Queue에 쌓인다.  Queue에 저장된 메시지는 컨슈머가 폴링하여 읽을 수 있다. 컨슈머 또한 하나이거나 여러 개일 수도 있다.    🧐 Polling이란?   폴링은 메시지를 읽는 방식 중 하나로, 컨슈머가 직접 메시지를 가져오는 방식이다. 컨슈머는 SQS에 저장된 메시지를 폴링해오는데, 저장된 메시지가 없을 때에 폴링을 하면 빈 데이터를 가져오게 된다. SQS에..

AWS 2025.04.12

동기와 비동기의 차이점, 쉽게 이해하기

🆚 동기와 비동기 여러 애플리케이션이 서로 통신해야 할 때 두가지 패턴 타입을 사용할 수 있다.   1. 동기식 통신 동기식 통신은 애플리케이션끼리 직접 요청을 주고 받는 것이다.    구매하는 서비스를 만들었고, 이것을 판매한 물품을 배송하는 서비스에 연결해야 하는 상황을 생각해보자. 이때 구매 서비스와 배송 서비스가 서로 직접 요청을 주고 받으니, 두 서비스를 동시에 통합해야 할 것이다. 서로 직접 연결되어 요청을 주고 받는 이러한 경우가 비동기이다.  동기식 통신에는 문제점이 있다. 예를 들어 트래픽이 갑자기 치솟는 경우, 서비스가 과중되며 요청 처리를 실패할 수 있다. 이러한 한계를 극복할 수 있는 방법이 비동기식 통신이다.   2. 비동기식 통신 비동기식은 이벤트 기반이라고도 한다. 애플리케이..

AWS 2025.04.11

글로벌 앱 설계 - 리전과 AZ 활용 전략

# 글로벌 애플리케이션 아키텍처 하나의 리전, 하나의 가용영역  하나의 리전에 하나의 AZ에 EC2 인스턴스가 있는 경우가 있을 수 있다.  이 경우, 가용성이 높지 않을 것이고, 글로벌 지연 시간 또한 좋지 않을 것이다. 해당 리전에 장애가 발생한다거나, 멀리 떨어진 사용자가 접근할 때 문제가 발생할 수 있다.  설정 난이도는 매우 쉬운 수준인 아키텍처이다.    2. 하나의 리전에 여러 가용영역   위 사진처럼 하나의 리전에 2개의 가용영역이 있을 때, 고가용성을 가진다.  그러나 여전히 한 리전에만 존재하기 때문에 글로벌 지연 시간은 개선되지 않는다.   3. 액티브-패시브 다중 리전   액티브-패시브는 각각 액티브 리전과 패시브 리전이 있다는 걸 의미한다. 또 각 리전은 하나 이상의 가용영역을 가..

AWS 2025.04.10