2020. 10. 18. 23:20ㆍBACKEND/AWS
안녕하세요 〰️
오늘은 AWS 중 CloudWatch와 CloudTrail에 대해 알아보도록 하겠습니다.
***************** INDEX *****************
🔭AWS CloudWatch
📄 AWS CloudTrail
********************************************
🔭 AWS CloudWatch
Amazon CloudWatch는 AWS 리소스와 AWS에서 실시간으로 실행 중인 애플리케이션을 모니터링합니다.
CloudWatch를 사용하여 리소스 및 애플리케이션에 대해 측정할 수 있는 변수인 metrics를 수집하고 추적할 수 있습니다.
CloudWatch의 작동 방식은 아래와 같습니다.
✔️ Metrics
CloudWatch 페이지에서는 사용 중인 모든 AWS 서비스에 대한 metrics가 자동으로 표시됩니다.
사용자 지정 대시보드를 추가로 생성해 사용자 지정 애플리케이션에 대한 metrics를 표시하고,
선택한 metrics의 사용자 지정 집합을 표시할 수 있습니다.
아래는 Metrics 리스트 예시입니다.
✔️ Alarms
Metrics를 감시해 알림을 보내거나 임계값을 위반한 경우 모니터링 중인 리소스를 자동으로 변경하는 경보를 생성할 수 있습니다.
예를 들어 Amazon EC2 인스턴스의 CPU 사용량과 디스크 읽기 및 쓰기를 모니터링한 다음,
이러한 데이터를 사용하여 증가된 로드를 처리하기 위해 추가 인스턴스를 시작해야 할지 결정할 수 있습니다.
또한 이러한 데이터를 사용하여 잘 사용되지 않는 인스턴스를 중지할 수도 있습니다.
CloudWatch를 사용하면 시스템 전체의 리소스 사용률, 애플리케이션 성능 및 운영 상태를 파악할 수 있습니다.
예시를 하나 들어보자면,
EC2 사용중에 CPU 사용량(CPUUtilization)이 80%가 넘는 상태가 5분 이상 지속될 때 이메일이나 문자를 받을 수 있게끔 만들 수 있죠.
그 밖에도 위에서 보이는 다양한 옵션으로 Alarms을 설정할 수 있습니다.
✔️ 함께 사용하는 서비스
CloudWatch 서비스와 함께 사용하는 서비스는 아래와 같습니다.
- Amazon Simple Notification Service (Amazon SNS)
구독 엔드포인트나 클라이언트로의 메시지 배달 또는 전송을 조정하고 관리합니다.
CloudWatch와 함께 Amazon SNS를 사용하여 경보 임계값에 도달한 경우 메시지를 보냅니다.
- Amazon EC2 Auto Scaling
사용자 정의 정책, 상태 확인 및 예약 일정에 따라 Amazon EC2 인스턴스를 자동으로 시작 또는 종료할 수 있습니다.
Amazon EC2 Auto Scaling과 CloudWatch 경보를 함께 사용하여 필요에 따라 EC2 인스턴스를 확장할 수 있습니다.
- AWS CloudTrail
AWS Management 콘솔, AWS CLI 및 기타 서비스를 통해 이루어진 호출을 포함하여 계정에서 Amazon CloudWatch API에 대한 호출을 모니터링할 수 있도록 합니다.
CloudTrail 기록이 활성화되어 있으면 CloudWatch는 CloudTrail을 구성할 때 지정한 Amazon S3 버킷에 로그 파일을 기록합니다.
자세한 정보는 AWS CloudTrail 사용을 통한 Amazon CloudWatch API 호출 로깅 단원을 참조하십시오.
- AWS Identity and Access Management (IAM)
사용자를 위해 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스입니다.
IAM을 사용하여 AWS 리소스를 사용할 수 있는 사람을 제어(인증)하고 이들이 사용할 수 있는 리소스 및 그 사용 방법을 제어(권한 부여)합니다.
📄 AWS CloudTrail
계정의 거버넌스, 규정 준수, 운영 및 위험 감사를 활성화하도록 도와주는 서비스입니다.
CloudTrail 이벤트는 AWS Management 콘솔, AWS SDK, 명령줄 도구 및 기타 AWS 서비스를 통해 수행되는 API 계정 활동과 비 API 계정 활동 모두에 대한 기록을 제공합니다.
CloudTrail에는 로깅할 수 있는 두 가지 유형의 이벤트(관리 이벤트 및 데이터 이벤트)가 있습니다.
기본적으로 추적은 관리 이벤트를 로깅하지만 데이터 이벤트는 로깅하지 않습니다.
이번엔 CloudTrail의 로그 파일의 예시를 살펴보도록 하겠습니다❗️
로그 파일
먼저, 로그 파일의 이름은 아래의 형식으로 생성됩니다.
// AccountID_CloudTrail_RegionName_YYYYMMDDTHHmmZ_UniqueString.FileNameFormat
111122223333_CloudTrail_us-east-2_20150801T0210Z_Mu0KsOhtH1ar15ZZ.json.gz
- YYYY, MM, DD, HH 및 mm은 로그 파일이 전송된 연도, 월, 일, 시, 분에 대한 숫자입니다.
시간은 24시간 형식입니다. Z는 시간이 UTC 기준임을 나타냅니다.
- 로그 파일 이름의 16자 UniqueString 구성 요소는 파일의 덮어쓰기를 방지할 목적으로 사용됩니다. 특별한 의미는 없습니다.
- FileNameFormat은 파일의 인코딩입니다. 현재 인코딩은 json.gz이며, 압축 gzip 형식의 JSON 텍스트 파일입니다.
로그 파일의 예시는 아래와 같습니다.
{"Records": [{
"eventVersion": "1.0",
"userIdentity": {
"type": "IAMUser",
"principalId": "EX_PRINCIPAL_ID",
"arn": "arn:aws:iam::123456789012:user/Alice",
"accessKeyId": "EXAMPLE_KEY_ID",
"accountId": "123456789012",
"userName": "Alice"
},
"eventTime": "2014-03-06T21:22:54Z",
"eventSource": "ec2.amazonaws.com",
"eventName": "StartInstances",
"awsRegion": "us-east-2",
"sourceIPAddress": "205.251.233.176",
"userAgent": "ec2-api-tools 1.6.12.2",
"requestParameters": {"instancesSet": {"items": [{"instanceId": "i-ebeaf9e2"}]}},
"responseElements": {"instancesSet": {"items": [{
"instanceId": "i-ebeaf9e2",
"currentState": {
"code": 0,
"name": "pending"
},
"previousState": {
"code": 80,
"name": "stopped"
}
}]}}
}]}
위의 예에서는 Alice라는 IAM 사용자가 AWS CLI를 사용하였고 를 사용하여 작업을 호출했음을 보여 줍니다.
'BACKEND > AWS' 카테고리의 다른 글
AWS EKS - Web Application (1) (0) | 2022.07.17 |
---|---|
AWS CodeDeploy VS AWS Elastic Beanstalk (0) | 2021.02.07 |
AWS, S3 (0) | 2020.11.08 |
AWS, IAM (5) | 2020.11.01 |
AWS Elastic Load Balancing (0) | 2020.10.25 |
Backend Software Engineer
𝐒𝐮𝐧 · 𝙂𝙮𝙚𝙤𝙣𝙜𝙨𝙪𝙣 𝙋𝙖𝙧𝙠