oi_24.log
로그인
oi_24.log
로그인
AWS Cloud Practitioner Essentials - Module 2: 클라우드 컴퓨팅
choi
·
2026년 6월 14일
팔로우
0
AWS Cloud Practitioner Essentials
AWS Cloud Practitioner
목록 보기
2/5
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)의 중앙 허브 역할을 하여 서비스 간 통신 흐름의 수신, 필터링, 변환, 라우팅 처리를 극도로 단순화함
choi
늦게나마 정신을 차리려고 하는 개발 뭐시기하는 사람
팔로우
이전 포스트
AWS Cloud Practitioner Essentials - Module 1: 클라우드 소개
다음 포스트
AWS Cloud Practitioner Essentials - Module 3: 컴퓨팅 서비스 살펴보기
0개의 댓글
댓글 작성