Management and Governance
2025. 10. 22. 19:52ㆍCERTIFICATES/AWS DEA-C01
Amazon CloudWatch Metrics
- CloudWatch는 AWS의 모든 서비스에 대한 메트릭스를 제공함
- 메트릭은 모니터링할 변수임 (예: CPUUtilization, NetworkIn 등)
- 메트릭은 네임스페이스에 속함
- Dimension은 메트릭의 속성임 (예: 인스턴스 ID, 환경 등)
- 하나의 메트릭당 최대 30개의 디멘션을 가질 수 있음
- 메트릭에는 타임스탬프가 포함됨
- 메트릭을 기반으로 CloudWatch 대시보드를 생성할 수 있음
- 예를 들어 RAM 사용량과 같은 CloudWatch 사용자 지정 메트릭을 생성할 수 있음
CloudWatch 메트릭 스트림(Metric Streams)
- 선택한 대상지로 CloudWatch 메트릭을 거의 실시간에 가깝게, 낮은 지연 시간으로 지속적으로 스트리밍함
- Amazon Kinesis Data Firehose(및 해당 대상지)로 전송 가능함
- 타사 서비스 제공자(Datadog, Dynatrace, New Relic, Splunk, Sumo Logic 등)로도 전송 가능함
- 특정 메트릭만 선택적으로 스트리밍하도록 필터링 옵션을 설정할 수 있음

CloudWatch Logs
- 로그 그룹(Log Group): 임의의 이름을 가질 수 있으며, 일반적으로 하나의 애플리케이션을 나타냄
- 로그 스트림(Log Stream): 애플리케이션 내 인스턴스, 로그 파일 또는 컨테이너 단위를 의미함
- 로그 만료 정책을 정의할 수 있음 (만료 안 함, 1일~10년 등 설정 가능함)
- CloudWatch Logs는 다음 대상으로 로그를 전송할 수 있음:
- Amazon S3 (내보내기)
- Kinesis Data Streams
- Kinesis Data Firehose
- AWS Lambda
- OpenSearch
- 로그는 기본적으로 암호화되어 저장됨
- 사용자가 소유한 키를 이용해 KMS 기반 암호화를 설정할 수도 있음
CloudWatch Logs - 소스(Sources)
- SDK, CloudWatch Logs Agent, CloudWatch Unified Agent
- Elastic Beanstalk: 애플리케이션 로그를 수집함
- ECS: 컨테이너 로그를 수집함
- AWS Lambda: 함수 실행 로그를 수집함
- VPC Flow Logs: VPC 네트워크 트래픽 관련 로그를 수집함
- API Gateway: API 호출 로그를 수집함
- CloudTrail: 필터 기반으로 로그를 수집함
- Route 53: DNS 쿼리 로그를 수집함
CloudWatch Logs Insights

- CloudWatch Logs에 저장된 로그 데이터를 검색하고 분석할 수 있음
- 예시: 로그 내 특정 IP를 찾거나, “ERROR” 문자열이 몇 번 발생했는지 집계함
- 로그 분석을 위한 전용 쿼리 언어를 제공함
- AWS 서비스 및 JSON 로그 이벤트에서 필드를 자동으로 추출함
- 원하는 이벤트 필드를 조회하고, 조건에 따라 필터링하며, 집계 통계 계산, 이벤트 정렬, 이벤트 수 제한 등을 수행할 수 있음
- 쿼리를 저장하여 CloudWatch 대시보드에 추가할 수 있음
- 여러 AWS 계정의 서로 다른 로그 그룹을 동시에 조회할 수 있음
- 실시간 분석 엔진이 아니라, 저장된 로그를 대상으로 하는 쿼리 엔진임

CloudWatch Logs – S3 내보내기(Export)
- 로그 데이터가 내보내기(Export) 가능 상태가 되기까지 최대 12시간이 소요될 수 있음
- 내보내기를 수행하는 API 호출은 CreateExportTask임
- 실시간 또는 준실시간 처리를 위한 용도에는 적합하지 않음
- → 이런 경우에는 Logs Subscription 기능을 사용하는 것이 바람직함

CloudWatch Logs 구독
- CloudWatch Logs로부터 실시간 로그 이벤트를 가져와 처리 및 분석할 수 있음
- 로그 데이터를 다음 대상으로 전송할 수 있음:
- Kinesis Data Streams
- Kinesis Data Firehose
- AWS Lambda
- 구독 필터(Subscription Filter)를 사용하여 대상지로 전달할 로그 이벤트를 필터링할 수 있음

CloudWatch Logs 집계 - 다중 계정 및 다중 리전

CloudWatch Logs 구독
- 교차 계정 구독(Cross-Account Subscription)
- 로그 이벤트를 다른 AWS 계정의 리소스로 전송함 (Kinesis Data Streams, Kinesis Data Firehose)

EC2용 CloudWatch Logs
- 기본적으로 EC2 머신의 로그는 CloudWatch로 전송되지 않음
- 원하는 로그 파일을 푸시하려면 EC2에서 CloudWatch 에이전트를 실행해야 함
- IAM 권한이 올바르게 설정되어 있는지 확인해야 함
- CloudWatch 로그 에이전트는 온프레미스 환경에도 설정할 수 있음

CloudWatch Logs 에이전트 및 통합 에이전트
- 가상 서버(EC2 인스턴스, 온프레미스 서버 등)에 사용됨
- CloudWatch Logs Agent
- 이전 버전의 에이전트임
- CloudWatch Logs로만 로그를 전송할 수 있음
- CloudWatch Unified Agent
- RAM, 프로세스 등 추가적인 시스템 수준 메트릭을 수집함
- 로그를 수집하여 CloudWatch Logs로 전송함
- SSM Parameter Store를 사용하여 중앙에서 구성 관리가 가능함
CloudWatch 통합 에이전트 – 메트릭스
- Linux 서버 또는 EC2 인스턴스에서 직접 메트릭을 수집함
- CPU: active, guest, idle, system, user, steal 등의 상태를 포함함
- 디스크 메트릭: free, used, total / 디스크 I/O: writes, reads, bytes, IOPS
- RAM: free, inactive, used, total, cached
- Netstat: TCP 및 UDP 연결 수, 네트워크 패킷, 바이트 수
- 프로세스: total, dead, blocked, idle, running, sleep
- 스왑 공간(Swap Space): free, used, 사용 비율(%)
- 참고: EC2는 기본적으로 디스크, CPU, 네트워크 등 고수준 메트릭을 제공함
CloudWatch 알람
- 알람은 메트릭에 대해 알림을 트리거하는 데 사용됨
- 샘플링, 백분율(%), 최대값, 최소값 등 다양한 설정 옵션을 제공함
- 알람 상태:
- OK
- INSUFFICIENT_DATA (데이터 부족)
- ALARM
- 기간:
- 메트릭을 평가하는 시간 길이(초 단위)임
- 고해상도 사용자 지정 메트릭의 경우 10초, 30초 또는 60초의 배수로 설정 가능함
CloudWatch Alarm 대상
- EC2 인스턴스를 중지(Stop), 종료(Terminate), 리부트(Reboot), 복구(Recover)
- Auto Scaling 액션 트리거함
- SNS로 알림 전송함(이를 통해 거의 무엇이든 후속 처리 가능함)
CloudWatch 알람 – 복합 알람
- 일반 CloudWatch 알람은 단일 메트릭만을 모니터링함
- 복합 알람(Composite Alarm)은 여러 개의 다른 알람 상태를 함께 모니터링함
- AND 및 OR 조건을 사용할 수 있음
- 복잡한 복합 알람을 구성하여 불필요한 알림(Alarm Noise)을 줄이는 데 유용함

EC2 인스턴스 복구(EC2 Instance Recovery)
- 상태 검사(Status Check):
- 인스턴스 상태: EC2 가상 머신의 상태를 점검함
- 시스템 상태: 기본 하드웨어의 상태를 점검함
- 연결된 EBS 상태: 연결된 EBS 볼륨의 상태를 점검

- 복구: 동일한 프라이빗 IP, 퍼블릭 IP, 탄력적 IP, 인스턴스 메타데이터, 배치 그룹(Placement Group) 유지
CloudWatch 알람: 알아두면 좋은 사항
- 알람은 CloudWatch 로그 메트릭 필터(Logs Metric Filters)를 기반으로 생성할 수 있음

- 알람과 알림 동작을 테스트하려면 CLI를 사용해 알람 상태를 강제로 ALARM으로 설정할 수 있음
aws cloudwatch set-alarm-state --alarm-name "myalarm" --state-value ALARM --state-reason "testing purposes"
AWS CloudTrail
- AWS 계정에 대한 거버넌스, 규정 준수, 감사(audit) 기능을 제공함
- CloudTrail은 기본적으로 활성화되어 있음
- AWS 계정 내에서 발생한 이벤트 또는 API 호출의 기록을 확인할 수 있음 (다음과 같은 방식으로 수행된 호출 포함):
- 콘솔(Console)
- SDK
- CLI
- AWS 서비스들
- CloudTrail 로그를 CloudWatch Logs 또는 S3로 전송할 수 있음
- 트레일(Trail)은 모든 리전(기본 설정) 또는 단일 리전에 적용할 수 있음
- AWS 리소스가 삭제되었을 경우, 원인을 조사하려면 먼저 CloudTrail 로그를 확인해야 함
CloudTrail 다이어그램

CloudTrail 이벤트(CloudTrail Events)
- 관리 이벤트(Management Events):
- AWS 계정 내 리소스에서 수행된 운영 작업을 의미함
- 예시:
- 보안 구성 (예: IAM AttachRolePolicy)
- 데이터 라우팅 규칙 설정 (예: Amazon EC2 CreateSubnet)
- 로깅 설정 (예: AWS CloudTrail CreateTrail)
- 기본적으로 트레일(Trail)은 관리 이벤트를 기록하도록 설정되어 있음
- 리소스를 변경하지 않는 읽기 이벤트와 리소스를 변경할 수 있는 쓰기 이벤트를 구분할 수 있음
- 데이터 이벤트(Data Events):
- 기본적으로 기록되지 않음 (고빈도 작업이기 때문임)
- Amazon S3 객체 수준 작업 (예: GetObject, DeleteObject, PutObject): 읽기 및 쓰기 이벤트로 구분 가능함
- AWS Lambda 함수 실행 활동 (Invoke API 호출)
- CloudTrail 인사이트 이벤트(Insights Events)
CloudTrail 인사이트(CloudTrail Insights)
- CloudTrail Insights를 활성화하면 계정 내 비정상적인 활동을 탐지할 수 있음:
- 잘못된 리소스 프로비저닝
- 서비스 한도 초과
- AWS IAM 작업의 급격한 증가
- 주기적 유지보수 활동의 중단
- CloudTrail Insights는 정상적인 관리 이벤트를 분석하여 기준선(baseline)을 생성함
- 이후 지속적으로 쓰기 이벤트(Write Events)를 분석하여 비정상적인 패턴을 탐지함
- 이상 징후(Anomalies)는 CloudTrail 콘솔에 표시됨
- 해당 이벤트는 Amazon S3에 저장됨
- 자동화 처리를 위해 EventBridge 이벤트가 함께 생성됨

CloudTrail 이벤트 보존 기간
- CloudTrail 이벤트는 기본적으로 90일 동안 저장됨
- 90일 이후에도 이벤트를 보관하려면 S3에 로그를 저장하고 Athena를 사용하여 조회할 수 있음

AWS CloudTrail Lake
- CloudTrail 이벤트를 위한 관리형 데이터 레이크 서비스임
- 이벤트 수집, 저장, 준비, 최적화까지 통합적으로 처리하여 분석과 쿼리에 최적화됨
- 이벤트는 ORC(Optimized Row Columnar) 형식으로 변환됨
- SQL을 사용해 CloudTrail 데이터를 직접 쿼리할 수 있음
- 콘솔의 “Create event data store” 메뉴를 통해 활성화할 수 있음
- 데이터는 최대 7년까지 보존 가능함
- 추적하려는 이벤트 유형을 지정할 수 있음
- KMS 이벤트는 매우 빠르게 누적되어 비용이 급증할 수 있으므로 주의해야 함
- 기본 이벤트 선택기는 콘솔 UI에서 선택 가능함
- 더 세밀한 제어가 필요한 경우 고급 이벤트 선택기를 사용할 수 있음
- 이를 통해 수집 및 저장 비용을 효율적으로 관리할 수 있음
- AWS 외부의 이벤트와 통합하기 위해 “채널”을 생성할 수 있음
- Okta, LaunchDarkly, Clumio 등 CloudTrail 파트너 서비스와 기본 통합 지원함
- 또는 사용자 정의 통합도 가능함
고급 이벤트 선택기의 예

CloudTrail Lake 쿼리
- Lake 대시보드를 통해 이벤트를 시각화할 수 있음
- 직접 SQL 쿼리를 작성하여 원하는 분석을 수행할 수 있음
- CloudTrail Lake 에디터에서 제공되는 샘플 쿼리로부터 시작할 수 있음
- 비용을 제어하기 위해 eventTime으로 쿼리 범위를 제한하는 것이 중요함
AWS Config
- AWS 리소스의 규정 준수 상태를 감사하고 기록하는 데 사용
- 리소스 구성 및 변경 사항을 시간에 따라 기록
- AWS Config로 확인할 수 있는 질문 예시:
- 보안 그룹에 무제한 SSH 접근이 있는가
- S3 버킷이 퍼블릭 접근을 허용하는가
- ALB 구성은 시간에 따라 어떻게 변경되었는가
- 변경 발생 시 SNS 알림 수신 가능
- 리전 단위 서비스임
- 여러 리전과 계정 간 집계 가능
- 구성 데이터를 S3에 저장 가능하며 Athena로 분석 가능
Config Rules
- AWS 관리형 Config 규칙 사용 가능 (75개 이상 제공)
- 사용자 정의 Config 규칙 생성 가능 (AWS Lambda에서 정의 필요)
- 예시: 각 EBS 디스크가 gp2 타입인지 평가
- 예시: 각 EC2 인스턴스가 t2.micro인지 평가
- 규칙은 평가 또는 트리거 될 수 있음
- 구성 변경 시마다
- 그리고/또는 정기적인 시간 간격으로
- AWS Config Rules는 작업을 차단하지 않음 (deny 기능 없음)
- 요금: 프리 티어 없음, 리전당 구성 항목 기록당 0.003달러, 규칙 평가당 0.001달러
AWS Config Resource
- 리소스의 규정 준수 상태를 시간에 따라 조회 가능
- 리소스의 구성 변경 내역을 시간에 따라 조회 가능
- 리소스에 대한 CloudTrail API 호출 기록을 시간에 따라 조회 가능
Config Rules – Remediations
- SSM 자동화 문서를 사용하여 비준수 리소스의 수정 작업 자동화 가능
- AWS 관리형 자동화 문서 또는 사용자 정의 자동화 문서 사용 가능
- 팁: Lambda 함수를 호출하는 사용자 정의 자동화 문서 생성 가능
- 자동 수정 후에도 리소스가 여전히 비준수 상태일 경우 교정 재시도 설정 가능

Config Rules – Notifications
- 리소스가 비준수 상태일 때 EventBridge를 사용해 알림 트리거 가능

- 구성 변경 및 규정 준수 상태 알림을 SNS로 전송 가능 (모든 이벤트 전송 시 SNS 필터링 또는 클라이언트 측 필터링 사용)

CloudWatch vs CloudTrail vs Config
- CloudWatch
- 성능 모니터링 (메트릭, CPU, 네트워크 등) 및 대시보드
- 이벤트 및 알림 기능
- 로그 집계 및 분석
- CloudTrail
- 계정 내 모든 사용자의 API 호출 기록
- 특정 리소스에 대한 트레일 정의 가능
- 글로벌 서비스임
- Config
- 구성 변경 사항 기록
- 리소스를 규정 준수 규칙과 비교하여 평가
- 변경 및 규정 준수 상태의 타임라인 조회 가능
Elastic Load Balancer 관련 서비스 사용
- CloudWatch
- 들어오는 연결 수 메트릭 모니터링
- 오류 코드 비율을 시간에 따라 시각화
- 로드 밸런서 성능을 파악하기 위한 대시보드 생성
- Config
- 로드 밸런서의 보안 그룹 규칙 추적
- 로드 밸런서 구성 변경 사항 추적
- SSL 인증서가 항상 로드 밸런서에 연결되어 있는지 확인 (규정 준수 확인)
- CloudTrail
- API 호출을 통해 누가 로드 밸런서를 변경했는지 추적
CloudFormation이란
- CloudFormation은 AWS 인프라를 선언적으로 정의하는 방식으로, 대부분의 리소스를 지원함
- 예를 들어 CloudFormation 템플릿 내에서 다음과 같이 정의할 수 있음:
- 보안 그룹 생성
- 해당 보안 그룹을 사용하는 EC2 인스턴스 2개 생성
- S3 버킷 생성
- 해당 인스턴스들 앞에 위치한 로드 밸런서(ELB) 생성
- 이후 CloudFormation이 지정한 순서와 설정에 따라 이러한 리소스들을 자동으로 생성함
AWS CloudFormation의 장점
- 인프라를 코드로 관리 (Infrastructure as Code)
- 리소스를 수동으로 생성하지 않으므로 관리 및 제어에 유리
- 인프라 변경 사항을 코드 기반으로 검토 가능
- 비용 관리
- 스택 내 각 리소스에는 식별용 태그가 부여되어 스택별 비용 파악 가능
- CloudFormation 템플릿을 사용해 리소스 비용 추정 가능
- 비용 절감 전략 예시: 개발 환경에서는 오후 5시에 템플릿을 자동 삭제하고 오전 8시에 재생성하도록 설정 가능
- 생산성 향상
- 클라우드 인프라를 즉시 삭제하고 재생성할 수 있음
- 템플릿 기반 다이어그램 자동 생성 가능
- 선언적 프로그래밍 방식으로 리소스 생성 순서나 오케스트레이션을 직접 지정할 필요 없음
- 재사용성
- 이미 공개된 템플릿을 활용 가능
- 공식 문서 참고 가능
- 광범위한 리소스 지원
- 대부분의 AWS 리소스를 지원하며, 본 강의에서 다루는 모든 서비스 포함
- 지원되지 않는 리소스의 경우 사용자 정의 리소스 사용 가능
CloudFormation + Infrastructure Composer
- 예시: WordPress CloudFormation 스택
- 모든 리소스를 한눈에 확인 가능
- 구성 요소 간의 관계를 시각적으로 확인 가능

SSM Parameter Store
- 구성 정보와 보안 값을 안전하게 저장하는 서비스
- KMS를 이용한 선택적 암호화 가능
- 서버리스, 확장성 높고 내구성이 뛰어나며 SDK 사용이 간단함
- 구성 정보와 보안 값의 버전 관리 지원
- IAM을 통한 보안 제어 제공
- Amazon EventBridge와 연동해 알림 가능
- CloudFormation과 통합 가능

SSM Parameter Store 계층 구조 예시

Standard and advanced parameter tiers

매개변수 정책(고급 매개변수용)
- 매개변수에 TTL(만료일)을 지정하여 비밀번호 등 민감한 데이터를 갱신하거나 삭제하도록 강제할 수 있음
- 여러 정책을 동시에 적용할 수 있음

Well-Architected Framework
일반적인 설계 원칙
- https://aws.amazon.com/architecture/well-architected
- 용량 요구사항을 추측하지 말 것
- 프로덕션 규모로 시스템을 테스트할 것
- 아키텍처 실험을 쉽게 하기 위해 자동화할 것
- 진화 가능한 아키텍처를 허용할 것
- 변화하는 요구사항에 맞춰 설계할 것
- 데이터를 기반으로 아키텍처를 결정할 것
- 게임 데이를 통해 지속적으로 개선할 것
- 플래시 세일과 같은 상황을 대비해 애플리케이션을 시뮬레이션할 것
6가지 핵심 요소
- 운영 우수성
- 보안
- 안정성
- 성능 효율성
- 비용 최적화
- 지속 가능성
- 이들은 서로 균형을 맞추거나 절충하는 개념이 아니라, 상호 시너지를 이루는 요소임
AWS Well-Architected Tool
- Well-Architected Framework의 6가지 요소를 기준으로 아키텍처를 검토하고 모범 사례를 적용할 수 있는 무료 도구
- 작동 방식:
- 워크로드를 선택하고 질문에 답변
- 응답 내용을 6가지 요소 기준으로 검토
- 조언 제공: 관련 동영상과 문서 확인, 보고서 생성, 대시보드에서 결과 확인 가능
- 콘솔 링크: https://console.aws.amazon.com/wellarchitected
Amazon Managed Grafana
- Grafana는 메트릭과 로그를 모니터링, 시각화, 알림하는 데 사용되는 오픈소스 플랫폼임
- IAM Identity Center(이전 AWS SSO) 및 SAML과 통합되어 사용자 관리와 권한 제어 가능
- Grafana 플러그인 및 알림 기능과 호환됨
- 완전관리형 서비스로 자동 확장됨
- 저장 중 및 전송 중 데이터 암호화 지원, KMS 사용 가능
- 다양한 AWS 데이터 소스와 통합됨
- CloudWatch, OpenSearch, Timestream, Athena, Redshift, X-Ray
- Amazon Managed Service for Prometheus (AMP)
- Grafana가 지원하는 기타 외부 데이터 소스와도 통합 가능
- GitHub, Google, Azure, MySQL, Redis, JSON, OpenTelemetry 등 다양한 서비스 지원
Amazon DataZone
- 데이터 관리 서비스
- 데이터의 카탈로그화, 검색, 공유, 거버넌스를 용이하게 함
- 지원 대상:
- AWS 데이터
- 온프레미스 데이터
- 서드파티 데이터
- 주요 사용자:
- 엔지니어
- 데이터 사이언티스트
- 프로덕트 매니저
- 애널리스트 및 비즈니스 사용자
- 거버넌스와 투명성을 유지하면서 데이터에 쉽고 안전하게 접근 가능
- SageMaker Unified Studio에 통합 중
DataZone 활용 사례
- 데이터 카탈로그화 및 검색
- 메타데이터 관리 자동화
- 데이터 접근 거버넌스 관리
- 세분화된 접근 제어 적용
- 거버넌스 워크플로우 지원
- 팀 간 협업 가능
- 프로젝트, 공유 분석 도구 활용
- 워크플로우 자동화
- 데이터 생산자와 소비자 간 데이터 공유
DataZone 주요 구성 요소
- 도메인: 사용자, 데이터, 프로젝트를 그룹화하는 조직 단위
- 데이터 포털
- AWS 콘솔 외부의 웹 애플리케이션로
- 데이터의 카탈로그화, 검색, 거버넌스, 공유, 분석 수행
- IAM 인증
- 비즈니스 데이터 카탈로그: 분류 체계와 용어집 정의
- 데이터 프로젝트: 사람, 데이터 세트, 분석 도구를 그룹화함
- 데이터 환경: 프로젝트 내 인프라(스토리지, 분석 도구 등) 제공
- 거버넌스 및 접근 제어
- 데이터 접근 요청 및 승인에 대한 내장 워크플로우 제공
- Lake Formation 및 Redshift를 통해 권한 관리 수행
Amazon DataZone

DataZone Blueprints (for environments)

'CERTIFICATES > AWS DEA-C01' 카테고리의 다른 글
| Developer Tools (0) | 2025.10.22 |
|---|---|
| Machine Learning (0) | 2025.10.22 |
| Networking and Content Delivery (0) | 2025.10.21 |
| Security, Identity and Compliance (0) | 2025.10.21 |
| Application Integration (0) | 2025.10.21 |