AWS Cloud Practitioner Essentials - Module 2: 클라우드 컴퓨팅

Module 2: 클라우드 컴퓨팅
0. 용어설명
-
워크로드
-
테넌시(Tenancy)
- 가상 서버(EC2 인스턴스)가 물리적인 하드웨어(호스트 서버)에 배치되는 방식과 격리 수준을 결정하는 설정
1. amazon ec2 개요 및 기본 개념
- Amazon EC2 (Elastic Compute Cloud)
- 정의
- AWS 클라우드에서 크기 조정이 가능한 가상 서버(인스턴스)를 온디맨드로 임대하여 실행할 수 있는 서비스
- 이점 및 작동 특징
- 온프레미스 대비 물리적인 서버 인프라 구축 비용과 조달 시간이 전혀 들지 않음
- 인스턴스가 실행 중(Running) 상태일 때만 사용한 시간만큼 비용을 지불하며, 중지(Stopped) 또는 종료(Terminated) 시 요금 부과가 중단됨
- 가상 머신(VM) 및 멀티테넌시 (Multi-tenancy)
- 정의
- 하나의 물리적인 호스트 컴퓨터 리소스를 여러 대의 독립적인 가상 머신(VM) 인스턴스가 분할하여 공유하는 환경
- 하이퍼바이저 (Hypervisor)
- 정의
- 물리 호스트 컴퓨터 위에 가상 머신을 생성하고, 가상 머신 간 리소스 분배 및 철저한 격리를 보장하는 소프트웨어
- 특징
- AWS가 물리 호스트 하드웨어와 하이퍼바이저를 완전히 관리하므로, 고객은 복잡한 인프라 관리 없이 운영체제(OS) 수준에서 인프라를 통제함
- 공유 테넌시 (Shared Tenancy)
- 정의
- 하나의 거대한 물리 서버 위에서 내 가상 서버(EC2)와 다른 고객들의 가상 서버가 이웃집처럼 함께 구동되는 방식(일반적인 멀티테넌시 형태)
- 전용 테넌시 (Dedicated Tenancy)
- 정의
- 하드웨어 수준에서 다른 고객과 섞이는 것이 싫을 때, 해당 물리 서버 전체를 우리 회사 가상 서버들만 쓰도록 통째로 임대하는 방식(싱글 테넌시에 가까운 형태)
- EC2 제어 권한 및 스케일링
- 통제 범위
- Windows 또는 Linux 운영체제(OS) 선택 및 소프트웨어, 웹 애플리케이션, 데이터베이스 등의 완전 제어 및 설치 권한 보유
- 수직적 스케일링 (Vertical Scaling)
- 정의
- 가동 중인 EC2 인스턴스의 리소스 한계를 넘었을 때, 해당 인스턴스의 사양(CPU, 메모리 크기 등)을 직접 더 크게 변경하는 방식 (스케일 업 / 스케일 다운)
2. amazon ec2 인스턴스 유형
- 인스턴스 패밀리 (Instance Families)
- 정의
- 특정 워크로드에 최적화하여 CPU, 메모리, 스토리지, 네트워킹 자원을 다양하게 배합한 가상 서버 규격 그룹
- 5가지 인스턴스 패밀리 분류 (시험 단골 주제)
- 범용 (General Purpose)
- 정의
- 컴퓨팅, 메모리, 네트워킹 자원을 균등하고 균형 있게 제공하는 인스턴스
- 적합한 태스크
- 웹 서버, 코드 리포지토리 등. 워크로드의 자원 요구 수준을 사전에 잘 모르는 상태에서 시작할 때 권장됨
- 컴퓨팅 최적화 (Compute Optimized)
- 정의
- 강력한 프로세서(CPU) 연산 파워에 고도로 집중된 인스턴스
- 적합한 태스크
- 게임 서버, 고성능 컴퓨팅(HPC), 배치 작업, 기계 학습(ML) 연산, 과학 모델링
- 메모리 최적화 (Memory Optimized)
- 정의
- 대규모 데이터셋을 메모리(RAM) 위에서 빠르게 처리하기 위해 고용량 메모리를 장착한 인스턴스
- 적합한 태스크
- 메모리 내 데이터베이스(In-memory DB), 실시간 빅데이터 분석
- 가속화된 컴퓨팅 (Accelerated Computing)
- 정의
- CPU 이외에 그래픽 카드(GPU)나 FPGA 등 하드웨어 가속기(보조 프로세서)를 장착하여 전용 가속 기능을 제공하는 인스턴스
- 적합한 태스크
- 부동 소수점 수 계산, 3D 그래픽 처리, 데이터 패턴 매칭
- 스토리지 최적화 (Storage Optimized)
- 정의
- 로컬 스토리지에 존재하는 초대형 데이터셋에 대해 매우 높은 순차적 읽기/쓰기(I/O) 성능을 보장하는 인스턴스
- 적합한 태스크
- 분산 파일 시스템, 데이터 웨어하우스용 고성능 스토리지, 대용량 DB
- 인스턴스 크기 선택 및 가상화 유연성
- 특징
- 인스턴스 크기가 커질수록 컴퓨팅 용량이 늘어나지만 비용 또한 함께 증가하므로, 비즈니스 예산과의 균형을 맞추는 것이 중요함
- 한 번 프로비저닝한 인스턴스 유형과 크기에 영구적으로 종속되지 않으며, 요구 성능에 따라 다른 규격으로 신속하게 변경 및 전환할 수 있음
3. aws 리소스를 프로비저닝하는 방법
- AWS API (Application Programming Interface)
- 정의
- AWS 서비스와 상호 작용하는 규칙을 사전에 정의해 둔 인터페이스
- 특징
- 리소스 생성, 변경, 삭제 등 AWS에서 수행되는 모든 관리 작업은 백그라운드에서 API 직접 호출 (API Call)을 통해 이루어짐
- AWS API 상호 작용 방법 3가지 (시험 단골 주제)
- AWS Management Console (AWS 관리 콘솔)
- 정의
- 웹 브라우저를 기반으로 마우스 클릭을 통해 리소스를 제어하는 그래픽 사용자 인터페이스 (GUI)
- 특징
- 시각적이고 직관적이어서 클라우드 학습 초기 단계, 테스트 환경 구축, 예산/청구서 조회, 리소스 모니터링에 매우 적합함
- 프로덕션 환경에서 대규모 리소스를 반복적으로 수동 배포할 경우, 체크 실수나 오타 등 휴먼 에러(수동 오류)가 발생할 위험이 있음
- AWS CLI (Command Line Interface)
- 정의
- 운영체제의 터미널/명령줄을 사용하여 텍스트 기반 명령어로 AWS 서비스를 호출하는 도구
- 특징
- 텍스트 명령어(예:
aws ec2 run-instances로 인스턴스 생성)를 통해 작동하므로, 셸 스크립팅 등을 이용한 자동화가 가능하여 오류 없는 예측 가능한 인프라 배포에 유리함
- 브라우저 기반의 사전 설치 터미널인 AWS CloudShell을 통해서도 간편하게 실행할 수 있음
- AWS SDK (Software Development Kit)
- 정의
- 특정 프로그래밍 언어(Python, Java, C# 등)용 라이브러리와 API 모음집을 제공하여 코드로 AWS 리소스를 다룰 수 있게 해주는 소프트웨어 개발 키트
- 특징
- 사용자의 애플리케이션 소스 코드 자체에 AWS 리소스 제어(인스턴스 목록 조회, 파일 업로드 등) 기능을 내장하여 고도로 정교한 프로그래밍 제어를 구현할 때 사용됨
- 컴퓨팅 및 공동 책임 (Shared Responsibility in Computing)
- 대전제
- AWS는 클라우드 자체의 보안(하드웨어, 물리 인프라, 하이퍼바이저)을 담당함
- 고객은 클라우드 내부의 보안(애플리케이션, 데이터, 액세스 제어)을 책임짐
- 비관리형 서비스 (Unmanaged Services)의 책임 모델
- 정의
- 사용자가 필요한 인프라의 세부 설정, 보안 구성 및 관리 태스크를 직접 수행해야 하는 서비스
- Amazon EC2 인스턴스 배포 시 고객의 책임 범위
- 가상 가상 방화벽인 보안 그룹(Security Groups) 설정
- 게스트 운영 체제(OS) 관리, 보안 패치 및 업데이트 적용
- 데이터 암호화 및 인스턴스 내 구동 소프트웨어 보안 구성
4. 데모: amazon ec2 인스턴스 시작
- EC2 인스턴스 생성 시 주요 구성 요소 (시험 연계 포인트)
- AMI (Amazon Machine Image)
- 정의
- 인스턴스를 시작하는 데 필요한 운영 체제(OS)와 기본 애플리케이션 구성이 들어 있는 템플릿
- 구성 요소
- 운영 체제 (OS), 스토리지 설정, 하드웨어 아키텍처 유형, 인스턴스 시작 권한, 사전 설치된 추가 소프트웨어
- 단 1개의 AMI를 템플릿으로 사용하여 완전히 동일한 설정을 가진 다수의 EC2 인스턴스를 동시에 시작할 수 있음
- AMI를 사용하는 3가지 방법 (획득 경로)
- 자체 AMI 생성 (사용자 지정)
- 필요에 따라 특정 소프트웨어 및 구성을 미리 세팅하여 빌드하는 나만의 맞춤형 이미지
- 사전 구성된 AWS AMI
- 일반적인 운영체제 및 핵심 소프트웨어가 탑재되어 AWS에서 기본 제공하는 표준 이미지
- AWS Marketplace 구매
- 특정 사용 사례에 맞추어 전문 서드 파티 공급업체가 소프트웨어를 구성하여 제공하는 인증된 이미지를 구매하여 사용
- AMI의 반복성 (Repeatability)
- 정의
- 모든 새 인스턴스에 일관된 환경을 보장하여 재현 가능하게 만드는 특성
- 이점
- 개발 및 테스트 환경이 완벽히 일치하여 배포 규모 조정에 유리하고, 설정 누락 등 휴먼 에러를 대폭 줄이며, 대규모 클라우드 환경 관리가 매우 단순해짐
- 인스턴스 유형 (Instance Type)
- 정의
- 인스턴스에 할당할 CPU 및 메모리 사양 결정 (예:
t2.micro는 1 vCPU, 1GB RAM 제공)
- 키 페어 (Key Pair)
- 정의
- 생성된 인스턴스에 안전하게 원격 접속하기 위한 비밀키 인증 방식
- 특징
- AWS 클라우드에 삽입되는 퍼블릭 키(Public Key)와 사용자가 다운로드하여 로컬에 안전하게 보관하는 프라이빗 키(Private Key) 한 쌍으로 작동함
- 네트워크 설정 (Network Settings)
- 특징
- 인스턴스로 들어오고 나가는 네트워크 트래픽 규칙 설정 (예: 외부 인터넷 사용자의 웹 서비스 접속을 위해 HTTP 트래픽 허용 옵션 활성화)
- 스토리지 구성 (Configure Storage)
- 특징
- 인스턴스에 가상 디스크 공간을 추가하는 설정 (예: gp3 EBS 볼륨을 할당하여 저장 공간 제공)
- 사용자 데이터 (User Data)
- 정의
- 인스턴스가 최초 부팅(시작)될 때 백그라운드에서 자동으로 딱 한 번 실행되는 셸 스크립트
- 특징
- 부팅 시점에 소프트웨어 자동 설치 및 환경 설정 작업을 자동화할 수 있음 (예: Nginx 웹 서버 자동 설치 및 기동 스크립트 구동)
- 가동 확인
- 특징
- 인스턴스가 실행 중(Running) 상태가 되면, 할당된 퍼블릭 IP 주소를 웹 브라우저 주소창에 입력하여 Nginx 등 가동 중인 웹 서버의 작동 여부를 즉시 검증할 수 있음
5. amazon ec2 요금
- EC2 6가지 핵심 요금 옵션 (시험 필수 출제)
- 온디맨드 인스턴스 (On-Demand)
- 정의
- 장기 약정이나 선불금 없이, 인스턴스가 실행(Running)되는 동안 사용한 컴퓨팅 용량에 대해서만 비용을 지불하는 모델
- 특징
- 사용 패턴의 기준치(Baseline)를 파악하지 못한 초기 단계, 단기 테스트 및 실험, 예측이 불가능한 워크로드에 가장 권장됨
- 절감형 플랜 (Savings Plans)
- 정의
- 1년 또는 3년 기간 동안 시간당 일정 수준의 컴퓨팅 사용량(예: 시간당 $10 등)을 유지하기로 약정하여 최대 72%의 비용을 절감하는 요금제
- 특징
- 유연성이 매우 높음. 인스턴스 패밀리, 크기, OS, 테넌시, 리전 변경에 제약을 받지 않고 EC2 할인 적용 가능
- EC2뿐만 아니라 Fargate, Lambda, SageMaker 사용량에도 동일하게 공유하여 할인이 적용됨
- 예약 인스턴스 (Reserved Instances - RI)
- 정의
- 꾸준하고 예측 가능한 상태(Steady-state)의 워크로드에 대해 1년 또는 3년 기간으로 사용 약정을 체결하여 온디맨드 대비 최대 75% 비용을 절감하는 옵션
- 특징
- 3가지 결제 옵션 제공: 전액 선결제(All Upfront), 부분 선결제(Partial Upfront), 선결제 없음(No Upfront)
- 동일 인스턴스 패밀리 내에서 유연한 크기 조정 및 리전 내 여러 가용 영역(AZ)에 할인이 자동 적용됨
- 스팟 인스턴스 (Spot Instances)
- 정의
- AWS 내부의 미사용 예비 컴퓨팅 용량을 요청하여 온디맨드 가격 대비 최대 90% 할인된 가격으로 사용하는 인스턴스
- 특징
- AWS에 용량이 부족해지면 인스턴스가 언제든지 강제 회수(중단)될 수 있으며, 회수 전 2분의 경고(알림)가 제공됨
- 시스템이 중단되어도 무방한 유연한 시작/종료 일괄(배치) 처리 작업, 데이터 분석, 대규모 테스트 워크로드에 매우 적합함
- 전용 호스트 (Dedicated Hosts)
- 정의
- 고객이 독점적으로 사용할 수 있도록 완전히 분리된 실제 물리적 서버 전체를 예약하는 방식
- 특징
- 인스턴스의 하드웨어 물리 배치 및 리소스 할당을 직접 완벽하게 제어할 수 있음
- 기존 소프트웨어 라이선스(BYOL - Bring Your Own License, 예: Windows, SQL Server)를 그대로 유지해야 하거나, 극도로 엄격한 물리 격리 및 규정 준수 요구가 있는 경우 사용
- 전용 인스턴스 (Dedicated Instances)
- 정의
- 다른 AWS 계정 고객의 인스턴스와 물리적으로 격리된 단일 테넌트 하드웨어에서 실행되는 인스턴스
- 특징
- 전용 호스트와 달리 실제 물리 서버의 인스턴스 배치나 리소스 세부 할당 제어 권한은 갖지 못하지만, 계정 수준의 물리적 격리 혜택과 공유 인프라의 유연성을 동시에 가질 수 있음
- Amazon EC2 용량 예약 (Capacity Reservations)
- 정의
- 특정 가용 영역(AZ)에서 컴퓨팅 용량을 확실하게 미리 확보해 두는 설정
- 특징
- 예약한 리소스를 실제로 실행하지 않고 비워두더라도 온디맨드 요금과 동일하게 요금이 청구됨
- 용량 요구 사항이 엄격하고 절대 서비스 중단이 발생하면 안 되는 중요한(비즈니스 크리티컬) 워크로드에 사용됨
자동 스케일링 및 로드 밸런싱
1. Amazon EC2 스케일링
- 확장성 (Scalability) vs 탄력성 (Elasticity)
- 확장성 (Scalability)
- 정의
- 늘어난 로드를 정상 처리하기 위해 자원을 추가할 수 있는 시스템의 구조적 능력
- 특징
- 단기적인 스케일링보다 주로 예상되는 성장을 감당하기 위한 장기적인 용량 계획에 활용됨
- 탄력성 (Elasticity)
- 정의
- 실시간 수요의 변화에 따라 필요 리소스를 자동으로 확보하거나 불필요 리소스를 차단하는 동적 조절 기능
- 특징
- 피크 트래픽 타임에는 자동 증설(스케일 아웃)하고, 한적한 밤 시간 등 수요가 적어지면 자동 해제(스케일 인)하여 최상의 비용 효율성을 보장함
- 수평적 스케일링 (Horizontal) vs 수직적 스케일링 (Vertical)
- 수평적 스케일링 (스케일 아웃 / 스케일 인)
- 정의
- 인프라 자원 풀에 동일한 규격의 서버 인스턴스를 추가하거나 삭제하는 방식 (병렬 처리 개수를 증가시킴)
- 수직적 스케일링 (스케일 업 / 스케일 다운)
- 정의
- 구동 중인 개별 단일 가상 서버 자체의 사양(CPU 파워, 메모리 용량 등)을 높이거나 낮추는 방식
- 고가용성을 위한 다중 가용 영역(AZ) 이중화 배포
- 특징
- 단일 장애점(SPOF - Single Point of Failure)을 방지하기 위해, 동일 아키텍처의 중복 인스턴스들을 서로 다른 가용 영역(AZ)에 분산 배포하는 것을 모범 설계 사례로 규정함
- Amazon EC2 Auto Scaling
- 정의
- 서비스 수요 변화에 발맞춰 실행 중인 EC2 인스턴스의 개수를 자동으로 증감시켜 가용성을 확보하는 완전 관리형 서비스
- 작동 조건
- Amazon CloudWatch가 수집한 핵심 지표(CPU 사용률, 네트워크 입출력 등) 데이터를 모니터링하여 자동으로 스케일링 작업이 트리거됨
- 2가지 조정 접근 방식 (시험 출제율 높음)
- 동적 스케일링 (Dynamic Scaling)
- 실시간 수요 및 트래픽 변동치(예: CPU 점유율 80% 초과)에 즉각 반응하여 자원을 늘림
- 예측 스케일링 (Predictive Scaling)
- 과거 데이터 패턴과 기계 학습을 통해 예상되는 트래픽 패턴을 예측하고 미리 적절한 수의 인스턴스를 선제적으로 확보함
- Auto Scaling 그룹 (ASG)의 3가지 핵심 설정값 (시험 빈출)
- 최소 용량 (Minimum Capacity)
- 정의: 워크로드를 상시 가동하기 위해 유지해야 하는 물리적 최소 인스턴스 수. 시스템이 이 수치 이하로는 축소되지 않음
- 원하는 용량 (Desired Capacity)
- 정의: Auto Scaling이 최적의 상태로 가동하기 위해 목표로 삼는 이상적인 인스턴스 수. 기본적으로 최소 용량과 연동됨
- 최대 용량 (Maximum Capacity)
- 정의: 트래픽 폭발 시 비용 과다 지출 및 초과 스케일링을 제한하는 인스턴스 개수의 상한선 임곗값
2. Elastic Load Balancing을 사용하여 트래픽 전달
- Elastic Load Balancing (ELB)
- 정의
- 들어오는 애플리케이션 트래픽을 EC2 인스턴스, 컨테이너, IP 주소 등 여러 대상에 자동으로 분산시켜 시스템 성능과 신뢰성을 최적화하는 완전 관리형 부하 분산 서비스
- 특징
- 외부 인터넷 트래픽(퍼블릭)뿐만 아니라 내부 백엔드 아키텍처 티어 간의 트래픽(프라이빗)도 관리할 수 있음
- 로드 밸런서 자체의 스케일링이 자동으로 수행되어, 트래픽 유동성에 탄력적으로 대응함
- ELB의 핵심 이점 (시험 연계)
- 효율적인 트래픽 분산
- 정의
- 여러 가용 서버들로 트래픽을 고르게 나누어 단일 서버의 오버로드를 예방하고 전반적인 리소스 사용을 극대화함
- Auto Scaling과의 연동 및 고가용성 보장
- 정의
- Auto Scaling 그룹과 직접 유기적으로 연동하여, 백엔드 인스턴스가 생성되거나 해제될 때 동적으로 라우팅 풀에 추가 및 제외시킴
- 사용 가능한 정상 서버(인스턴스)로만 요청을 분산하여 무중단 상태를 유지함
- 시스템 결합 해제 (Decoupling) 및 관리 간소화
- 정의
- 프런트엔드 서비스가 개별 백엔드 인스턴스의 유동적인 IP를 직접 추적할 필요 없이, ELB가 제공하는 단일 웹 URL(단일 접점)만 바라보도록 설계하여 시스템 의존성을 완전히 분리함
- 하드웨어 패치, 유지 보수, 장애 복구 등의 수동 운영 오버헤드를 경감시킵니다.
- ELB의 4가지 주요 라우팅 방법
- 라운드 로빈 (Round Robin)
- 정의
- 가동 중인 사용 가능한 모든 서버에 순차적으로 트래픽을 균등하게 분산시킴
- 최소 연결 (Least Connections)
- 정의
- 현재 활성화된 세션/연결 수가 가장 적은 서버를 식별하여 새 트래픽을 라우팅함
- IP 해시 (IP Hash)
- 정의
- 클라이언트의 IP 주소를 고유값으로 매핑하여 항상 지정된 동일 서버로 일관되게 트래픽을 보냄 (세션 유지 필요 시 유용)
- 최소 응답 시간 (Least Response Time)
- 정의
- 응답 대기 시간이 가장 신속한 서버를 찾아 트래픽을 우선 전달하여 대기 시간을 최소화함
3. 메시징 및 대기열 처리
- 애플리케이션 아키텍처와 결합도 (Coupling)
- 긴밀한 결합 (Tightly Coupled) / 모놀리스 (Monolith) 아키텍처
- 정의
- 애플리케이션의 모든 구성 요소(데이터베이스, 웹 서버, 비즈니스 로직 등)가 서로 직접 연결되어 동기적으로 통신하는 방식
- 단점
- 단 하나의 구성 요소에 장애가 발생하더라도 전체 시스템이 중단되는 연쇄 실패가 발생할 위험이 큼
- 느슨한 결합 (Loosely Coupled) / 마이크로서비스 (Microservices) 아키텍처
- 정의
- 각 구성 요소가 독립된 엔터티로 분리되어 메시지 대기열이나 이벤트를 통해 비동기적으로 간접 통신하는 방식
- 장점
- 특정 서비스에 장애가 발생해도 버퍼(대기열)가 메시지를 안전하게 보관하므로, 전체 시스템으로 장애가 전파되지 않고 가용성과 복원력이 유지됨
- 느슨한 결합을 지원하는 3대 AWS 통신 서비스 (시험 단골 주제)
- Amazon SQS (Simple Queue Service)
- 정의
- 소프트웨어 구성 요소 간에 모든 대규모 메시지를 전송, 저장, 수신할 수 있도록 지원하는 비동기식 메시지 대기열 서비스 (Pull 방식)
- 작동 원리
- 보낸 쪽(송신자)이 메시지 데이터를 대기열에 담아두면, 받는 쪽(수신자)이 원할 때 대기열에서 이를 꺼내(검색) 처리한 뒤 메시지를 명시적으로 삭제함
- 장점
- 수신 서버가 일시적으로 가동 중단되거나 트래픽이 급증(버스트)해도 대기열에 메시지가 안전하게 보존되므로 데이터 유실을 완전 방지함
- Amazon SNS (Simple Notification Service)
- 정의
- 게시자-구독자(Pub-Sub) 모델을 기반으로, 하나의 주제(Topic)에 등록된 다수의 구독자들에게 알림 메시지를 즉시 전송하는 완전 관리형 서비스 (Push 방식)
- 작동 원리
- 게시자가 특정 메시지를 게시하면, 대기하지 않고 모바일 푸시 알림, SMS 문자, 이메일, HTTP 웹훅 또는 Lambda 함수 등의 구독자들에게 즉각 전달(팬아웃)함
- SQS와의 결정적 차이점
- SQS는 메시지가 처리될 때까지 대기열에서 수령을 기다리지만, SNS는 수령 대기 없이 즉각적인 푸시 응답 및 다중 전송을 수행함
- Amazon EventBridge
- 정의
- 다양한 소스(자체 커스텀 앱, AWS 서비스, 서드파티 SaaS 소프트웨어)에서 발생하는 실시간 데이터를 이벤트 버스(Event Bus)를 통해 다른 타깃 애플리케이션으로 안전하게 라우팅하는 서버리스 이벤트 버스 서비스
- 장점
- 이벤트 기반 시스템(Event-Driven System)의 중앙 허브 역할을 하여 서비스 간 통신 흐름의 수신, 필터링, 변환, 라우팅 처리를 극도로 단순화함