AWS

[AWS] CloudTrail, CloudWatch, Lambda, SNS, SQS

박경태 2024. 4. 21. 21:25

AWS CloudTrail

AWS 계정에서 수행되는 작업을 모니터링하고 로깅하는 서비스.

이를 통해 AWS 리소스의 사용, 변경 및 액세스를 추적하고 감사할 수 있음.

AWS CloudTrail은 AWS 환경에서 보안, 감사 및 규정 준수 요구 사항을 충족하기 위한 중요한 도구임.

이를 통해 조직은 AWS 리소스의 활동을 추적하고 모니터링하여 보안 위협을 식별하고 대응할 수 있음.

 

AWS CloudTrail에 대한 설명

1. 로그 기록

AWS CloudTrail은 다양한 AWS 서비스에 대한 활동을 기록함.

이러한 활동에는 관리 콘솔, AWS CLI, AWS SDK를 통한 API 호출 등이 포함됨.

 

2. 활동 추적

CloudTrail은 각 활동에 대한 세부 정보를 기록함.

이 정보에는 작업을 수행한 사용자, 작업의 일시 및 위치, 수행된 API 호출 등이 포함됨.

 

3. 보안 및 규정 준수

CloudTrail은 보안 감사 및 규정 준수를 위한 중요한 도구임.

이를 통해 AWS 리소스의 액세스 및 변경 사항을 모니터링하고 감사할 수 있으며, 보안 사건에 대한 대응 및 조사를 지원함.

 

4. 감사 및 규정 준수 검토

CloudTrail 로그는 감사 및 규정 준수 검토에 사용될 수 있음.

이를 통해 조직은 AWS 리소스의 사용을 추적하고 이에 대한 적절한 조치를 취할 수 있음.

 

5. 기업 보안 분석

CloudTrail 로그는 기업 보안 분석에 사용될 수 있음.

이를 통해 보안 이벤트를 감지하고 조직의 보안 상태를 평가할 수 있음.

 

6. 로그 보존

CloudTrail 로그는 기본적으로 S3 버킷에 저장됨.

이를 통해 보안 이벤트를 감지하고 조직의 보안 상태를 평가할 수 있음.

 

---

 

AWS CloudWatch

AWS의 모니터링 및 관리 서비스임.

애플리케이션, 시스템 및 AWS 리소스의 성능을 실시간으로 모니터링하고 로깅할 수 있음.

AWS 환경에서 애플리케이션 및 인프라의 성능을 실시간으로 모니터링하고 관리하기 위한 중요한 서비스임.

이를 통해 안정적인 운영 및 효율적인 리소스 사용을 실현할 수 있음.

 

AWS CloudWatch의 주요 특징과 기능

1. 메트릭스 모니터링

CloudWatch는 AWS 리소스 및 애플리케이션에서 수집한 메트릭스를 모니터링함.

이러한 메트릭스는 CPU 사용률, 네트워크 트래픽, 디스크 I/O 등과 같은 성능 지표를 포함함.

 

2. 사용자 정의 메트릭스

CloudWatch는 사용자가 직접 정의한 메트릭스를 생성하고 모니터링 할 수 있음.

이를 통해 사용자는 자신의 애플리케이션에서 중요한 지표를 추적할 수 있음.

 

3. 알람

CloudWatch는 메트릭스 값을 기반으로 알람을 설정할 수 있음.

이를 통해 사용자는 정의한 임계값을 초과하는 경우 경고를 받을 수 있으며, 자동으로 조치를 취할 수 있음.

 

4. 로그 모니터링

CloudWatch Logs를 사용하여 애플리케이션 및 시스템 로그를 모니터링할 수 있음.

이를 통해 로그 이벤트를 검색하고 분석하여 애플리케이션의 동작을 이해하고 문제를 해결할 수 있음.

 

5. 이벤트 기반 자동화

CloudWatch Events를 사용하여 AWS 리소스에서 발생하는 이벤트를 감지하고 이에 대한 자동화된 조치를 트리거할 수 있음.

예를 들어, EC2 인스턴스의 시작 또는 중지와 같은 이벤트에 대해 Lambda 함수를 실행할 수 있음.

 

6. 리소스 오토 스케일링

CloudWatch는 Auto Scaling 그룹과 통합되어, 메트릭스를 기반으로 리소스의 용량을 자동으로 확장하거나 축소할 수 있음.

 

7. 비용 관리

CloudWatch는 AWS 리소스의 사용량을 모니터링하여 비용을 관리할 수 있는 도구를 제공함.

예를 들어, 리소스의 비용이 예상치를 초과할 경우 알람을 설정할 수 있음.

 

---

 

AWS CloudTrail과 AWS CloudWatch의 차이

두개 다 모두 AWS에서 제공하는 서비스이지만, 목적과 기능이 다름.

AWS CloudTrail은 AWS 계정의 작업을 모니터링하고 로깅하여 보안 및 규정 준수를 지원하는 데 중점을 둠.

AWS CloudWatch는 AWS 리소스의 성능 모니터링 및 관리를 위해 메트릭스와 로그를 수집하고 알람을 설정하며, 이벤트 기반 자동화를 지원함.

 

AWS CloudTrail과 AWS CloudWatch의 주요 차이점

1. 목적

1.1 AWS CloudTrail

CloudTrail은 AWS 계정 내에서 수행되는 작업을 모니터링하고 로깅하는 서비스임.

주로 보안 감사 및 규정 준수를 위해 사용됨.

CloudTrail은 AWS API 호출 및 관리 콘솔 활동과 같은 이벤트를 기록함.

1.2 AWS CloudWatch

CloudWatch는 AWS 리소스의 성능 모니터링, 로그 모니터링 및 이벤트 기반 자동화를 제공하는 서비스임.

주로 시스템 및 애플리케이션의 성능을 모니터링하고 관리하기 위해 사용됨.

 

2. 데이터 유형

2.1 AWS CloudTrail

CloudTrail은 주로 이벤트 로그를 수집함.

이벤트에는 API 호출 및 관리 콘솔 활동과 같은 작업에 대한 정보가 포함됨.

2.2 AWS CloudWatch

CloudWatch는 메트릭스와 로그를 수집함.

메트릭스는 시간별로 수집된 수치 데이터이며, 로그는 텍스트 기반의 이벤트 데이터임.

 

3. 활용

3.1 AWS CloudTrail

CloudTrail은 주로 보안 감사, 규정 준수 검사, 이벤트 기반 자동화 등에 사용됨.

보안팀 및 컴플라이언스 담당자가 주로 활용함.

3.2 AWS CloudWatch

CloudWatch는 주로 시스템 운영자, 개발자, 인프라 운영팀 등이 시스템 및 애플리케이션의 성능을 모니터링하고 관리하는 데 사용됨.

 

4. 액션

4.1 AWS CloudTrail

CloudTrail은 주로 로그를 수집하고 저장함.

데이터를 분석하거나 이벤트에 대한 경보를 설정하는 등의 액션은 일반적으로 다른 서비스(AWS Lambda)와 통합하여 수행함.

4.2 AWS CloudWatch

CloudWatch는 데이터를 수집하고 메트릭스 및 로그를 모니터링한 다음, 알람을 설정하거나 자동 조치를 트리거할 수 있음.

 

---

 

AWS Lambda

AWS Lambda는 이벤트 기반 서버리스 컴퓨팅 서비스임.

코드를 실행할 때 사용자가 프로비저닝하거나 관리할 필요 없이 자동으로 관리되는 컴퓨팅 리소스를 제공함.

AWS Lambda는 이벤트 기반의 서버리스 컴퓨팅을 위한 강력한 서비스로, 코드 실행을 단순화하고 확장 가능하며 비용을 절감할 수 있는 방법을 제공함.

 

AWS Lambda에 대한 주요 특징과 개념

1. 이벤트 기반 실행

AWS Lambda는 트리거로 사용되는 이벤트가 발생할 때마다 코드를 실행함.

이 이벤트는 여러 소스에서 발생할 수 있으며, 예를 들어 AWS S3 객체 생성, AWS DynamoDB 테이블 업데이트, HTTP 요청 등이 있음.

 

2. 서버리스 아키텍처

AWS Lambda를 사용하면 서버 인스턴스를 프로비저닝하거나 관리할 필요가 없으므로 서버리스 아키텍처를 구축할 수 있음.

이는 개발자가 코드에 집중할 수 있게 해주며, 운영 및 관리 부담을 줄여줌.

 

3. 다양한 프로그래밍 언어 지원

AWS Lambda는 다양한 프로그래밍 언어를 지원함.

Node.js, Python, Java, Go, Ruby 등이 포함됨.

개발자는 선호하는 언어로 함수를 작성할 수 있음.

 

4. 컨테이너 기반 실행

AWS Lambda는 컨테이너 기반으로 실행됨.

각 Lambda 함수는 실행되기 전에 독립적인 컨테이너 환경에서 실행되므로 각 함수 간에 격리가 보장됨.

 

5. 자동 확장 및 고가용성

Lambda 함수는 트리거되는 이벤트의 양에 따라 자동으로 확장되며, AWS 리전 내에서 고가용성을 제공함.

이는 사용자가 추가 구성 없이 매우 확장 가능하고 안정적인 서비스를 구축할 수 있음을 의미함.

 

6. 비용 효율성

AWS Lambda는 사용한 만큼만 비용을 지불하게 되어 비용을 효과적으로 관리할 수 있음.

사용하지 않는 경우에는 비용이 발생하지 않음.

 

7. 서비스 통합

AWS Lambda는 다양한 AWS 서비스와 통합할 수 있음.

이를 통해 Lambda 함수를 사용하여 다른 AWS 서비스의 동작을 트리거하거나 처리할 수 있음.

 

---

 

AWS SNS (Amazon Simple Notification Service)

애플리케이션, 서비스 또는 사용자에게 알림을 보내는 완전 관리형 메시지 전송 서비스임.

AWS SNS는 신속하고 안정적인 메시지 전송 서비스로 애플리케이션에서 사용자에게 알림을 보내는데 널리 사용됨.

실시간 알림, 이벤트 기반 아키텍처 및 사용자 상호 작용을 지원할 수 있음.

 

AWS SNS에 대한 주요 특징과 기능

1. 다양한 푸시 프로토콜 지원

AWS SNS는 다양한 푸시 프로토콜을 지원하여 다양한 종류의 애플리케이션 및 디바이스에 알림을 전송할 수 있음.

HTTP, HTTPS, AWS SQS, AWS Lambda, 이메일, SMS, 애플 APNS(Apple Push Notification Service), 구글 GCM/FCM(Firebase Cloud Messaging) 등을 포함함.

 

2. 다목적 메시지 전송

SNS를 사용하여 다양한 유형의 메시지를 전송할 수 있음.

텍스트 메시지, JSON 메시지, 이미지, 비디오, 이메일 등을 포함함.

 

3. 주제와 구독

SNS에서는 주제(Topic)와 구독(Subscription)을 사용하여 메시지를 관리함.

주제는 메시지의 논리적 그룹을 나타내며, 여러 구독자가 해당 주제를 구독할 수 있음.

 

4. 발행 및 구독 모델

SNS는 발행-구독(Publish-Subscribe) 모델을 따름.

메시지는 주제에 발행되고, 해당 주제에 구독한 구독자에게 전송됨.

 

5. 확장 가능성 및 신뢰성

AWS SNS는 신뢰성 있고 확장 가능한 아키텍처를 제공하여 수백만 개의 메시지를 신속하게 처리할 수 있음.

또한 AWS의 다중 가용 영역 및 재해 복구 기능을 활용하여 고가용성을 제공함.

 

6. 메시지 필터링

SNS는 메시지 필터링을 지원하여 특정 구독자에게만 특정 유형 또는 속성의 메시지를 전송할 수 있음.

 

7. 보안

AWS SNS는 데이터 암호화, 액세스 제어 및 데이터 보호와 같은 다양한 보안 기능을 제공하여 메시지 전송의 안정성을 보장함.

 

---

 

AWS SQS (Amazon Simple Queue Service)

완전 관리형 대기열 서비스임.

분산 시스템 간에 메시지를 안전하게 전달하는데 사용됨.

AWS SQS는 안전하고 신뢰할 수 있는 메시지 대기열 서비스임.

분산 시스템 간의 통신 및 작업 처리를 간소화하고 확장성을 제공함.

이를 통해 애플리케이션을 확장하고 성능을 향상시킬 수 있음.

 

AWS SQS 주요 특징과 개념

1. 대기열

SQS는 메시지를 저장하고 보관하는 데 사용되는 대기열을 제공함.

이 대기열은 분산 시스템 간에 메시지를 안전하게 전달하는 데 사용됨.

 

2. 완전 관리형 서비스

AWS SQS는 완전히 관리되는 서비스이므로 사용자는 대기열 관리에 대한 걱정 없이 메시지 전송에 집중할 수 있음.

AWS가 대기열을 관리하고 유지보수함.

 

3. 다양한 메시지 전송 방식

SQS는 여러 가지 메시지 전송 방식을 지원함.

예를 들어, FIFO(First-In-First-Out) 방식은 메시지를 대기열에 넣은 순서대로 처리하는 방식이며, 표준 대기열은 최소한의 노력으로 빠른 처리를 위해 최적화된 방식임.

 

4. 확장성

SQS는 무한한 용량으로 확장 가능하며, 대기열에 대한 요청이 증가함에 따라 자동으로 확장됨.

이를 통해 대규모 메시지 전송 시스템을 지원할 수 있음.

 

5. 지연 처리

SQS는 메시지를 처리하는 속도에 따라 메시지를 대기열에 지연시킬 수 있음.

이를 통해 일시적인 부하를 처리하거나 메시지 처리 속도를 제어할 수 있음.

 

6. 복원성

SQS는 메시지를 안전하게 저장하고 보관하여 메시지 손실을 방지함.

메시지 처리 중에 장애가 발생한 경우 메시지를 다시 처리할 수 있음.

 

7. 다양한 클라이언트 지원

SQS는 다양한 프로그래밍 언어와 플랫폼에서 사용할 수 있는 클라이언트 라이브러리를 제공함.

다양한 환경에서 SQS를 통합하여 사용할 수 있음.