SKS 공부 - 2025-12-08

SKS 홈으로
30회차 공부

한줄요약:
    클라우드 보안 - EC2 오토 스케일링은 부하에 맞춰 인스턴스를 **자동 확장/축소(Scale-out/in)**하여 가용성과 비용 효율성을 높이고, Lambda는 서버 관리 없이 코드를 실행하는 이벤트 기반 서버리스 컴퓨팅이며, ECS/Fargate는 컨테이너를 관리하며, S3는 버킷에 객체를 저장하는 고내구성 객체 스토리지로 버전 관리와 암호화 기능을 제공합니다.
    					

오늘 공부한 내용:
    1. EC2 Auto Scaling (AS)
    A. ASG 정의 및 필요성
    EC2 Auto Scaling: 애플리케이션의 부하 변화에 따라 EC2 인스턴스의 수량을 자동으로 추가(Scale-out) 및 **제거(Scale-in)**하여 지정된 최소 및 최대 수량 사이를 유지하는 서비스입니다.
    
    필요성:
    
    향상된 가용성: 인스턴스에 장애가 발생하거나 부하가 증가했을 때 자동으로 대응하여 서비스의 중단을 최소화합니다.
    
    비용 절감: 필요한 경우에만 인스턴스를 추가하고, 부하가 낮을 때 제거하여 비용을 최적화합니다.
    
    B. 오토 스케일링 요소 및 정책
    ASG (Auto Scaling Group): 오토 스케일링의 핵심 그룹으로, min/max/desired 인스턴스 수량을 정의합니다.
    
    시작 템플릿 (Launch Template): 인스턴스 구성 정보(AMI, 인스턴스 유형, 보안 그룹, 키 페어 등)를 지정합니다.
    
    오토 스케일링 정책:
    
    예약된 일정: 특정 시간에 인스턴스 수량을 변경 (예: 매일 아침 9시에 확장).
    
    동적 조정 정책: CloudWatch 지표를 기반으로 확장/축소 (예: CPU 사용률 70% 초과 시 확장).
    
    대상 추적 조정: 지정된 지표를 목표 값으로 유지하도록 자동으로 조정.
    
    예측 기반: 기계 학습을 사용하여 예상되는 트래픽을 미리 예측하고 확장.
    
    2. 서버리스 및 AWS Lambda
    A. 서버리스 이해
    정의: 서비스를 실행할 **인프라(서버, OS)**를 AWS에서 관리하므로 사용자는 관리할 서버가 없습니다.
    
    장점: 인프라 관리 시간/비용 절감, 부하에 따른 자동 크기 조정(확장성), 실행시에만 요금을 지불하는 종량제, 내장된 보안 및 고가용성.
    
    예시: Lambda, S3, DynamoDB, API Gateway 등.
    
    B. AWS Lambda
    정의: 서버 인프라 생성 및 관리 없이 코드를 실행할 수 있는 서버리스 컴퓨팅 서비스.
    
    특징:
    
    실행 기반 요금: 함수가 실행되는 실행 시간에만 요금 부과.
    
    이벤트 소스: S3 객체 생성, API Gateway 요청, DynamoDB 스트림, EventBridge 일정 등 다양한 AWS 서비스 이벤트에 의해 호출됩니다.
    
    실행 역할: Lambda 함수가 다른 AWS 서비스(예: S3, DynamoDB)를 조작할 수 있도록 권한을 부여합니다.
    
    3. 컨테이너 및 AWS ECS/EKS
    A. 컨테이너 개요
    정의: 애플리케이션 코드, 런타임, 라이브러리 등을 하나의 인스턴스로 경량 패키징하고 프로세스를 격리하는 방식.
    
    장점: 가볍고 빠름, 배포의 용이성, 이식성 및 확장성 우수.
    
    컨테이너 오케스트레이션: 컨테이너의 배포, 크기 조정, 모니터링 및 관리를 자동화하는 도구 (예: Kubernetes).
    
    B. AWS 컨테이너 서비스
    Amazon ECR (Elastic Container Registry): 컨테이너 이미지를 저장, 공유, 배포하는 레지스트리 서비스.
    
    Amazon ECS (Elastic Container Service): 컨테이너화된 애플리케이션의 배포, 관리, 크기 조정을 돕는 관리형 컨테이너 오케스트레이션 서비스.
    
    컴퓨팅 옵션:
    
    EC2: 고객이 EC2 인스턴스를 직접 관리 (OS, 런타임 패치 등).
    
    Fargate: 서버리스 컨테이너 컴퓨팅 서비스. AWS가 OS 및 런타임 패치를 관리하여 고객은 애플리케이션 개발에 집중할 수 있습니다.
    
    Amazon EKS (Elastic Kubernetes Service): Kubernetes를 AWS에서 쉽게 실행할 수 있도록 지원하는 관리형 서비스.
    
    4. S3 (Simple Storage Service)
    A. S3 기본 개념
    정의: 객체(Object) 기반의 클라우드 스토리지 서비스. 대량 데이터 저장 및 관리에 용이하며, **높은 내구성(11-9)**과 확장성을 제공합니다.
    
    구성 요소:
    
    버킷 (Bucket): 객체를 저장하는 최상위 컨테이너. 이름은 글로벌 리전에서 고유해야 합니다.
    
    객체 (Object): 버킷에 저장된 파일. 데이터와 메타데이터로 구성됩니다.
    
    B. S3 스토리지 클래스 및 수명 주기
    스토리지 클래스: 액세스 빈도, 내구성, 비용에 따라 선택합니다. (예: S3 Standard, S3 Intelligent-Tiering, S3 Glacier).
    
    S3 Intelligent-Tiering: 액세스 패턴을 분석하여 자동으로 적절한 클래스로 데이터를 이동시켜 비용을 최적화합니다.
    
    S3 수명 주기 관리: 객체의 사용 빈도가 낮아지면 자동으로 스토리지 클래스를 변경하거나 삭제하여 비용을 절감합니다.
    
    C. S3 접근 제어 및 보안
    접근 제어 방법:
    
    IAM 사용자/역할 정책: 사용자에게 버킷 접근 권한 부여.
    
    버킷 정책 (Bucket Policy): 버킷 리소스 자체에 연결되어 접근을 제어 (리소스 기반 정책).
    
    퍼블릭 액세스 차단: 의도치 않은 버킷 공개를 방지하기 위해 기본적으로 활성화되어 있습니다.
    
    데이터 암호화: 데이터 저장 중(At Rest) 암호화를 지원하며, Client 측 암호화와 **Server 측 암호화 (SSE-S3, SSE-KMS 등)**를 선택할 수 있습니다.
    
    D. 다양한 S3 기능
    버전 관리 (Versioning): 데이터 삭제나 변경 시 과거 버전을 유지하여 복구할 수 있도록 합니다. (추가 요금 발생)
    
    객체 복제 (Replication): 동일 리전(SRR) 또는 교차 리전(CRR)에 객체를 비동기식으로 자동 복사하여 재해 복구에 활용합니다.
    
    정적 웹사이트 호스팅: S3를 이용하여 저렴하게 정적 콘텐츠 기반의 웹사이트를 호스팅할 수 있습니다.