개발일지
그림으로 이해하는 AWS 구조와 기술 4~5장(EC2, S3) 요약 정리 본문
4장. EC2
Amazon EC2(Elastic Compute Cloud)
- AWS에서 제공하는 가상 서버 서비스
- 서버 구축에 필요한 것들을 클라우드에서 임대하여 사용 가능
- 매니지드 서비스 X → OS, SW 설치 및 운영은 직접 해야 함 (IaaS)
- 설계적인 관점 필요 → 어떻게 구성하고 어느정도의 성능을 필요로 할지?
- 생성 및 삭제가 쉽고 자유롭다. → 확장성, 유연성
EC2 사용하기
- 주요 기능
- 인스턴스, AMI, 키페어, EBS, 보안 그룹, Elastic IP
- 인스턴스 설정 항목
- AMI, 유형 및 크기, 리전, 네트워크(VPC), 서브넷, 스토리지(주로 EBS), 태그, 보안그룹
인스턴스 요금 = 인스턴스 사용량 + EBS 요금 + 통신 요금 + 그 외
- 인스턴스 사용량 = 가동 시간(초) * 단가
- EBS 요금 = 용량 * 단가
- 통신 요금 = 아웃바운도 요금 (인바운드는 무료)
- 그 외: Elastic IP 요금 등
EC2가 적합하지 않은 경우
- EC2는 유연한 확장/축소와 필요한 AWS 기능들을 직접 설정할 수 있다는 게 장점이다.
- 그만큼 구축하고 운영하는게 번거로울 수 있다.
- 단순히 구축만 한다거나 변화가 크지 않은 시스템에는 적합하지 않다.
AMI (Amazon Machine Image)
- OS와 SW 구성을 기록한 템플릿
- 복제가 가능하여 인스턴스 생성/삭제가 쉽다.
- 공식 AWS AMI 외에도 기업, 개인, 커뮤니티판 등에서 생성한 다양한 AMI 제공
- 마켓플레이스: AMI을 배포하고 공유하는 저장소 (깃허브 느낌)
인스턴스 유형과 크기
- 인스턴스 유형과 크기가 시스템의 성능을 결정한다.
- 용도에 따라 유형이 달라짐
- 범용 / 컴퓨팅 최적화 / 메모리 최적화 / 가속화된 컴퓨팅 / 스토리지 최적화
t2.micro (유형.크기)
EBS (Elastic Block Store)
- 영구적인 블록 스토리지 볼륨
- 스토리지: 데이터 저장 장소
- 블록 스토리지 볼륨: byte 블록 단위로 데이터 저장
- 오브젝트 스토리지: 객체 단위로 데이터 저장 (ex. S3)
- 종류
- HDD: 대용량 지원, 비용↓, 성능↓
- SDD: 비용↑, 성능↑
- 기능
- 탄력적 볼륨, 스냅샷, 데이터 라이프 사이클 매니저(DLM), 최적화 인스턴스, 암호화
- EBS 요금 = 저장한 용량 * 시간
- 인스턴스 사용 여부와 상관없이 저장된 용량만큼 비용 발생
SSH와 키 페어
- 서버(인스턴스) 자체는 AWS 콘솔로 관리할 수 있지만, 서버내에 접근하기 위해서는 SSH 원격 접속이 필요하다.
- 키 페어(key pair)
- SSH 접에 관한 접근 관리를 제공 (로그인 인증)
- 공개키 방식 - 공개키+비밀키
- 동일 리전 내에서는 공유 가능
Elastic IP
- AWS에서 제공하는 정적(static)인 공인(public) IP 주소
- 사용 이유
- EC2 인스턴스의 공인 IP 주소는 재부팅될 때마다 재할당 됨
- → 이를 방지하기 위해 고정된 IP 주소 부여
- Elastic IP 주소는 AWS 계정에 연결 됨 → 인스턴스 및 네트워크 변경이 자유롭다.
- 리전에 속함
- Elastic IP 요금 = 추가 주소 + 미사용 주소 + 주소 매핑
- 중지된 인스턴스, 분리된 네트워크더라도 시간당 요금 부여
ELB (Elastic Load Balancing)
- AWS에서 제공하는 로드밸런서 ⇒ 부하 분산 장치
- 종류: ALB / NLB /
CLB - ELB 요금 = 사용 요금 * LCU 요금
- 사용 요금 = 시간 * 사용 단가
- LCU 요금 = LCU 사용량 * 시간 * LCU 단가
스냅샷 (Snapshot)
- 어떤 시점의 서버 디스크 상태를 통째로 보존한 파일, 폴더 등의 집합
- 데이터, SW, OS 설정 정보 등 전부 포함
- 사용 예시
- 장애 발생 시 즉각적인 복구 (백업)
- 개인 맞춤형 AMI 생성
- EBS 스냅샷 생성
- 스냅샷은 볼륨 단위(=스토리지 전체)로 생성
- DLM으로 스냅샷 생성 및 삭제 자동화 설정 가능
- 요금: 스냅샷 분량 단위(GB)
오토 스케일링(Auto Scaling)
- 서버의 액세스 상태에 따라 자동으로 스케일 아웃/인 하는 기능
- Auto Scaling 그룹 생성 시 필요한 설정
- 인스턴스 최소/최대 대수
- 서버 시작에 필요한 AMI, 키 페어, 보안그룹 등
- EC2 인스턴스 증감 방법
- 직접 인스턴스를 정지 및 분리한 뒤, 새로운 인스턴스 생성하는 방법
- 예약된 일정에 맞춰 스케일링 ⇒ Scheduled scaling
- 특정 임계값을 넘을 경우 자동적으로 스케일링 ⇒ Dynamic scaling
- 오토 스케일링 요금
- 오토 스케일링 자체는 무료
- 스케일 업/아웃 에 따른 EC2 요금
5장. S3
Amazon S3(Simple Storage Service)
- 객체 스토리지 서비스: 데이터를 객체 단위로 관리하는 것
- 클라우드이기 때문에 확장/축소가 자유롭다.
- 사용한 만큼만 지불한다.
- S3 요금 = 자장용량 + 전송량
- 전송량: 요청, 업로드, 다운로드
- GET(수신요청): 파일을 확인하기 위한 다운로드 명령
- PUT(송신요청): 파일을 전송하기 위한 명령 → 파일 업로드)
스토리지 클래스 (스토리지 종류)
- 상황에 따라 변경 가능하다.
Standard
- 가장 일반적인 스토리지 클래스
- 3곳 이상의 AZ 사용 → 99.9% 가용성 보장
Intelligent-Tiering
- 빈번한 액세스/간헐적 액세스 두 가지 계층에 객체를 저장하는 방식
- 액세스 빈도에 따라 계층 이동 → 액세스 패턴에 따른 비용 최적화
Infrequent Access
- 비교적 저장 요금이 적은 대신 액세스 요금이 높게 설정되어 있다.
- → 액세스 빈도가 낮고, 용량이 큰 데이터에 적합
- AZ 수에 따라 Standard-IA, One Zone-IA 로 나뉜다.
Reduced Redundancy Storage(RRS)
- 낮은 이중화(단일 AZ), 낮은 비용 제공
S3 Glacier / S3 Clacier Deep Archive
- 데이터 아카이브와 장기간 백업 목적으로 설계된 스토리지 클래스
- 액세스 속도 느림, 낮은 비용
S3 사용법 및 주의사항
- 콘솔 대시보드, API, SDK
- S3 버킷 생성 후, 이름과 리전은 변경할 수 없다.
- 생성 전 ‘어떤 용도’로 사용할 것인지 검토 필요
S3 버킷
- 버킷과 객체
- 버킷 → 윈도우 드라이브처럼 객체를 저장하기 위한 곳
- 객체 → 파일 같은 것
- S3는 ‘객체 스토리지’이기 때문에 폴더 개념이 없다.
- 버킷 안에 버킷 생성 불가
- 계층 구조X, 병렬 배치 (관리 콘솔에서는 사용자 편의를 위해 폴더로 표시줌)
- 버킷 명명 규칙
- S3 안에서 유일해야 한다.
- 3자 이상 63자 이하
- 대문자, 언더스코어 사용X
- 처음과 마지막은 알파벳 또는 숫자
- DNS 명명 규칙에 따라한다. IP 주소 형식X
S3 버킷에 대한 액세스 제한하기
- 버킷 정책: 버킷 단위 권한 설정
- 사용자 정책: IAM 사용자, 그룹, 역할 단위 권한 설정
- ACL 관리 정책: 버킷 및 객체 단위, 계정별 권한 설정
웹 사이트 호스팅
- S3는 정적 웹 사이트를 호스팅할 수 있다.
- 웹 호스팅에 필요한 S3 설정
- 정적 웹 호스팅 활성화
- 공용 액세스 차단 해제
- 버킷 정책 ‘모든 사용자’ 설정
- 버킷명 → 사용할 도메인 명 (+DNS)
파일 업로드 방법
API와 SDK
- IAM 사용자의 액세스 키, 시크릿 키 발행 필요
멀티파트 업로드
- 100MB 이상 파일일 경우 추천
- 멀티파트 업로드 자체는 무료
AWS Transfer for SFTP
- SFTP를 사용해 파일을 전송할 수 있는 서비스
- SFRP 요금 = SFTP 서버 활성화 시간+데이터전송량+관련 비용
AWS DataSync
- 온프레미스와 AWS 스토리지 시스템 간 대용량 데이터 전송을 위한 서비스
+) 공용 액세스 차단 (Block Public Access)
- 버킷 단위로 모든 사용자에게 액세스를 허가할지 결정하는 기능
- 각 액세스 제한보다 상위에 있는 제한
S3 액세스 관리 방법
액세스 로그
- 서버에 어떤 요청이 있었는지 기록하는 기능
- 로깅 자체는 무료, 로그 파일 보관 요금 발생
스토리지 클래스 분석
- 객체의 액세스 빈도를 분석하는 기능
- S3 Intelligent-Tiering 판단 자료로 활용
객체 잠금
- 객체에 대한 변경을 차단하는 기능
- 유효기간 설정 가능
S3 인벤토리
- 버킷 내 객체의 메타데이터 목록을 주기적으로 생성하는 기능
+) S3 배치 작업
- 대규모 객체를 대상으로 하는 반복 작업을 자동화 할 수 있는 기능
- 객체 복사, 복원, 태그 지정, ACL 변경 등 다양한 작업 제공
- 람다 함수와 통합하여 사용할 수 있음
S3 버전 관리
- 객체를 여러 버전으로 저장하는 기능
- 버킷 단위로 설정
- 데이터 손실 방지, 백업 및 복원 기능 제공
S3 수명 주기 정책 (Life cycle policy)
- 객체에 정기적으로 수행할 규칙을 설정하는 기능
- Transition, Expiration, NoncurrentVersionTransition, NoncurrentVersionExpiration, AbortIncompleteMultipartUpload 등의 작업 제공
교차 리전 복제 (Cross-Region Replication, CRR)
- 버킷 내 객체를 다른 리전의 버킷에 비동기적으로 복사하는 기능
- 재해 복구 및 데이터 접근성 향상
- 유의할 점
- IAM 역할 부여 필요
- 두 버킷 모두 버전 관리가 활성화되어 있어야 함
- 같은 리전의 두 버킷 간에는 CRR 설정 불가
AWS 다양한 서비스 연동하기
- 데이터 분석과 연동
- AWS 데이터 분석 서비스와 연동하여 S3 객체 내용에 대한 데이터를 분석할 수 있다.
- S3 Select, Athena, Redshift Spectrum 등
- AWS Lambda와 연동
- S3에 특정 이벤트가 발생 했을 때 람다 함수를 호출하여 데이터를 처리하거나 워크플로우를 자동화할 수 있다.
Amazon CloudFront
- AWS에서 제공하는 CDN 서비스
- S3 웹호스팅 기능과 함께 많이 사용된다.
- CF 요금 = 데이터 전송량 + 요청 수 + 기타 옵션
- 엣지 서버가 원본 데이터를 캐시하기 위한 전송량은 요금X
- 캐시에 대한 요금은 O
그림으로 이해하는 AWS 구조와 기술 : 네이버 도서
네이버 도서 상세정보를 제공합니다.
search.shopping.naver.com
'기록' 카테고리의 다른 글
그림으로 이해하는 AWS 구조와 기술 6~7장(VPC) 요약 정리 (0) | 2025.01.11 |
---|---|
그림으로 이해하는 AWS 구조와 기술 1~3장 요약 정리 (0) | 2024.11.23 |
혼공네트 4~7장 요약 정리 (0) | 2024.09.21 |
혼공네트 1~3장 요약 정리 (0) | 2024.09.15 |
혼공컴운 9장~15장 요약 정리 (운영체제 파트) (0) | 2024.08.11 |