Management and Governance

2025. 10. 22. 19:52CERTIFICATES/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가지 핵심 요소

  1. 운영 우수성
  2. 보안
  3. 안정성
  4. 성능 효율성
  5. 비용 최적화
  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