실습으로 배우는 AWS - 02 AWS Computing : EC2 활용하기

핏자·2023년 5월 23일
0

인공지능사관학교

목록 보기
27/31
post-thumbnail
  • 📖 AWS EC2 소개

- AWS 컴퓨팅 서비스 종류

Instance(가상머신)
Container(컨테이너)
Serverlesss(서버리스)

- 가상머신 vs 컨테이너 vs 서버리스

가상머신컨테이너서비리스
장점- GB 단위 이미지
-OS 영역을 포함
- 고성능 서비스 제공
- 수분 안에 빠르게 배포
- MB 단위 이미지
- OS 이미지와 무관하게 동작
- 관리가 다소 어려움
- 수 초 안에 빠르게 배포
- 별도의 임미지 관리 필요 없음
- OS를 관리할 필요 없음
- 이벤트(API호출)를 통해서 기능 구현
- 별도 배포할 필요 없음
단점- 상대적으로 큰 임미지 사이즈
- 부팅하는데 시간이 오래 걸림
- OS의 종속성
- 아키텍처가 복잡
- 관리하고 모니터링이 어려움
- 클라우드 제공업체에 한정적
- 복잡한 애플리케이션 서비스에는 부적합

- EC2(Elastic Computer Cloud)가 무엇인가요?

  • AWS의 가상머신 서비스 : Instance
  • 필요에 따라 자유롭게 확장 가능
  • 사용한 만큼 비용 지불
  • 미리 정의된 템플릿, 혹은 아마존 머신 이미지(AMI)를 통해 즉시 인스턴스 생성 가능.

    Iaas(Infrastructure as a Service)

- EC2 설정 옵션

CPU
Memory
Disks
OS
Networking
사전
스크립트 구성

- EC2 인스턴스 유형

인스턴스 유형

  • 범용
  • 컴퓨팅 최적화
  • 메모리 최적화
  • 가속화된 컴퓨팅
  • 스토리지 최적화

T4g.2xLarge
T4g -> 인스턴스 종류 및 세대
2xLarge -> 인스턴스 크기


- EC2 AMI(Amazon Machine Image)

AWS AMI

  • 인스턴스 실행 시, 필요한 OS, 애플리케이션, 소프ㅡ트웨어 패키지가 포함된 템플릿
  • AWS 혹은 제 3자에 의해 만들어진 것을 활용하거나, 직접 제작 가능
  • 동일한 구성으로 여러 개의 인스턴스를 만들 때, 손쉽게 배포 가능!

AMI의 생명 주기
Public AMI -> 인스턴스 v1(여러개의 EC2 인스턴스 생성) -> 인스턴스 v2 -> 스냅샷 생성 -> 나만의 AMI: v2

- 요약

  1. AWS에는 대표적인 컴퓨팅 서비스로, 인스턴스, 컨테이너, 서버리스 방식이 있다.
  2. EC2 Instance는 AWS의 대표적인 가상머신 서비스이다.
  3. 사용 사례나 애플리케이션 특성에 따라 선택할 수 있는 수많은 EC2 인스턴스 유형을 제공한다.
  4. EC2 AMI는 OS, 애플리케이션, 소프트웨어 패키지 등이 사전 구성되어 있는 템플릿이다.





  • 📖 EC2 보안 : 보안 그룹

- 보안이 왜 중요한가요?

  1. 인가/인증(Ex. AWS IAM)
  2. 데이터 암호(전송하는 데이터 혹은 저장된 데이터)
  3. 접근 차단

- 보안 그룹(Security Group)이 무엇인가요?

  • AWS 서비스 수신(Inbound), 발신(Outbound) 트래픽을 제어하는 가상 방화벽
  • 수신과 발신에 필요한 정보 : IP, Port 번호, 프로토콜
  • Inbound 트래픽은 Default로 Block 되
  • 대표적인 Port: SSH : 22 / HTTP : 80 / HTTPS : 443 / MYSQL : 1433

- 보안 그룹(Security Group) 적용 예시

Security Group #1 : HTTPS 트래픽 허용
Security Group #2 : 10.10.10.10 트래픽 허용
악의적인 사용자 차단

- 보안 그룹(Security Group) 활용 사례

  • 웹서버 보안 그룹 규칙
프로토콜 유형프로토콜 번호포트소스 IP참고
TCP680(HTTP)0.0.0.0/0임의의 IPv4 주소에서 인바운드 HTTP 액세스를 허용함
TCP6443(HTTPS)0.0.0.0/0임의의 IPv4 주소에서 인바운드 HTTPS 액세스를 허용함
TCP680(HTTP)::/0임의의 IPv6 주소에서 인바운드 HTTP 액세스를 허용함
TCP6443(HTTP)::/0임의의 IPv6 주소에서 인바운드 HTTPS 액세스를 허용함

  • 데이터베이스 보안 그룹규칙
프로토콜 유형프로토콜 번호포트참고
TCP61433(MS SQL)Microsoft SQL Server 데이터베이스 액세스를 위한 기본 포트(예: Amazon RDS 인스턴스에서)
TCP63306(MYSQL/Aurora)MySQL 또는 Aurora 데이터베이스 액세스를 위한 기본 포트(예: Amazon RDS 인스턴스에서)
TCP65432(PostgreSQL)PosstgreSQL 데이터베이스 액세스를 위한 기본 포트(예: Amazon RDS 인스턴스에서)
TCP61521(Oracle)Oracle 데이터베이스 액세스를 위한 기본 포트(예: Amazon RDS 인스턴스에서)

- 요약

  1. 다양한 보안 기법 중에서 보안 그룹은 AWS 서비스의 접속에 대한 접근 차단을 하는 가상 방화벽이다.
  2. 보안 그룹 정책은 IP, 포트 번호, 프로토콜 등으로 제어할 수 있다.
  3. 서비스 유형에 따라 적합한 포트와 소스와 대상에 대한 지정이 필요하다.





  • 📖 AWS 스토리지 : EBS & EFS 소개

- 서버에 제공 가능한 스토리지 종류

  • Direct Attached Storage(DAS) : 컴퓨터에 직접 연결된 스토리지
  • Network Attached Storage(NAS) : 외장하드와 같이 네트워크를 통해 연결된 스토리지
    • 파일 형식
      • Windows : CIFS
      • Linux : NFS
  • Storage Area Network(SAN) : 스토리지 고속 네트워크 채널을 통해 구성된 서비스
    • 파일 형식
      • Block Storage 방식
    • iSCSI 혹은 FC 방식의 전송 프로토콜

- EC2에 제공 가능한 스토리지 종류

  • Direct Attached Storage(DAS) : Instance Store
  • Network Attached Storage(NAS) : EFS(Elastic File System)
    • 파일 형식
      • Windows : CIFS
      • Linux : NFS
  • Storage Area Network(SAN) : EBS(Elastic Block Store)
    • 파일 형식
      • Block Storage 방식
    • iSCSI 혹은 FC 방식의 전송 프로토콜

- EBS(Elastic Block Store)이 무엇인가요?

  • EBS는 EC2와 연결하여 제공할 수 있는 블록 스토리지 볼륨 - SAN 스토리지
  • EBS는 AZ 내에 존재
  • EC2가 종료되더라도 데이터는 유지할 수 있는 장점
  • 스냅샷 기능을 제공하여 특정 상태로 돌아가거나, 스토리지를 복제 가능 기능 제공

- EBS 주요 특징

  1. AZ 안에 존재하는 서비스 = 같은 AZ와 존재 하는 EC2를 통해서만 연계
  2. 스냅샷 기능 = 동일한 EBS 볼륨을 다른 AZ에 생성 가능
  3. 여러 개의 EBS 볼륨을 연계 가능
  4. EC2 인스턴스가 종료되어도 데이터 유지
  5. 99.9 ~ 99.999% 의 내구성

- EBS(Elastic Block Store) SSD / HDD 타입


- EFS(Elastic Flie System)

  • EBS는 EC2와 연결하여 제공할 수 있는 파일 시스템 스토리지 볼륨 - NFS 스토리지
  • EFS는 AZ 밖에서 존재
  • EC2가 종료되더라도 데이터는 유지할 수 있는 장점
  • 보안 그룹과 연계하여 데이터를 접속할 수 있는 인스턴스 제어

- EFS 주요 특징

  1. AZ 외부에 존재하는 서비스 = 여러 개의 AZ에 걸친 EC2와 연계 가능
  2. 저장/전송 데이터 암호화
  3. Mount 대상을 각 AZ 별로 생성
  4. Security Group과 연계하여 인스턴스 접근 제어
  5. 탄력적인 볼륨 확장 = 필요한 만큼 용량을 자유롭게 확장 가능

- 언제 EBS를 쓰고, 언제 EFS를 써야 하나요?

EBS :
높은 수준의 성능이 필요할때
상대적으로 낮은 비용으로 스토리지 구성이 필요할 때
적합한 서비스 종류 : 부팅 볼륨, NoSQL, RDBMS와 같은 데이터베이스, 데이터 웨어 하우징 및 ETL

EFS :
여러 개의 인스턴스가 동시에 접속이 필요할 때
무제한으로 확장 가능한 스토리지가 필요할 때
적합한 서비스 종류 : 빅 데이터 및 분석, 미디어 처리, 워크플로, 콘텐츠 관리, 웹 서비스 및 리눅스 파일 디렉토리

- 요약

  1. EC2를 위한 대표적인 스토리지 서비스로 Instance Store, EBS, EFS가 있다.
  2. EBS는 AZ 내에 존재하는 블록 스토리지 볼륨이다.
  3. EFS는 AZ 외부에 존재하는 파일 시스템 스토리지 볼륨이다.
  4. EBS는 EC2와 다대일 관계이며, EFS는 일대다 관계이다.
  5. 서비스 종류에 따라 적합한 스토리지 유형을 선택해야 한다.





  • 📖 고가용성 EC2 구성하기 1 : 로드 밸런서

- 고가용성이란 무엇인가요?

시스템의 문제나 예상치 못한 트래픽이 유입 되었을 때,
장애를 견디고 정상적인 운영을 수행할 수 있는 구성

- AWS 서비스 고가용성 구성

단일 인스턴스 구조 :
EC2 인스턴스에 장애가 발생하거나, 갑작스런 요청이 많아졌을 때, 서비스 전체에 영향

수평 확장 가능한 다중 인스턴스 구조 : 고 가용성 아키텍처 :
하나의 인스턴스가 비정상적이어도 서비스는 유지할 수 있는 내결함성

고 가용성 아키텍처를 위한 요구사항 첫 번째 : 로드 밸런서
외부에서 들어오는 트래픽을 여러 EC2 인스턴스에 걸쳐 분산이 필요

고 가용성 아키텍처를 위한 요구사항 두 번째 : 오토 스케일링
트래픽이 갑자기 증가 했을 때, 이를 처리할 수 있는 용량 확장이 필요

- ELB(Elastic Load Balancer)란 무엇인가요?

  • ELB는 들어오는 트래픽을 컴퓨팅 서비스에 분산하는 AWS의 관리형 로드 밸런서
  • AWS 관리형 서비스 : 업데이트, 패치 자동화 및 장애에 대한 고가용성(여러 AZ에 배포) 기능
  • 헬스 체크 기능 : 인스턴스가 정상적으로 동작하는지 주기적으로 체크하여 트래픽 처리 가능한 인스턴스에게만 트래픽 전송
  • 보안 : AWS 내부 서비스를 외부에 노출시키지 않고, 로드 밸런서를 통해서만 트래픽 유입
  • HTTPS : SSL을 지원하여 암호화된 통신

ELB 종류 3가지

  • Application Load Balancer
  • Network Load Balancer
  • Classic Load Balancer

Application Load Balancer

  • HTTP, HTTPS(애플리케이션 계층) 지원
  • L7 로드 밸런서
  • Linstener와 Target Group으로 구성
  • 경로 기반 라우팅
  • 호스팅 기반 라우팅
  • EC2, 컨테이너 애플리케이션 연동 지원

Network Load Balancer

  • TCP, UDP(네트워크 계층) 지원
  • L4 로드 밸런서
  • Listener와 Target Group으로 구성
  • ALB 대비 고성능 : 낮으느 지연 시간과 빠른 처리
  • AZ 당 고정 IP를 가짐
  • 낮은 지연 시간이 요구되는 애플리케이션에 적합

- Linstener & Targert group 구성 예제

Listener :

  • Load Balancer 당 최소 1개의 Linstener 구성 필요(최대 50개)
  • Port, Protocol 지정
  • Contents 기반의 규칙 생성 : Host 기반 / Path 기반

Target Group :

  • 트래픽을 처리할 수 있는 대상을 지정하는 논리적인 그룹
  • EC2(가상머신), ECS, EKS(컨테이너)
  • IP 주소 지정

- 요약

  1. 안정적인 서비스를 위해서는 고 가용성이 고려된 아키텍처를 구성해야 한다.
  2. ELB는 EC2 인스턴스의 헬스 체크를 하고, 트래픽을 분산하는 역할을 한다.
  3. ELB 서비스의 유형으로는 ALB, NLB, CLB가 있다.
  4. ALB는 L7, NLB는 L4 트래픽을 처리하고, 트래픽을 전달받는 대상 그룹 지정이 필요하다.





  • 📖 고가용성 EC2 구성하기 2 : 오토 스케일링 그룹

- 오토 스케일링 그룹(Auto Scaling group)이 무엇인가요?

  • 오토 스케일링 그룹은 애플리케이션이 요구하는 컴퓨팅 자원만큼의 인스턴스의 개수를 자동적으로 유지 시켜주는 그룹
  • 최소 용량, 최대 용량, 원하는 용량 범위 안에서 인스턴스 개수 유지, 확장, 축소를 지원
  • 로드 밸런서와 연동하여 트래픽 양에 따라 인스턴스 수 결정

- 오토 스케일링 그룹 특징

  • 필요한 만큼만 사용
  • 장애에 대응하는 내결함성
  • 고가용성

- 오토 스케일링 그룹 조정 정책

  • 대상 추적 조정 정책
  • 단계 조정 정책
  • 예약 조정 정책

- Security Group + ELB + Auto Scaling Group을 통한 고 가용성 보안을 고려한 아키텍처


- 요약

  1. 오토 스케일링 그룹은 EC2의 요구량에 따라 자동으로 확장, 축소를 하는 그룹
  2. 오토 스케일링 그룹은 EC2의 내결함성과 고가용성을 보장하고, 필요한 만큼만 사용 가능하도록 제공한다.
  3. 오토 스케일링 그룹의 확장, 축소 정책으로 대상 추적 조정, 단계 조정, 예약 조정 정책을 제공한다.
profile
개발자 핏자의 로그들

0개의 댓글