AWS 클라우드 서비스 로그
- 클라우드 자원별 로그
- EC2 생성/삭제, S3 스토리지 로그, 데이터베이스 로그, 서버리스 자원 로그, 컨테이너 로그 등...
- 각 자원별로 Cloud Watch를 이용하여 확인 및 통합 가능합니다.
- Cloud Watch agent를 이용하여 EC2의 로그를 확장해서 통합 분석 가능합니다.
- 네트워크 트래픽 로그
- 가상 네트워크 VPC Flow 로그
- 각 VPC 별로 플로우 로그를 생성하여 관리
- 자원 이벤트 로그
- AWS SDK, CLI를 이용한 API로그 관리
- API를 호출한 IP 주소와 호출한 사용자 계정 추적 가능
- 비용 이벤트 로그
- 클라우드 서비스를 이용할 때 각 자원별/태그별 비용 확인
- 정해진 예상 금액 이상으로 사용할 때 경고 메일 기능
AWS CloudWatch란?
- Amazon CloudWatch는 Amazon Web Services(AWS) 리소스 및 AWS에서 실행되는 애플리케이션을 실시간으로 모니터링합니다. CloudWatch를 사용하여 리소스 및 애플리케이션에 대해 측정할 수 있는 변수인 지표를 수집하고 추적할 수 있습니다.
- CloudWatch 홈페이지에는 사용 중인 모든 AWS 서비스에 관한 지표가 자동으로 표시됩니다. 사용자 지정 대시보드를 추가로 생성해 사용자 지정 애플리케이션에 대한 지표를 표시하고, 선택한 지표의 사용자 지정 집합을 표시할 수 있습니다.
- 지표를 감시해 알림을 보내거나 임계값을 위반한 경우 모니터링 중인 리소스를 자동으로 변경하는 경보를 생성할 수 있습니다. 예를 들면, Amazon EC2 인스턴스의 CPU 사용량과 디스크 읽기 및 쓰기를 모니터링한 다음에 증가한 로드를 처리하려면 추가 인스턴스를 시작해야 하는지 여부를 해당 데이터로 결정할 수 있습니다. 또한 이러한 데이터를 사용하여 잘 사용되지 않는 인스턴스를 중지할 수도 있습니다.
- CloudWatch를 사용하면 시스템 전체의 리소스 사용률, 애플리케이션 성능, 운영 상태를 파악할 수 있습니다.
AWS CloudWatch 사용법
AWS CloudWatch의 메인 화면입니다. 여기서 다양한 로그 설정들을 할 수 있습니다. Alarms → Billing에서 예산에 관한 로그 설정을 해보겠습니다.
Create alarm를 눌러 알람을 생성시켜 줍니다.
Metric name은 이름 설정, Currency는 돈의 통화, Statistic은 통계량, Period는 주기 입니다. 주기를 너무 짧게하면 CloudWatch에 대한 비용이 증가하게 됩니다. 적당하게 설정해줘야합니다.
영어지만 쉽게 알지 위해서 한국어로 변역을 하였습니다. 공전 사용시 임계값을 설정을 하고 그 임계값보다 클때 알람을 주냐, 작을 때 알람을 주냐 그런걸 설정합니다.
알람을 선택하고 새 주제 만들기를 눌러서 새롭게 만들 topic의 이름을 만들어주고 어디로 이메일을 보내는지 적어준 후 Create topic을 눌러줍니다. 이제 그러면 다음에 똑같은 topic을 사용해야할때 Create a new topic에서 적은 이름을 가져다 쓸 수 있습니다.
오토 스케일을 하는 과정에서 비용이 올라갔다 내려가는 걸 경보상태로 나타내는 것을 설정하는 곳 입니다(이번 실습에선 사용하지 않습니다). 이후 쭉쭉 다음으로 넘어가주시면 됩니다. 마지막에 이름이랑 설명 적는 부분만 잘 채워넣으면 됩니다.
잘 생성이 되는 것을 확인하였습니다. 저는 하루로 설정을 했기 때문에 아직 데이터가 모이지 않아 데이터 부족이라고 뜹니다. 이게 하루가 지나면 정보가 쌓이게 됩니다. AWS Cloud Watch는 여기까지 입니다.
AWS CloudTrail이란?
AWS CloudTrail이란 AWS 계정의 운영 및 위험 감사, 거버넌스 및 규정 준수를 활성화하는데 도움이 되는 AWS서비스 입니다. 사용자, 역할 또는 AWS 서비스가 수행하는 작업은 CloudTrail에 이베트로 기록됩니다. AWS Management Console, AWS Command Line Interface 및 AWS SDK, API에서 수행되는 작업들이 포함됩니다.
AWS CloudTrail 개요
- AWS 계정 관리, 규정 준수, 운영 및 위험 감사를 지원하는 서비스
- 기록된 정보를 참고하여 사용자, 역할, 서비스에 수행한 작업에 대한 정보를 검토할 수 있음
- AWS에서 서비스하고 있는 모든 행위의 이벤트를 모아 분석, 리소스 변경 추적 등 가능
AWS CloudTrail 이벤트 종류
- 관리 이벤트 : 계정 리소스에서 수행되는 관리 작업에 대한 정보 제공
- 데이터 이벤트 : 리소스에서 수행되는 리소스 작업의 정보 제공
- Insights 이벤트 : 계정에서 발생된 비정상적인 활동 기
AWS CloudTrail 작동 방식
AWS CloudTrail은 생성 시 AWS 계정에서 활성화 됩니다. AWS 계정에서 이뤄지는 활동이 CloudTrail 이벤트에 기록되고, AWS Console의 Event History에서 이벤트 기록을 확인할 수 있습니다.
AWS CloudTrail은 지정한 S3 Bucket에 이벤트를 저장할 수 있도록 구성되어 있습니다. 또한 AWS CloudWatch Logs 및 Events를 통해 Trail의 이벤트를 전송 및 분석할 수 있습니다.
- 모든 리전에 적용되는 Trail
- 모든 리전에 적용되는 Trail을 생성하면 CloudTrail은 각 리전에만 이벤트를 기록하고 CloudTrail 이벤트 로그 파일을 지정한 S3 Bucket으로 전송합니다. 새 리전을 추가할 경우 그 리전이 자동으로 포함되어 이벤트가 로깅합니다.
- 리전 하나에 적용되는 Trail
- 하나의 리전에 적용되는 Trail을 생성하면 CloudTrail은 해당 리전에만 이벤트를 기록합니다. 그 후 지정한 S3 Bucket으로 CloudTrail 이벤트 로그 파일을 전송합니다.
기본적으로 CloudTrail 이벤트 로그 파일은 S3 SSE(서버측 암호화)를 사용하여 암호화 합니다. 선택에 따라선 AWS Key Management Service(AWS KMS) 키를 이용하여 로그 파일을 암호화 할 수 있습니다.
CloudTrail workflow
AWS 계정에 대한 이벤트 기록을 확인
- CloudTrail 콘솔에서 CloudTrail에 의해 또는 AWS CLI를 사용하여 기록된 최근 90일 동안의 이벤트를 보거나 검색할 수 있습니다.
이벤트 다운로드
- AWS 계정에 대한 최대 지난 90일의 CloudTrail 이벤트가 포함된 CSV 또는 JSON 파일을 다운로드할 수 있습니다.
저장된 쿼리 결과 다운로드
- 저장된 CloudTrail Lake 쿼리 결과가 포함된 CSV 파일을 다운로드할 수 있습니다
trail 생성
- CloudTrail은 trail을 사용하여 Amazon S3 버킷으로 로그 파일을 전송할 수 있습니다.
- 콘솔에서 trail을 생성하면 기본적으로 모든 리전에 추적이 적용됩니다.
- trail은 AWS 파티션에 있는 모든 리전의 이벤트를 로깅하고 지정된 S3 버킷으로 로그 파일을 전송합니다.
Amazon SNS topic 생성 및 구독
- topic을 구독하면 로그 파일이 버킷으로 전송될 때 해당 로그 파일에 대한 알림을 수신할 수 있습니다.
- Amazon SNS는 Amazon Simple Queue Service를 통한 프로그래밍 방식을 포함하여 여러 가지 방법으로 사용자에게 알릴 수 있습니다.
로그 파일 보기
- Amazon S3를 사용하여 로그 파일을 검색할 수 있습니다.
사용자 권한 관리
- AWS Identity and Access Management(IAM)를 사용하면 trail을 생성, 구성 또는 삭제하고, 로깅을 시작 및 중지하고, 로그 파일이 포함된 Amazon S3 Bucket에 액세스할 수 있는 권한이 있는 사용자를 관리할 수 있습니다.
CloudWatch Logs로 이벤트 모니터링
- CloudWatch Logs로 이벤트를 전송하도록 trail을 구성할 수 있습니다.
- CloudWatch Logs를 사용하여 계정에서 특정 API 호출 및 이벤트가 발생했는지 모니터링할 수 있습니다.
관리 이벤트 및 데이터 이벤트 로깅
- 읽기 전용, 쓰기 전용 또는 모든 관리 이벤트와 데이터 이벤트를 로깅하도록 trail을 구성합니다.
로그 암호화 & 무결성 활성화
- 로그 파일 암호화는 로그 파일에 대한 추가 보안 계층을 제공합니다.
- 로그 파일 무결성 검증을 사용하면 CloudTrail이 로그 파일을 전송한 후 해당 파일이 변경되지 않았는지 확인할 수 있습니다.
CloudTrail Lake 활성화
- CloudTrail Lake를 사용하면 이벤트에 대해 정밀한 SQL 기반 쿼리를 실행할 수 있습니다.
- 이벤트는 이벤트 데이터 스토어로 집계되며, 이벤트 데이터 스토어는 고급 이벤트 선택기를 적용하여 선택한 기준을 기반으로 하는 변경 불가능한 이벤트 컬렉션입니다.
- 이벤트 데이터는 최대 7년 동안 이벤트 데이터 스토어에 보관할 수 있습니다.
- CloudTrail Lake는 보안 조사 및 문제 해결을 수행하는 데 도움이 되는 감사 솔루션의 일부입니다.
트레일 이벤트를 CloudTrail Lake에 복사
- 기존 트레일 이벤트를 CloudTrail Lake 이벤트 데이터 스토어에 복사하여 트레일에 기록된 이벤트의 특정 시점 스냅샷을 생성할 수 있습니다.
CloudTrail Lake 쿼리 결과를 Amazon S3 버킷에 저장
- 쿼리 실행 시 S3 버킷으로 쿼리 결과를 저장할 수 있습니다.
다른 AWS 계정과 로그 파일 공유
- 계정 간에 로그 파일을 공유할 수 있습니다.
여러 계정의 로그 취합
- 여러 계정의 로그 파일을 단일 버킷에 취합할 수 있습니다.
Trail이란?
Trail
은 Amazon S3 Bucket, CloudWatch Logs 및 CloudWatch Events에 CloudTrail 이벤트를 제공할 수 있는 구성입니다.Trail을 사용하여 제공하고자 하는 CloudTrail이벤트를 필터링하고, AWS KMS 키로 CLoudTrail의 이벤트 Logs 파일을 암호화, 파일 제공을 위해 Amazon SNS 알림을 설정할 수 있습니다.
CloudTrail 실습
간단하게 CloudTrail에 대해서 실습해보겠습니다.
위 사진과 같이 CloudTrail -> Trail에 들어와 Create trail를 눌러줍니다.
CloudTrail은 위에서 설명했듯 한 리전에서 일어난 이벤트들을 S3 Bucket에 저장하게 됩니다. 그때 사용할 S3 Bucket를 생성해주는 과정입니다. 이제 아래 Log file validation에 대해서는 나중에 따로 정리하도록 하겠습니다. 그 아래 CloudWatch Logs의 옵션같은 경우에는 이 CloudTrail을 CloudWatch로 로깅을 한건지 몰어보는 것 입니다. 그 후 계속 next하여 Create Trail를 하겠습니다.
생성에 성공한 것을 확인할 수 있습니다 이제 S3에 가보면 아까 생성한 버킷이 생긴것도 확인할 수 있습니다.
로그가 담겨져 있을 AWSLogs파일이 생긴것을 확인할 수 있고 그 안에 로그가 잘 남아 있는 것을 확인할 수 있었습니다.
'기능반공부 > 클라우드 컴퓨팅' 카테고리의 다른 글
[CC] AWS SSM(Systems Manager) - Run Command (0) | 2023.03.06 |
---|---|
[CC] AWS SSM(Systems Manager) - session manager (0) | 2023.02.28 |
[CC] AWS Organiztions & AWS IAM (0) | 2023.02.22 |
[CC] AWS EFS(Elastic File System) (0) | 2023.01.12 |
[CC] AWS EC2(Elastic Compute Cloud) (0) | 2023.01.11 |