AWS-(10)

지훈·2024년 4월 2일
0

AWS

목록 보기
10/12

🖼️SQS

SQS는 AWS에서 제공하는 서비스 중 하나로, 메시지 큐를 생성하여 프로듀서(생산자)가 메시지를 큐에 보내고 컨슈머(소비자)가 해당 메시지를 폴링 방식으로 읽어 처리할 수 있게 합니다. 이를 통해 프로듀서와 컨슈머 간의 분리(decoupling)가 가능하며, 이는 시스템의 확장성과 견고성을 향상시킵니다.

주요 포인트는 다음과 같습니다:

Amazon SQS의 역할: SQS는 애플리케이션 간 메시지를 전송하여 비동기 통신을 가능하게 하는 서비스입니다. 프로듀서는 메시지를 큐에 전송하고, 하나 이상의 컨슈머가 이를 폴링하여 처리합니다.

분리의 이점: SQS를 사용함으로써 프로듀서와 컨슈머 사이에 강한 결합이 제거되어, 각각 독립적으로 확장하고 관리할 수 있습니다. 이는 부하가 변동하는 상황에서도 시스템이 안정적으로 운영될 수 있게 돕습니다.

서버리스와 관리형 서비스: SQS는 서버를 직접 관리할 필요 없이 AWS가 전적으로 관리하는 서버리스 서비스입니다. 이는 운영 부담을 줄이고, 자동으로 확장할 수 있는 편리한 솔루션을 제공합니다.

메시지 유지 정책: SQS에서 메시지의 기본 보존 기간은 4일이며, 최대 14일까지 설정할 수 있습니다. 큐에 있는 메시지는 컨슈머가 처리하고 삭제하기 전까지 유지됩니다.

확장성: SQS는 초당 한 건의 메시지부터 초당 수천 건의 메시지까지 처리할 수 있도록 자동으로 확장됩니다.

응용 프로그램 아키텍처에의 적용: 웹 서버와 비디오 처리 레이어와 같은 애플리케이션 계층 간에 SQS를 사용하여 분리함으로써, 각 계층을 독립적으로 확장하고 관리할 수 있습니다. 이는 사용자 경험과 비용 효율성, 확장성 측면에서 이점을 제공합니다.

FIFO 큐: SQS에는 FIFO(First In First Out) 큐 옵션이 있어, 메시지를 보낸 순서대로 컨슈머가 처리할 수 있게 합니다. 이는 순서가 중요한 애플리케이션에서 유용합니다.

Amazon Kinesis

Amazon Kinesis는 실시간 대용량 데이터 스트리밍을 위한 관리형 서비스로, 어떤 규모의 데이터든지 수집, 처리, 분석할 수 있습니다.

SNS

Amazon SNS(Simple Notification Service)를 이용해 애플리케이션을 분리하는 두 번째 방법에 대해 알아봅시다. SNS는 하나의 메시지를 여러 수신자에게 보낼 수 있는 퍼블리시/구독(pub/sub) 모델을 제공합니다. 예를 들어, 구매 서비스가 SNS 주제(topic)로 메시지를 보내면, 이 주제는 자동으로 여러 구독자에게 알림을 보냅니다. 이 구독자에는 이메일을 통한 알림, 사기 방지 서비스, 배송 서비스, 그리고 SQS 큐가 포함될 수 있습니다.

특징들

단일 SNS 주제로 메시지 전송: 이벤트 publisher는 메시지를 단일 SNS 주제로만 보내며, 원하는 만큼의 구독자가 이 주제의 알림을 수신할 수 있습니다.

모든 구독자가 모든 메시지를 받음: SQS와 달리, SNS에서는 모든 구독자가 주제로 보낸 모든 메시지를 받습니다. 이는 일대다 통신에 적합합니다.

대규모 구독 가능: 각 SNS 주제는 주제당 1,200만 개 이상의 구독을 지원하며, 계정당 주제의 소프트 리밋은 10만 개입니다.

다양한 목적지 지원: SNS는 AWS 서비스(SQS, Lambda, Kinesis Data Firehose)뿐만 아니라 이메일, SMS 및 모바일 알림, HTTP/HTTPS 엔드포인트 등 다양한 구독자에게 직접 메시지를 보낼 수 있습니다.

Amazon MQ

Amazon MQ는 기존 애플리케이션을 클라우드로 이전할 때, SQS나 SNS와 같은 AWS 고유의 프로토콜이나 API를 사용하지 않고, MQTT, AMQP, STOMP, OpenWire, WSS와 같은 개방형 프로토콜을 계속 사용하고 싶을 때 유용한 서비스입니다. RabbitMQ와 ActiveMQ와 같은 기존의 메시지 브로커 기술에 대한 관리형 서비스를 제공함으로써, 이전의 기술 스택을 유지하면서도 클라우드의 이점을 누릴 수 있게 해줍니다.

주요 포인트는 다음과 같습니다:

개방형 프로토콜 지원: Amazon MQ는 MQTT, AMQP 등과 같은 다양한 개방형 메시징 프로토콜을 지원하여, 기존 애플리케이션의 클라우드 이전 시 재설계 없이 사용할 수 있게 해줍니다.

RabbitMQ와 ActiveMQ 지원: 이 두 기술은 기존 온프레미스 환경에서 널리 사용되는 메시지 브로커 기술로, Amazon MQ를 통해 클라우드에서 관리형 서비스로 사용할 수 있습니다.

확장성과 통합성의 차이: Amazon MQ는 SQS나 SNS처럼 무한 확장성을 제공하지 않으며, AWS 서비스와의 통합도 SQS나 SNS만큼 깊지 않습니다. 그러나 특정 개방형 프로토콜을 사용해야 하는 상황에서 필요한 선택지입니다.

고가용성을 위한 멀티-AZ 설정: Amazon MQ는 멀티-AZ 설정을 지원하여 고가용성을 제공하며, 서버 이슈에 대비한 장애 조치(failover) 기능을 포함합니다.

큐와 토픽 기능: SQS와 유사한 큐 기능과 SNS와 유사한 토픽 기능을 단일 브로커 내에서 제공합니다.

요약하자면, Amazon MQ는 클라우드로의 이전 과정에서 개방형 프로토콜을 사용하는 기존 애플리케이션을 위한 솔루션이며, 이런 특정 요구사항이 없다면 SQS나 SNS와 같은 더 확장성 높고 AWS와 깊게 통합된 서비스를 사용하는 것이 권장됩니다.


🌨️Cloud Watch/Alarms

CloudWatch Metrics

개요: AWS의 모든 서비스에 대해 메트릭(모니터링할 변수)을 제공합니다. 예를 들어, CPU 사용률이나 네트워크 입력량 같은 것이 메트릭에 해당합니다.

대시보드: 이러한 메트릭은 시간 경과에 따라 기록되며, CloudWatch 대시보드를 생성하여 모든 메트릭을 한눈에 볼 수 있습니다.

예시: 매월 말에 초기화되는 'Billing metric'은 AWS 클라우드에서 지출한 총 금액을 나타냅니다. 이외에도 EC2 인스턴스의 CPU 사용률, 상태 검사, 네트워크 트래픽 등 다양한 메트릭을 확인할 수 있습니다.

세부 모니터링: 기본적으로 5분마다 메트릭을 받지만, 더 자세한 모니터링을 활성화하면 매 분마다 메트릭을 받을 수 있습니다. 이는 추가 비용이 발생할 수 있습니다.
사용자 정의 메트릭: AWS에서 제공하지 않는 메트릭이 필요한 경우, 사용자 정의 메트릭을 직접 만들어 보낼 수 있습니다.

CloudWatch Alarms

기능: 특정 메트릭이 설정한 임계값을 초과하거나 미만일 때 알림을 트리거합니다.

액션: Auto Scaling 그룹 조정, EC2 인스턴스 작업(중지, 종료, 재부팅, 복구), SNS 주제로 알림 보내기 등 다양한 액션을 설정할 수 있습니다.

알람 설정: 알람을 생성할 때 다양한 옵션(샘플링, 백분율, 최대/최소 등)과 평가 주기(예: 5분, 10분, 1시간)를 선택할 수 있습니다.

알람 상태: OK(정상), INSUFFICIENT_DATA(데이터 부족), ALARM(알람) 등 알람 상태를 통해 시스템 상태를 확인할 수 있습니다.

이 섹션은 CloudWatch를 통해 AWS 클라우드의 성능을 모니터링하고, 필요한 경우 적절한 조치를 취할 수 있는 방법에 대한 기본적인 이해를 제공합니다.

🌥️CloudWatch Logs

Amazon CloudWatch Logs는 애플리케이션, 서버, AWS 서비스에서 생성된 로그 파일을 수집하고 모니터링하기 위한 서비스입니다. 이를 통해 사용자는 애플리케이션의 성능을 파악하고 문제 해결에 필요한 정보를 얻을 수 있습니다.

주요 기능

  • 로그 수집: Elastic Beanstalk, ECS, Lambda, CloudTrail 등 다양한 AWS 서비스 또는 EC2 인스턴스에서 생성된 로그를 수집합니다.

  • 실시간 모니터링: 수집된 로그를 실시간으로 모니터링하여 애플리케이션의 상태를 파악하고 문제를 신속하게 해결할 수 있습니다.

  • 로그 보존 기간 설정: 로그의 보존 기간을 사용자가 지정할 수 있어, 일주일, 30일, 1년, 또는 무한정으로 설정할 수 있습니다.

EC2 인스턴스에서의 CloudWatch Logs 사용 방법

  • 기본 설정: 기본적으로 EC2 인스턴스는 로그를 CloudWatch Logs로 자동 전송하지 않습니다.
  • CloudWatch Logs 에이전트 설치: EC2 인스턴스에 CloudWatch Logs 에이전트를 설치하고, 원하는 로그 파일을 CloudWatch Logs 서비스로 전송하도록 설정합니다.
  • IAM 권한: EC2 인스턴스가 CloudWatch Logs로 로그 데이터를 전송할 수 있도록 적절한 IAM 권한을 가진 인스턴스 역할을 설정해야 합니다.
  • 하이브리드 에이전트: 이 에이전트는 AWS 내부 뿐만 아니라 온프레미스 서버에서도 작동하여, 다양한 환경의 로그를 CloudWatch Logs로 직접 전송할 수 있습니다.

CloudWatch Logs를 통해 애플리케이션 및 서버의 로그 데이터를 중앙 집중적으로 관리하고 모니터링함으로써, 애플리케이션의 성능을 개선하고 문제를 빠르게 진단할 수 있습니다

🌉Amazon EventBridge

Amazon EventBridge는 AWS 계정 내부에서 발생하는 이벤트에 반응할 수 있게 해주는 서비스로, 과거에는 CloudWatch Events로 불렸습니다. 이벤트 기반의 아키텍처를 구축할 때 특히 유용하며, 다양한 AWS 서비스와 외부 애플리케이션 이벤트를 처리하는 데 사용됩니다.

🔩주요 사용 사례 및 기능

✅서버리스 크론 작업: 정기적으로 스크립트를 실행하고자 할 때, 예를 들어 매시간 람다 함수를 트리거하는 규칙을 설정할 수 있습니다.

✅보안 알림: 루트 사용자 로그인과 같은 보안 관련 이벤트에 대해 알림을 설정하여, 보안 팀이 즉각적으로 대응할 수 있도록 합니다.

✅다양한 이벤트 소스와 목적지: EventBridge는 EC2, CodeBuild, S3, Trusted Advisor 등 다양한 AWS 서비스 이벤트를 소스로 사용할 수 있으며, 람다 함수, SNS, SQS 등으로 이벤트를 전송할 수 있습니다.

✅파트너 및 사용자 지정 이벤트 버스: AWS의 파트너사에서 발생하는 이벤트 또는 사용자 지정 애플리케이션에서 생성된 이벤트를 처리할 수 있습니다.

✅스키마 레지스트리: 이벤트 스키마를 모델링하고, 이벤트 데이터 타입 등을 파악할 수 있습니다.

✅이벤트 아카이브 및 재생: 이벤트 버스로 전송된 모든 이벤트를 아카이브하고, 필요시에 이를 재생할 수 있습니다.

Amazon EventBridge를 사용하면 AWS 내부 서비스 뿐만 아니라 외부 파트너 및 사용자 지정 애플리케이션에서 발생하는 이벤트에 대해 유연하게 대응하고, 다양한 반응을 구현할 수 있습니다.

🌃AWS CloudTrail

AWS CloudTrail은 AWS 계정의 관리, 규정 준수, 감사를 제공하는 서비스입니다. CloudTrail은 기본적으로 활성화되어 있으며, AWS 계정 내에서 발생하는 모든 API 호출과 이벤트의 기록을 유지합니다. 이 기능은 AWS 콘솔 로그인, SDK 사용, 커맨드 라인 인터페이스를 통한 명령 실행 등 모든 활동이 CloudTrail에 로깅되므로 매우 중요합니다.

주요 특징 및 기능

모든 리전 모니터링: CloudTrail은 모든 AWS 리전에서 발생하는 활동을 모니터링할 수 있으며, 생성된 트레일은 CloudWatch Logs 또는 Amazon S3로 보낼 수 있습니다.

보안 및 감사: 사용자가 수행한 활동, 삭제된 리소스, API 호출 등에 대한 상세한 정보를 제공하여 보안 감사 및 문제 해결에 필수적입니다.

로그 장기 보존: CloudTrail 로그를 CloudWatch Logs 또는 Amazon S3에 보내어 장기간 보존할 수 있습니다. 이를 통해 장기간에 걸친 감사 및 분석이 가능합니다.

사용 사례

감사 및 규정 준수: CloudTrail은 기업이 AWS 환경 내에서 규정 준수 요구 사항을 충족하고 보안 감사를 실시하는 데 도움을 줍니다.

보안 모니터링: 비정상적인 API 활동 감지를 통해 보안 위협을 식별하고 대응할 수 있습니다.

문제 해결: 시스템 오류 또는 장애 발생 시 CloudTrail 로그를 분석하여 원인을 파악하고 해결할 수 있습니다.

CloudTrail은 AWS에서 제공하는 강력한 도구로, AWS 리소스 사용에 대한 심층적인 가시성과 통찰력을 제공하며, 보안 및 감사 과정에서 중요한 역할을 합니다. CloudTrail을 통해 사용자와 시스템 활동을 체계적으로 추적하고 관리할 수 있습니다.

AWS X-Ray

WS X-Ray는 분산 애플리케이션의 디버깅과 성능 분석, 문제 해결을 돕는 서비스입니다. 특히 분산 서비스 아키텍처에서 여러 서비스와 애플리케이션 간의 상호작용을 시각적으로 분석하고 추적할 수 있게 해줍니다.

AWS X-Ray의 주요 기능 및 이점

  • 트레이싱 및 시각적 분석: X-Ray를 활성화하면, 각 서비스의 동작 과정을 추적하고 시각화할 수 있습니다. 이를 통해 서비스의 성능 문제, 실패 지점을 파악하고, 요청 처리 과정을 명확히 이해할 수 있습니다.

  • 성능 문제 해결: 애플리케이션 내 성능 병목 현상을 식별하고, 문제를 해결하는 데 도움을 줍니다.

  • 마이크로서비스 아키텍처 이해: 분산 서비스가 어떻게 연결되어 있는지, 의존성이 어떻게 구성되어 있는지 분석합니다.

  • 서비스 이슈 pinpointing: 특정 요청이나 서비스의 오류 및 예외 사항을 파악하고, 문제의 근원을 정확히 짚어낼 수 있습니다.

  • SLA 준수 여부 확인: 서비스 수준 협약(SLA)을 만족하는지, 요청에 대한 응답 시간이 기준을 충족하는지 확인합니다.

  • 서비스의 지연 문제 분석: 시스템 내 어느 부분에서 처리 속도가 느려지는지, 서비스가 지연되는 지점을 식별합니다.

  • 영향 받는 사용자 식별: 장애나 서비스 지연이 사용자에게 미치는 영향을 파악합니다.

AWS X-Ray는 분산된 서비스 구조에서 복잡한 상호작용과 성능 문제를 해결하는 데 있어 매우 유용합니다. X-Ray를 통해 개발자와 운영 팀은 애플리케이션 전체에 대한 명확한 시각적 분석을 통해 문제를 빠르게 식별하고 해결할 수 있습니다.

Amazon Code Guru

Amazon CodeGuru는 기계 학습을 활용해 자동 코드 리뷰와 애플리케이션 성능 권장 사항을 제공하는 서비스입니다. 개발자가 코드를 작성하고 배포하는 과정에서 발생할 수 있는 버그나 성능 문제를 사전에 탐지하고 해결하는 데 도움을 줍니다.

주요 기능

CodeGuru Reviewer: 정적 코드 분석을 통해 자동 코드 리뷰를 수행합니다. 코드 커밋 시 발생할 수 있는 문제점들을 식별하고, 버그, 메모리 누수 등에 대한 실행 가능한 권장 사항을 제공합니다. 이는 주로 Java와 Python 언어를 지원하며, GitHub, Bitbucket, CodeCommit과 통합됩니다.

CodeGuru Profiler: 애플리케이션의 런타임 성능을 분석하여, 과도한 CPU 사용이나 메모리 점유 등의 비효율을 식별합니다. 이를 통해 애플리케이션의 성능을 개선하고, 컴퓨팅 비용을 절감할 수 있는 권장 사항을 제공합니다. AWS 클라우드 뿐만 아니라 온프레미스에서 실행되는 애플리케이션에도 사용할 수 있습니다.

이점

  • 버그 및 성능 문제 사전 탐지: CodeGuru는 개발 과정에서 발생할 수 있는 다양한 문제를 사전에 탐지하고 해결할 수 있도록 돕습니다.

  • 코드 품질 향상: 자동 리뷰와 성능 분석을 통해 코드의 품질을 지속적으로 개선할 수 있습니다.

  • 비용 절감: 애플리케이션의 성능을 최적화하여 AWS 사용 비용을 절감할 수 있습니다.

  • 개발 효율성 증대: 개발자는 CodeGuru가 제공하는 자동화된 피드백을 통해 더 효율적으로 코드를 개선할 수 있습니다.

CodeGuru는 AWS가 제공하는 강력한 도구로, 개발 과정에서의 효율성 증대와 운영 비용 절감에 큰 도움을 줍니다. 이 서비스를 이해하고 활용하면, 클라우드 환경에서의 애플리케이션 개발과 관리가 한층 수월해질 것입니다.

AWS Health Dashboard

AWS Health Dashboard는 AWS 서비스의 상태와 개인 계정의 건강 정보를 제공하는 데 사용됩니다. 서비스 이력은 모든 AWS 서비스와 리전에 대한 건강 상태를 일반적으로 보여주며, 계정 건강 대시보드는 사용자 계정에 직접적인 영향을 미치는 사건에 대한 경고와 해결 가이드를 제공합니다. 사용자는 계획된 유지 관리 활동에 대한 알림을 받을 수 있으며, AWS 조직 전체의 데이터를 한눈에 볼 수 있습니다. 이러한 정보는 AWS 환경의 성능 모니터링, 문제 해결 및 운영 효율성을 높이는 데 중요합니다.


  1. CloudWatch Logs can collect and real-time monitor logs, but it is not the first service you should look into if a resource is deleted.

  2. CloudTrail can record the history of events/API calls made within you AWS account, which will help determine who or what deleted the resource. You should investigate it first.

0개의 댓글

관련 채용 정보