평안하자

[AWS Builders Online Series] Amazon EC2로 첫 워크로드 시작하기 본문

Cloud/AWS

[AWS Builders Online Series] Amazon EC2로 첫 워크로드 시작하기

eeeeerrr 2024. 2. 1. 22:06

Amazon EC2로 첫 워크로드 시작하기

AWS에서 제공하고 있는 세 가지 컴퓨팅 서비스

  1. 가상머신과 같은 Amazon EC2
  2. 컨테이너 환경에서 인프라 운영 부담을 덜기 위한 서버리스 방식의 Fargate
  3. 코드만 입력하면 이벤트가 트리거 될 때 해당 코드가 실행되는 Lambda 서버리스 컴퓨팅 서비스

이 중 EC2에 대해 알아보자.


EC2

EC2란?

Amazon Elastic Compute Cloud (Amazon EC2)

Linux, Windows, Mac 등의 다양한 OS 환경을 제공하는 가상 서버 서비스

AWS에서는 글로벌에 위치한 여러 데이터 센터의 물리 서버들을 가상화하고 이를 서비스 함

 

Amazon EC2 운영체제

  • Amazon Linux를 사용하면 라이센스에 대한 비용은 지불하지 않으며 AWS에서 제공하는 지속적인 보안 및 유지 관리 업데이트를 받을 수 있다고 한다.

Amazon Machine Image (AMI)

AMI

EC2를 생성할 때 인스턴스의 정보가 담긴 이미지를 사용하며 이를 AMI라고 한다.

AMI는 인스턴스에 필요한 OS, 데이터 볼륨, 애플리케이션 정보를 포함하며 하나의 AMI로 여러 인스턴스를 동시에 생성할 수 있다.

EC2를 생성할 때는 AMI를 반드시 생성해야 한다. 사용자 커스텀 AMI도 생성하여 사용 가능하다.

 

 

알맞은 EC2 인스턴스 유형 선택하기

650개의 많은 인스턴스 유형 중 어떤 유형이 내 워크로드에 적합할까?

인스턴스 세대 의미 이해하기

인스턴스 세대 의미

인스턴스 크기의 이해 

인스턴스 크기별 종류

작은 인스턴스 vs 큰 인스턴스 무엇이 좋을까?
크기가 크다고 무조건 좋은게 아니다!

  • 사용하는 컴퓨팅 자원의 크기가 작아졌기 때문에 필요한 인스턴스 수는 증가
  • 작은 인스턴스를 사용할 경우 필요한 컴퓨팅 자원만큼 EC2를 프로비저닝 할 수 있고 남는 컴퓨팅 자원을 최소화할 수 있다. 해당 예시에서 비용 50% 절감 가능한 것을 볼 수 있다.
 

컴퓨팅 - Amazon EC2 인스턴스 유형 - AWS

 

aws.amazon.com

 

최적의 인스턴스 찾기

이미 사용중인 인스턴스를 중간에 더 최적의 인스턴스로 바꿀 수 있다.

  1. Cost Explorer이를 통해서 인스턴스 규모 축소 및 제거를 통해 인스턴스 비용을 절감할 수 있다.
  2. 지난 14일 간의 최대 CPU 및 메모리 사용 기록에 기반하여 동일한 인스턴스 패밀리 내의 EC2 인스턴스 적정 크기를 권장한다.
  3. AWS Compute Optimizer

사용률 데이터를 머신러닝 기반으로 분석하여 오버 프로비저닝 혹은 언더 프로비저닝 되지 않도록 권장한다.

 

 

인스턴스 구매 옵션

네 가지 인스턴스 구매 옵션
상황에 따라 워크로드 유형 혼합 가능

  • 다만, 스팟 인스턴스의 경우 지정된 용량을 넘어서면 중단될 수 있어 안정적인 워크로드 사용에는 부적합하다.
  • 혼합하여 사용하면 사용 비용을 낮추고 안정적인 워크로드 구성 가능
    • 1. 꾸준한 사용량 예측 가능: RI, Saving 등 ex. 데이터베이스 인스턴스
    • 2. 새롭거나 급증하는 워크로드: 온디맨드
    • 3. 중단되어도 문제가 없거나 재수행 가능한 워크로드: 스팟

인스턴스 생명 주기

인스턴스 생명 주기 (실행/정지/종료)

인스턴스 스토어

인스턴스 스토어란?

  • 임시 데이터 저장용으로 사용하면 좋다.

Amazon Elastic Block Storage (EBS)

EBS 종류

  • 영구 지속 블록 스토리지 서비스
  • 데이터베이스, 빅데이터 분석, 엔터프라이즈 애플리케이션과 같은 중요한 업무에 활용

 

추천 방식

  1. 인스턴스 스토어: 데이터가 임시 데이터이며 많은 i/o 또는 높은 처리량을 요구할 경우 사용하는 것이 좋음. 하지만, 인스턴스를 중지하거나 제거하면 데이터가 사라지는 것은 꼭 주의할 것
  2. gp2/gp3: Latency가 중요하고 비용 효율적으로 사용할 경우
  3. io1/io2: I/O 성능이 중요할 경우
  4. sc1/st1: 데이터를 저장하고 읽을 시 처리량이 중요할 경우

 

EBS 스냅샷으로 데이터 백업

S3에 데이터 스냅샷을 백업 가능

  • S3에 데이터 스냅샷을 증분 백업 방식으로 저장할 수 있으며 증분 백업 방식은 스토리지 비용을 절감할 수 있다.
  • 스냅샷 데이터는 리전 간 그리고 다른 계정 간 공유가 가능하여 백업한 EBS를 활용하여 다른 EC2에 마운트하여 사용할 수 있다.

 

Amazon EC2 Security Group

보안 그룹 설정

  • EC2의 네트워크 보안을 구성하기 위해 Security Group이라는 가상 방화벽 설정한다.
  • EC2로 접근하는 접속 유형, 포트, 소스에 대한 접근 제어를 설정할 수 있으며 Security Group은 Stateful한 성격으로 Inbound로 허용된 트래픽의 Outbound는 자동으로 허용한다.
  • Security Group을 구성할 때 접근하는 소스는 IP 기반뿐만 아니라 다른 보안 그룹으로 지정하여 접근을 제어할 수 있다.

 

Amazon EC2 접속하기

1 - Amazon EC2 보안 키

EC2 보안키 방식

  • 클라이언트에서 EC2 인스턴스에 접속하기 위한 용도로 키를 생성할 수 있다.
  • 퍼블릭 키는 EC2 인스턴스에 저장, 프라이빗 키는 사용자에게 제공
  • 사용자는 Client 터미널을 통해 프라이빗 키를 사용하여 인스턴스에 SSH 기반으로 접속할 수 있다.

2- SSM

SSM 방식

  • 앞의 방법은 EC2 키를 사용자가 직접 관리하는 방식으로 불편하고 사용자에게 부담이 된다.
  • 사용자의 키 관리 부담을 덜고 EC2에 접속하는 방법으로 System Manager를 활용할 수 있다.
  • Session Manager 기능을 통해 EC2에 SSM Agent를 설치하여 SSM을 통해 접근한다. 이를 통해 별도의 Bastion Host, Inbound 정책 설정, SSH 키 관리 없이 EC2 인스턴스에 접근할 수 있다.
  • 주기적으로 SSM과 Agent 간 헬스체크
  • EC2에 SSM과 통신하기 위한 IAM 정책 설정

3- EIC (New)

EIC 방식

  • EC2에 별도의 Agent 설치가 불필요하며 임시 SSH 키를 EC2에 할당하는 방법으로 접속한다.
  • EIC endpoint를 생성하며 권한이 있는 사용자만 AWS CLI를 통해 접속 가능
  • IAM을 통해 추가적인 보안 설정 가능

안정적인 Amazon EC2 워크로드 구성하기

1. Elastic Load Balancing (ELB)

ELB란

ELB

  • 안정적인 워크로드를 만들 수 있는 첫 번째 방법으로 **여러 인스턴스를 생성하여 트래픽을 분산**시키는 방법이 있다.
  • 로드밸런싱 기능을 제공하는 ELB를 통해 여러 인스턴스에 네트워크 트래픽을 분산할 수 있고, 애플리케이션 확장이 가능하다.
  • 매니지드 서비스로 네트워크 트래픽에 따라 자동 조정된다.
  • EC2 인스턴스뿐만 아니라 컨테이너, IP 주소, Lambda 함수, 가상 어플라이언스 등으로 트래픽을 분산시킬 수 있다.

로드밸런서 유형

로드밸런서 네 가지 유형

  1. Layer 7 기반 ALB: HTTP 요청을 로드 밸런싱해야 하는 경우
  2. Layer4 기반 NLB: 네트워크/전송 프로토콜 사용하며 짧은 대기 시간이 필요한 경우
  3. Gateway Load Balancer: 서드 파티 가상 어플라이언스 배포 및 실행
  4. Classic Load Balancer

2. Amazon EC2 AutoScaling

Amazon EC2 AutoScaling이란?

EC2 AutoScaling

  • 정의된 일부 조건에 따라 애플리케이션의 부하를 처리하기 위해 EC2 인스턴스를 자동으로 추가 또는 제거하여 애플리케이션 가용성을 유지하는데 도움이 되는 완전 관리형 서비스
  • 변화하는 트래픽에 자동으로 인스턴스를 추가 및 제거하여 워크로드의 가용성을 유지할 수 있다.

설정

  1. Groups
    • AutoScaling의 적용 대상이 될 그룹을 설정
    • 수요에 맞게 확장할 수 있는 논리적으로 관리되는 EC2 인스턴스 컬렉션
  2. Configuration templates
    • 인스턴스 확장 시 인스턴스 생성에 참고할 시작 템플릿
  3. Scaling options
    • AutoScaling의 확장 방법

특징

  • ELB와 함께 사용된다.
  • 변화하는 트래픽에 따른 자동 확장뿐만 아니라 비정상적인 인스턴스를 감지하고 이를 자동으로 교체할 수 있다.
  • Auto Scaling Group에 속한 인스턴스에 대해 주기적으로 헬스 체크를 진행하며 만약 인스턴스의 헬스 체크에 실패 시 이를 ELB에 분리하고 인스턴스 종료 및 새로운 인스턴스를 생성한다.
  • 모든 과정은 자동으로 진행되며 사용자는 안정적인 워크로드를 손쉽게 구성할 수 있다.

 

데모 시나리오 직접 해보기

  • Amazon에서 새로나온 EIC를 이용하여 SSH 키 또는 SSM Agent 설치 없이 EC2 인스턴스에 접속하는 데모
  1. 먼저 EC2가 설치될 VPC를 생성한다.
    VPC 설정

    • VPC 생성 시 외부 노출을 막기 위해 Private Subnet만을 지정하여 생성한다.
  2. EIC와 EC2에 생성할 보안그룹을 생성한다.

  • 방금 생성한 VPC를 선택해준다.
  • 인바운드 규칙에 SSH를 추가해준다. SSH의 소스로 EIC의 보안그룹을 지정하여 EIC를 통한 SSH 접근만을 허용한다.

 

 

3. EIC 생성을 위해 Endpoint 화면으로 이동한다.

EIC 엔드포인트 설정

  • EC2 인스턴스 연결 엔드포인트 선택
  • EIC가 설정될 생성한 VPC 및 보안그룹 선택
  • 엔드포인트가 할당될 서브넷 선택

4. 엔드포인트 설정이 대기 중 -> 사용 가능으로 되면, 드디어! EC2 메뉴로 이동한다.

EC2 설정!

  • EIC를 사용하므로 키페어는 별도로 설정하지 않는다.
  • 인스턴스가 설치될 위치(네트워크 설정 편집)는 방금 생성한/엔드포인트 지정한 VPC 내의 Private Subnet으로 지정한다. 이를 통해 인스턴스의 인터넷 노출을 차단할 수 있다.
  • 생성한 보안그룹을 선택한다.
  • (원한다면, 프리티어 볼륨 사이즈를 프리티어 기준 30GIB까지 설정할 수 있다.)

 

 

5. AWS Credentials을 이용해서 키페어 없이 로그인 가능한 것을 AWS CLI로 확인한다! (더 공부해보기)

 

Summary

1. 알맞은 Amazon EC2 유형 선택하기

인스턴스 표기법 정확히 이해하기
내 워크로드 타입에 맞는 인스턴스 타입과 크기를 지정 후 적절한 구매 옵션을 선택하기

 

2. 알맞은 Amazon EC2 저장공간 선택하기

인스턴스 스토어 OR EBS 스토리지 이용하기EBS는 Latency와 처리량에 따라서 적절한 EBS 타입을 선택한다
임시데이터면서 고성능이 필요할 경우 인스턴스 스토어, 영구 데이터 저장을 위해선 EBS 선택
EBS는 Latency와 처리량에 따라서 적절한 EBS 타입을 선택한다.

 

3. 안전한게 Amazon EC2 사용하기

보안그룹을 지정하여 네트워크 방화벽을 지정하기
SSH Key, SSM, EIC 등을 통하여 EC2에 안전하게 접속하기

 

4. 안정적인 Amazon EC2 워크로드 구성하기

트래픽을 여러 인스턴스로 분배 - ELB 활용
변화하는 트래픽에 맞춰 인스턴스를 자동으로 확장하고 비정상 인스턴스를 교체 - 오토스케일링 활용

 

5. AWS 교육 & 자격증

AWS Skill Builder 600개 이상 무료 교육 - https://explore.skillbuilder.aws/learn
 

Self-paced digital training on AWS - AWS Skill Builder

Your learning center to build in-demand cloud skills. Skill Builder provides 500+ free digital courses, 25+ learning plans, and 19 Ramp-Up Guides to help you expand your knowledge. Courses cover more than 30 AWS solutions for various skill levels. Skill Bu

explore.skillbuilder.aws

AWS Certification - AWS 클라우드 스킬 검증 - AWS 인증 받기
 

AWS Certification - AWS 클라우드 스킬 검증 - AWS 인증 받기

AWS Certification의 취득을 위해 준비하고 계신가요? 당사의 다양한 전문가 인사이트, 리소스 및 프로그램으로부터 이점을 얻을 수 있습니다. 다른 자격증을 새롭게 준비하고 있든, 추가로 취득할

aws.amazon.com