일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- 프롬프트엔지니어링
- 오블완
- UNICON2023
- Route53
- Spring boot
- 티스토리챌린지
- 도커
- 인프라
- 프리티어
- 생활코딩
- 라피신
- openAI API
- 전국대학생게임개발동아리연합회
- 게임개발동아리
- 체크인미팅
- CICD
- 캡스톤디자인프로젝트
- 프로그래밍
- bastion host
- 스프링부트
- Redis
- UNICON
- NAT gateway
- 개발공부
- UNIDEV
- AWS
- EC2
- 백엔드개발자
- spring ai
- 42서울
- Today
- Total
Hyun's Wonderwall
[AWS] Solutions Architect Associate 공부 - IAM, EC2, ELB, ASG 본문
"【한글자막】 AWS Certified Solutions Architect Associate시험합격! 2025"(https://www.udemy.com/course/best-aws-certified-solutions-architect-associate/?couponCode=ACCAGE0923) 강의를 들으며 공부한 내용을 정리합니다.
AWS 개요
AWS: Cloud Provider (provide you with servers and services that you can use on demand(온디맨드: 주문형) and scale easily) 언제든 서버/서비스 원하는 만큼 얻을 수 있어서 'on demand', 확장 쉬움.
<-> 데이터센터 on premise(온프레미스: 설치형) 방식과 다름: 클라우드에 서버 올려 쓰기 위해 서버를 물리적으로 주문하고 설치하는 과정 필요
AWS Regions: a cluster of data centers
AWS Region 선택 시 고려 요소 - 데이터 법규 준수, 고객과의 거리(지연 시간 감소), 리전별 제공 서비스 및 기능, 가격
1) Compliance with data governance and legal requirements
2) Proximity to customers: reduced latency
3) Available services within a Region: new services and new features are'nt available in every region
4) Pricing
AWS Availability Zones (AZ. 가용 영역)
- 각 region: 많은 AZ 가짐 (보통 3, 3~6개. / ex: ap-southeast-2a, ap-southeast-2b, ...)
- 각 AZ: 하나 이상의 discrete(독립적인) 데이터 센터들 with redundant power, networking, and connectivity (이중화된 전원, 네트워킹, 연결)
- region 내 AZ들은 서로 분리되어있어 재해로부터 영향을 덜 받도록 설계됨. (isolated)
- AZ들은 서로 고대역폭 초저지연 연결
AWS Points of Presence (Edge Locations)
- 전 세계 90개 도시 이상에 400개 이상의 엣지 로케이션 운영 -> 사용자에게 빠르고 지연 없이 콘텐츠 전달
Tour of the AWS Console
- AWS의 Global Services(리전x, 글로벌): IAM, Route 53, CloudFront, WAF 등
- Most AWS services are Region-scoped(리전 단위): Amazon EC@, Elastic Beanstalk, Lambda, Rekognition 등
- Region Table: 리전별로 사용 가능한 AWS 서비스 목록 확인 가능
AWS IAM
• IAM(Identity and Access Management)은 글로벌 서비스
• Root account: 디폴트로 기본 생성되지만 사용되거나 공유되어서는 안 된다.
• Users(사용자): 조직 내 사람들, 그룹핑될 수 있음. (그룹에 속하지 않을수도, 여러 그룹에 속할수도 있음)
• Groups(그룹): only contain users, not other groups
IAM 권한
• Users나 Groups에 policies(정책)라는 JSON 문서를 할당해 사용자의 권한을 정의 (최소 권한 원칙을 지킬 것)
- 그룹에 정책을 연결(일반적) or 개별 사용자에 인라인 정책 연결
IAM Policies Structure
구성:
• Version: 정책 언어 버전. 항상 “2012-10-17”로
• Id: (선택) 정책 식별자
• Statement: (필수) 하나 이상의 개별 statements
- 개별 Statement 구성:
• Sid: (선택) statement 식별자
• Effect(효과): Allow / Deny (API에 접근을 허용하는지, 불허하는지)
• Principal(주체): 이 정책이 적용되는 계정/사용자/역할
• Action(작업): 이 정책이 (effect에 기반해) 허용/불허하는 액션(API 호출) 목록
• Resource(리소스): 이 정책이 적용되는 리소스 목록
• Condition: (선택) statement(의미적으로는 세부 정책의) 시행 조건
IAM Password Policy
- 비밀번호 정책 설정 가능: 최소 길이, 대소문자, 숫자, 특수문자 포함 등 조건 + 비밀번호 변경 주기 설정과 재사용 방지 가능
Multi Factor Authentication - MFA
- MFA = password you know(비밀번호) + security device you own(소유한 보안 장치)
- 이중 인증 방식으로 AWS 계정 보안 강화
MFA devices options in AWS
1. Virtual MFA device (한 디바이스에 복수의 토큰(다수 계정) 저장)
2. Universal 2nd Factor (U2F) Security Key (물리적 장치. 서드파티. 단일 보안 키 사용해 여러 root/IAM 사용자 지원)
3. Hardware Key Fob MFA Device (하드웨어 TOTP 토큰)
4. Hardware Key Fob MFA Device for AWS GovCloud (US) (하드웨어 TOTP 토큰)
AWS에 액세스하는 3가지 방법
• AWS 관리 콘솔: 웹페이지에서 접속하는 방식. (비밀번호 + MFA 인증)
• AWS CLI: 커맨드라인 셸에서 명령어로 AWS 서비스와 상호 작용할 수 있는 도구. (액세스 키로 인증)
- AWS 서비스의 공용 API에 직접 액세스 가능. 리소스 관리용 스크립트 작성해 활용 가능. 오픈소스.
• AWS SDK(코드용): 프로그래밍 방식으로 AWS 서비스에 접근 및 관리. 내 애플리케이션에 임베드됨. (액세스 키 인증)
- SDKs. Mobile SDKs. IoT Device SDKs.
• 액세스 키: AWS 콘솔을 통해 생성
- Access Key ID: username
- Secret Access Key: = password
IAM Roles(역할)
• AWS 서비스나 애플리케이션이 사용자 대신 작업 수행 가능하도록 권한을 위임하는 임시 보안 자격 증명(엔터티)
• 역할에 정책(권한 정의) 연결 → 신뢰할 수 있는 주체(EC2, Lambda, 사용자 등)가 역할을 맡아 권한 행사
• Access Key 사용 없이 안전하게 AWS 리소스에 접근할 수 있어 모범 사례로 권장됨
• 발급되는 자격 증명은 임시(예: 몇 분~몇 시간 유효), 사용 종료 시 자동 만료
- 예시) EC2 인스턴스에서 S3 접근 시, Access Key 하드코딩 대신 IAM 역할 부여 → AWS SDK가 자동 인증 수행, 제한된 시간 동안만 권한 행사
- 참고) 역할은 일반적으로 AWS 서비스에 부여하여 사용, IAM User도 AssumeRole을 통해 역할 사용 가능
IAM Security Tools
• IAM Credentials Report(IAM 자격 증명 보고서): 계정 내 모든 사용자와 인증 정보 상태를 보여주는 보고서
• IAM Access Advisor(IAM 액세스 관리자): 사용자가 접근 권한을 가진 서비스와 서비스별 마지막 사용 시점을 보여주는 도구
IAM Guidelines & Best Practices
• 루트 계정은 AWS 계정 설정 시에만 사용, 한 사람에게 한 IAM 사용자 생성, 사용자를 그룹에 할당하고 권한은 그룹 단위로 부여, 강력한 비밀번호 정책 설정, MFA 사용, AWS 서비스에 권한 줄 때 역할 생성해 사용, CLI나 SDK를 통한 접근에 Access Key 사용, IAM 자격 증명 보고서와 Access Advisor로 계정 권한 점검, IAM 사용자나 Access Key 공유 X
IAM Section – Summary
• 사용자(User): 실제 사용자에 대응, AWS 콘솔 로그인용 비밀번호를 가짐
• 그룹(Group): 사용자들만을 포함
• 정책(Policy): 사용자나 그룹의 권한을 정의한 JSON 문서
• 역할(Role): EC2 인스턴스나 AWS 서비스에 권한 부여시 사용
• 보안: MFA + 비밀번호 정책
• AWS CLI: 명령어로 AWS 서비스 관리
• AWS SDK: 코드로 AWS 서비스 관리
• Access Key: CLI나 SDK로 접근할 때 사용,
• 감사(Audit): IAM 자격 증명 보고서와 Access Advisor로 계정 권한 점검
Amazon EC2
• EC2(Elastic Compute Cloud) = AWS의 대표적인 IaaS(Infrastructure as a Service) 서비스
• 주요 기능: 가상 서버 임대 (EC2 인스턴스), 가상 디스크에 데이터 저장 (EBS), 트래픽 분산 (ELB), 자동 확장 (ASG)
EC2 sizing & configuration options
• OS(Linux, Windows, Mac OS), CPU(코어 수 및 연산 성능), RAM(메모리), 스토리지(네트워크 연결형(EBS, EFS), 하드웨어(EC2 Instance Store))
• 네트워크 카드: 네트워크 카드 속도, 퍼블릭 IP 할당 여부
• 방화벽 규칙: Security Group
• Bootstrap script(첫 실행 시 자동 실행): EC2 User Data
EC2 User Data
• EC2 User Data 스크립트로 인스턴스 bootstrap 가능 ()
• 부트스트래핑(Bootstrapping): 기계가 시작할 때 명령어들을 자동 실행하는 것
• 스크립트는 인스턴스 최초 부팅 시 1회만 root user 권한으로 실행됨 (->x
• 주로 자동화 작업에 사용 (ex. 업데이트 설치, 소프트웨어 설치, 인터넷에서 파일 다운로드)
+ 실습에서 User Data 스크립트를 통해 소프트웨어 설치를 일괄적으로 시키는 부분이 인상깊었다. 전에 EC2 이미지+템플릿을 활용해 ASG를 구축할 때 이 칸에 docker 컨테이너를 띄우는 커맨드를 작성한 적이 있는데, 다음부터는 초기 설정에서부터 이 칸을 활용해야겠다.
EC2 인스턴스 타입 명명 규칙
- instance class, generation , instance class간의 크기 (ex. m5.2xlarge)
EC2 Instance Types
- General Purpose: 다양한 워크로드에 적합 (예: 웹 서버, 코드 저장소). CPU, 메모리, 네트워크 간 균형
- Compute Optimized: 고성능 프로세서를 요구하는 계산 집약적 작업에 특화 (예: 배치 처리, 미디어 트랜스코딩, 고성능 웹 서버. 고성능 컴퓨팅(HPC), 과학 모델링, 머신러닝, 전용 게임 서버)
- Memory Optimized: 대용량 데이터를 메모리에서 처리하는 작업에 특화 (예: 고성능 DB, 대규모 분산 캐시, BI용 인메모리 DB, 실시간 빅데이터 처리 애플리케이션)
- Storage Optimized: 로컬 저장소에 대해 빠른 순차적 읽기/쓰기가 필요한 작업에 특화 (예: 고빈도 OLTP 시스템, DB, 인메모리 DB 캐시 (예: Redis), 데이터 웨어하우징, 분산 파일 시스템
Security Groups
보안 그룹: AWS에서 네트워크 보안 위한 기본. EC2 인스턴스 안팎으로 트래픽이 허용되는 방식을 제어함. 방화벽.
보안 그룹은 허용 규칙만 포함. (무엇이 들어가고 나갈 수 있는지 확인 가능)
보안 그룹은 IP 주소에 대해서나 다른 보안 그룹을 참조하여 규칙을 설정할 수 있다. (reference)
인바운드 트래픽: 외부에서 EC2 인스턴스로 들어가는 것이 허용되는지
아웃바운드 트래픽: EC2 인스턴스에서 인터넷으로 나가는 것이 허용되는지
보안 그룹이 규제하는 것:
- 포트 접근
- 승인된 IP 범위 (IPv4 / IPv6)
- 인바운드 네트워크 제어 (인스턴스<-외부)
- 아웃바운드 네트워크 제어 (인스턴스-> 외부)
보안 그룹 인바운드 규칙 예
- Type(HTTP 등), Protocol(TCP 등), Port Range(80 등), Source(0.0.0.0 등), Description
- Source에서 허용 IP 주소 범위로 0.0.0.0/0은 모든 것을 의미, 특정 한 IP 주소 지정 가능.
Security Groups Diagram
EC2 인스턴스에 인바운드 규칙과 아웃바운드 규칙이 적용되어있는 상태
- 인바운드 규칙: 트래픽의 IP 허용 여부에 따라 방화벽 허용/차단 효과
- 아웃바운드 규칙: 기본적으로 모든 IP로 모든 Port가 나가는 것을 허용
Security Groups Good to know
- 보안 그룹은 여러 인스턴스에 적용 가능
- 보안 그룹은 특정 지역과 VPC 조합에만 제한됨 (다른 지역 또는 다른 VPC 사용 시 보안 그룹 재생성 필요)
- 보안 그룹은 EC2 인스턴스 외부의 방화벽. 보안 그룹에 의해 트래픽 차단되면 EC2 인스턴스는 트래픽 볼 수 X
- SSH 접근을 위해서만 별도의 보안 그룹을 하나 유지하는것이 좋음
- 애플리케이션에 접근할 수 없는 경우("타임아웃") 보안 그룹 문제일 가능성이 높음 (ex. 임의의 포트에 연결하려고 하는데 컴퓨터가 정지하고 대기)
- 애플리케이션에 의해 "connection refused" 에러가 발생하면 애플리케이션 문제 or 실행되지 X (실제로 보안 그룹이 작동하고 트래픽이 통과했지만 애플리케이션 오류 발생 등)
- 기본적으로 모든 인바운드 트래픽은 차단되고 모든 아웃바운드 트래픽은 승인된다.
Referencing other security groups Diagram
다른 보안 그룹의 보안 그룹을 참조하는 방법
Classic Ports to know
22 = SSH (log into a Linux instance)
21 = FTP (upload files into a file share)
22 = SFTP (upload files using SSH)
80 = HTTP (access unsecured websites)
443 = HTTPS (access secured websites)
3389 = RDP (log into a Windows instance)
SSH 개요
- SSH
- Putty
- EC2 Instance Connect
EC2 Instances 구매 옵션
- EC2 On Demand
- EC2 Reserved Instances
- EC2 Saving Plans
- EC2 Spot Instances
- EC2 Dedicated Hosts
- EC2 Capacity Reservations
Public IPv4 주소에 대해 비용 부과
Spot Instance와 Spot Fleet
EC2 Instance launch type
IP주소
- IPv4: [0-255].[0-255].[0-255].[0-255] 형태의 32비트 주소 (ex. 1.160.10.240)
- IPv6: IPv4 주소 고갈 문제를 해결하기 위해 도입 (ex. 3ffe:1900:4545:3:200:f8ff:fe21:67cf)
Private IP vs Public IP
- Private IP(사설 IP): 특정 사설 네트워크 내부에서만 유효한 IP주소. 인터넷 통신 시 NAT(Network Address Translation)과 IGW를 통해 Public IP로 변환된다. 사설 IP로 사용 가능한 대역이 정해져 있다.
- Public IP(공인 IP): 인터넷상에서 유일하게 식별 가능한 IP주소. 지리적 위치 추적이 용이.)
Elastic IP: EC2 인스턴스에 고정적인 Public IP가 필요한 경우 탄력적 IP를 소유해 할당할 수 있음. 변경 가능.
EC2는 Private IP, Public IP 모두 할당받는다. / Private IP: AWS 내부 네트워크 통신에 사용. Public IP: 인터넷 통신에 사용.
EC2 Batch Group
Placement Groups: EC2 인스턴스의 배치 전략을 제어하기 위한 기능.
- Cluster: 단일 AZ 내에서 인스턴스를 하나의 low-latency 그룹으로 묶음.
- 인스턴스 간 10Gbps의 높은 네트워크 대역폭 -> 낮은 지연 시간. 빅 데이터 처리 등 초저지연 고대역폭 성능 중요한 경우.)
- Spread: 각 인스턴스를 서로 다른 물리적 하드웨어에 분산 배치.
- 동시 장애 발생 위험 최소화-> 고가용성. AZ별로 최대 7개 인스턴스 지원
- Partition: 인스턴스를 AZ 내의 여러 파티션에 분산 배치.
- 각 파티션 서로 다른 물리적 랙에 위치-> 장애 격리. 수백개 인스턴스로 대규모 확장 가능. 분산 시스템에 적합.
Elastic Network Interfaces (ENI, 탄력적 네트워크 인터페이스): 가상 네트워크 카드 역할을 하는 VPC의 핵심 컴포넌트. VPC 가상 내트워크 내부에서 모든 트래픽(내/외)을 처리하는 인터페이스.
- 하나의 기본 private IPv4 주소, 보조 private IPv4 주소 여러 개 (private IPv4당 Elastic IP 할당 가능)
- 하나의 public IPv4 주소
- IP 주소를 포함한 네트워크 정체성을 저장. 인스턴스와 독립적으로 관리되어 장애 조치(Failover) 시 빠르게 재할당이 가능.
EC2 인스턴스의 시작, 중지, 종료
- 최초 시작: OS가 부팅되고 EC2 User Data 스크립트가 실행됨.
- 이후 재시작 시: OS만 부팅됨.
- 중지: 인스턴스를 중지, EBS(디스크)의 데이터는 유지됨. 재시작 가능.
- 종료(삭제): 인스턴스를 영구 삭제, EBS 볼륨의 데이터도 함께 소실.
EC2 Hibernate: 인스턴스의 인메모리(RAM) 상태를 보존하는 기능. (절전 모드)
- 인스턴스 중지 시 RAM 상태를 루트 EBS 볼륨의 파일로 저장하며, 인스턴스 재시작 시 해당 상태를 복원하여 부팅 시간을 단축시킴.
- OS를 재시작하지 않아 기존 부팅보다 훨씬 빠름.
EBS 볼륨(Elastic Block Store Volume): EC2 인스턴스에 연결하여 사용하는 네트워크 드라이브.
- 인스턴스 중지/종료 시에도 데이터가 보존되는 영속적인 스토리지.
- 네트워크를 통해 인스턴스와 통신하므로 약간의 지연이 발생할 수 있음.
- AZ에 종속
- 용량(GB)과 IOPS를 명시적으로 결정하고 설정
EBS – Delete on Termination: EC2 인스턴스 종료 시 해당 볼륨의 삭제 여부를 제어
EBS Snapshots: 특정 시점의 EBS 볼륨을 백업
- AZ 또는 리전 간에 복사하여 데이터를 마이그레이션하는 데 활용
- 기능들:
- EBS 스냅샷 아카이브: 최대 75% 저렴 아카이브 스토리지 티어.
- EBS 스냅샷 휴지통(Recycle Bin): 삭제된 스냅샷을 지정된 보존 기간 동안 보관하는 기능, 복구 가능.
- Fast Snapshot Restore (FSR): 스냅샷에서 볼륨 생성 시 즉시 모든 블록을 초기화해 성능 확보하는 기능.(비쌈)
AMI(Amazon Machine Image): EC2 인스턴스의 특점 시점 상태를 EBS 스냅샷 형태로 저장한 템플릿.
- 사용자가 커스텀한(운영 체제, 소프트웨어, 설정 등) EC2 인스턴스를 기반으로 생성 => 인스턴스 부팅 및 설정 시간 단축
- AMI 유형:
- Public AMI: AWS에서 기본 제공하는 AMI
- My AMI: 사용자가 직접 생성하고 관리하는 AMI
- AWS Marketplace AMI: 다른 공급자가 생성하여 판매하는 AMI
EC2 Instance Store: 인스턴스에 물리적으로 연결된 고성능 디스크.
- 인스턴스가 중지되면 데이터가 소실되는 임시 스토리지. (<-> EBS Volume)
- 버퍼, 캐시, 임시 데이터 보관용. 영구성이 필요 없고 I/O 성능이 최우선일 때 선택.
EBS Volume Types
[SSD]
- General Purpose SSD (gp2 / gp3): 비용 효율 밸런스 범용 스토리지.
- 용도: 시스템 부트 볼륨, 가상 데스크톱, 개발/테스트 환경 등 다양한 워크로드.
- gp3는 용량과 독립적으로 IOPS 및 스루풋을 조절할 수 있어 gp2보다 유연하고 비용 효율적.
- Provisioned IOPS(PIOPS) SSD (io1 / io2 Block Express): 최고 성능의 SSD 볼륨.
- 용도: 일관되고 높은 IOPS 및 낮은 지연 시간이 필수적인 워크로드.
- 일반 SSD의 IOPS 한계(16,000)를 초과하는 성능이 필요할 때 선택.
[HDD]
- Throughput Optimized HDD (st1): 비용 효율적인 HDD.
- 용도: 대용량의 순차적 데이터 처리가 많은 빅 데이터, 데이터 웨어하우스, 로그 처리와 같이 처리량이 중요한 워크로드.
- Cold HDD (sc1): 가장 저렴한 HDD.
- 용도: 자주 접근되지 않는 데이터를 저장하는 경우, 비용 절감이 최우선인 시나리오에 적합.
+) 32000 이상의 IOPS 얻으려면 EC2 Nitro, Io1 또는 Io2 Block Express
EBS Multi-Attach(다중 연결): 단일 EBS 볼륨을 동일 AZ 내의 여러 EC2 인스턴스에 동시 연결하는 기능.
- Io1 또는 Io2 패밀리만 지원
- 클러스터링된 Linux 애플리케이션의 고가용성 확보에 사용됨.
- 애플리케이션 수준에서 동시 쓰기 작업을 직접 관리해야. (클러스터 인식 파일 시스템을 사용해야 함)
EBS Encryption: EBS 볼륨의 데이터를 보호
- 암호화 범위: 볼륨 내 데이터, 전송 중인 데이터, 암호화된 볼륨으로부터 생성된 모든 스냅샷과 새 볼륨
- 기존 암호화되지 않은 볼륨을 암호화하려면: 해당 볼륨의 스냅샷을 생성한 후 스냅샷 복사 시 암호화를 활성화해 새로운 암호화된 볼륨을 생성한 뒤 새로 생성된 암호화된 볼륨을 기존 인스턴스에 연결해야.
Amazon EFS(Elastic File System): 여러 EC2 인스턴스에 동시에 마운트할 수 있는 관리형 NFS(네트워크 파일 시스템).
- 다중 가용 영역(Multi-AZ)에서 EC2 인스턴스들과 함께 동작.
- 용량 계획 없이 사용한 만큼만 지불. gp2 EBS 볼륨에 비해 비쌈.
- Performance 모드(General Purpose, Max I/O)와 Throughtput 모드(Bursting, Provisioned, Elastic)
- 스토리지 클래스: Standard(자주 접근용, 다중AZ에 저장), Infrequent Access(EFS-IA), One Zone(단일 AZ에 저장)
- 라이프사이클 관리: 파일 접근 빈도에 따라 Standard에서 IA로 파일을 자동으로 이동시킬 수 있음
EBS vs EFS
- EBS: 단일 인스턴스의 고성능 영구 디스크가 필요할 때 선택. (ex. 데이터베이스 볼륨)
- EFS: 여러 인스턴스가 동일한 파일에 동시 접근하여 데이터를 공유해야 할 때 선택. (ex. 워드프레스 웹 사이트의 공유 파일)
Scalability & High Availability (확장성 & 고가용성)
- 확장성: 시스템이 더 큰 부하를 처리할 수 있도록 적응하는 능력.
- 수직 확장: 인스턴스 사양(CPU, RAM) 증가, 단일 시스템 성능 향상, RDS 등에서 사용, 물리적 한계 있음
- 수평 확장: 인스턴스 수 증가, 분산 처리, Auto Scaling/Load Balancer 사용
- 고가용성: 시스템에 장애가 발생해도 서비스가 중단 없이 지속될 수 있는 능력.
- 여러 AZ에 인스턴스 분산 배포, 장애 발생 시 서비스 지속
- Auto Scaling Group, Load Balancer, 애플리케이션을 다중 AZ로 사용
Load Balancer: 여러 서버로 트래픽 분산, 단일 접근 지점 제공, 장애 자동 처리, 헬스체크/SSL/스티키 세션/고가용성 지원
Elastic Load Balancer: AWS 관리형, 유지보수/고가용성 자동, 다양한 AWS 서비스와 통합되는 로드 밸런서 전체 제품군
- 로드 밸런서는 내부용(Private), 외부용(Public) 모두 설정 가능
Health Check: 트래픽 분산 전 인스턴스 상태(포트/엔드포인트) 확인, 비정상시 트래픽 제외
AWS 로드 밸런서 종류:
- CLB(구세대): HTTP, HTTPS, TCP, SSL -> 더 이상 지원 X
- ALB(신세대): HTTP, HTTPS, WebSocket (L7 기반)
- NLB(신세대): TCP, TLS, UDP (L4 기반)
- GWLB: L3에서 동작 (네트워크 계층) - IP 기반
(각 로드밸런서의 상세 설정은 자료 참고)
로드 밸런서 보안 그룹 설정 - 외부 요청은 반드시 로드 밸런서를 거쳐서만 EC2에 도달 가능
- 로드 밸런서 보안 그룹: 80(HTTP), 443(HTTPS) 포트에 대해 모든 외부(0.0.0.0/0)에서 접근 허용
- 애플리케이션(EC2) 보안 그룹: 80(HTTP) 포트에 대해 로드 밸런서 보안 그룹만 소스로 허용
Sticky Sessions(세션 고정): 특정 사용자의 트래픽을 항상 같은 백엔드 인스턴스로 전달하는 기능(세션 기반 쿠키 사용)
- ALB, CLB에서 지원. NLB는 지원하지 X
- 장점: 세션 정보 필요 서비스에 적합 / 단점: 인스턴스 장애/스케일 시 세션 이동 어려움, 분산 효율 저하
Cross-Zone Load Balancing: 로드밸런서가 모든 가용영역(AZ)의 인스턴스에 트래픽을 균등하게 분산
- ALB, NLB는 기본 활성화(무료/유료 차이 O), CLB는 유료
- 장점: AZ별 인스턴스 불균형 해소 / 단점: 일부 유형에선 네트워크 비용 증가
SSL/TLS(암호화): 정의: 로드밸런서에서 HTTPS 종료(SSL termination), 인증서 관리
- ACM(AWS Certificate Manager)로 인증서 통합 관리
- 장점: 백엔드와 트래픽 분리(오프로드), HTTPS 서비스 필수
- 비고: End-to-End 암호화(백엔드까지 HTTPS) 필요시 백엔드 서버에도 인증서 필요
Auto Scaling Group(ASG): EC2 인스턴스를 자동으로 추가/제거(스케일 인/아웃)
- Load Balancer와 연동해 헬스체크/트래픽 분산 자동화
- 장점: 수요 변화에 따른 자동 확장/축소, 고가용성/비용 최적화
- 주의: ASG에서 인스턴스 추가/제거 시 Connection Draining 적용 권장
Connection Draining(연결 종료): 정의: 인스턴스 종료/제외 시, 기존 연결된 요청이 완료될 때까지 대기(트래픽 점진적 우회)
- ALB에선 “Deregistration Delay”로 명명, CLB/NLB도 지원
- 장점: 장애/스케일 시 무중단 서비스 유지
'Study > Cloud' 카테고리의 다른 글
[AWS] EC2 계속 상태 검사 실패할 때, Swap 메모리 설정으로 메모리 부족 방지하기 (1) | 2025.07.29 |
---|---|
부하 테스트 도구 k6 설치 & Grafana k6으로 시각화 (2) | 2025.07.09 |
[ACC Ewha] 대규모 채팅 시스템 설계 프로젝트 - (1) 주제 선정, 유저 시나리오 작성, 아키텍처 초안 작성 (2) | 2025.05.12 |
[AWS] RDS, DynamoDB (0) | 2025.04.01 |
[AWS] Storage - S3, CloudFront (0) | 2025.03.25 |