728x90
반응형

Amazon EC2

EC2: Elastic compute cloud, AWS에서 제공하는 서비스형 infrastructure

EC2 sizing & configuration options

AWS에서 임대하는 가상 서버인 EC2에서 어떤 것을 선택? EC2 인스턴스 운영체제로 어떤 것을 선택?

OS: Linux, Windows, Mac OS

CPU(compute power & cores), RAM(random-access memory), 부트스트랩 스크립트 등

EC2 User Data

bootstrapping: 머신이 작동될 때 명령을 시작하는 것, 스크립트는 처음 실행할 때 시작

사용자 데이터 스크립트에 작업을 추가할수록 부팅 시 인스턴스가 할 일이 늘어난다.

모든 명령문은 sudo로 실행된다.

EC2 instance types: example

네트워크 성능은 낮음에서 중간 사이

t2 제품군에서 large로 변환하면, 네트워크 성능은 중간, c5d.4xlarge는 CPU, memory, storage 등 달라진다.

t2.micro가 AWS 프리티어

Hands-On: Launching an EC2 Instance running Linux

EC2 인스턴스에서 웹 서버 생성

User data

#!/bin/bash
# Use this for your user data (script from top to bottom)
# install httpd (Linux 2 version)
yum update -y
yum install -y httpd
systemctl start httpd
systemctl enable httpd
echo "<h1>Hello World from $(hostname -f)</h1>" > /var/www/html/index.html

인스턴스 수명 주기 중 단 한번만 실행, 몇 가지를 업데이트하고 HTTP 코드

EC2 Instance Types - Overview

https://aws.amazon.com/ec2/instance-types

 

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

 

aws.amazon.com

AWS naming convention: example - m5.2xlarge

m: instance class
5: generation
2xlarge: 더 많은 메모리와 사이즈

EC2 Instance Types

compute-intensive tasks
ec2instances.info

Introduction to Security Groups

보안 그룹, 허용 규칙만 포함된다. 보안 그룹끼리 참조할 수도 있다.

EC2 인스턴스에 액세스하려고 할 경우 인스턴스 주변 보안 그룹을 생성해야 한다.(방화벽 생성) -> 보안 그룹은 규칙을 가지게 된다. 그 규칙은 인바운드 트래픽의 여부인데, 외부에서 EC2 인스턴스로 들어오는 것이 허용되면 아웃바운드 트래픽도 수행할 수 있다. 현재 위치에서 인터넷으로 들어오는 것.

Security Groups Deeper Dive

보안 그룹은 EC2 인스턴스의 방화벽이다. 포트로의 액세스를 통제하며 인증된 IP 주소의 범위를 확인해 IPv4인지 IPv6인지 확인한다.

인바운드 네트워크/아웃바운드 네트워크를 통제한다.

Security Groups Good to know

여러 인스턴스에 연결할 수 있다.
보안 그룹과 인스턴스 간의 일대일 관계는 없다.

여러 보안 그룹을 연결할 수 있다.

지역을 전환하면 새 보안 그룹을 생성하거나 다른 VPC를 생성해야 한다.

보안 그룹은 EC2 외부에 있다. -> 트래픽이 차단되면 EC2 인스턴스로는 확인할 수 없다. (EC2 외부의 방화벽이므로)

SSH 액세스를 위해 하나의 별도 보안 그룹을 유지하는 것이 좋다.

time out으로 애플리케이션에 접근할 수 없으면, 보안 그룹의 문제이다.

연결 거부 오류(connection refused)이면 트래픽은 통과했지만, 애플리케이션 문제이거나 실행되지 않는 등 문제이다.

기본적으로 인바운드 트래픽은 blocked, 아웃바운드 트래픽은 authorised

Referencing other security groups Diagram

인바운드 큐칙은 보안 그룹 1의 인바운드를 보안 그룹 2에 허용하는 것
로드 밸런서에서도 나온다.

Classic Ports to know

22: SSH(리눅스 인스턴스 로그인 시)

21: FTP / 22: SFTP / 80: HTTP / 443: HTTPS

3389: RDP(Remote Desktop Protocol, 윈도우 인스턴스에 로그인 시 사용)

 

HTTP, SSH 등 어떤 것을 시도할 때 time out이 되면, 100% EC2 보안 그룹 때문이다.(EC2 > Security Groups)

How to SSH into your EC2 Instance

ssh ec2-user@(public ipv4 address)
ssh -i EC2Tutorial.pem ec2-user@(public ipv4 address)
chmod 0400 EC2Tutorial.pem (소유자의 읽기 권한)

 

aws iam list-users 안되는 경우, 자격증명을 찾을 수 없어 aws configure 실행

개인 정보를 입력해두면 이 계정 상의 누구라도 다시 EC2 인스턴스 커넥트 등을 통해 EC2 인스턴스에 접근해서 자격 증명 정보를 실행할 수 있음 -> IAM API key 입력하지 말 것

그 대신 IAM role 이용: 역할을 EC2 인스턴스에 연결해서 자격 증명을 제공

Instances > Actions > Security - Modify IAM role

EC2 Spot Instances

Not suitable for critical jobs or databases

EC2 Dedicated Instances

전용 인스턴스란 자신만의 인스턴스를 자신만의 하드웨어에 갖는다는 것인 반면,

전용 호스트는 물리적 서버 자체에 대한 접근권을 갖고 낮은 수준의 하드웨어에 대한 가시성을 제공해준다.

Which purchasing option is right for me?

On demand - Reserved - Saving Plans - Spot instances - Dedicated Hosts - Capacity Reservations

How to terminate Spot Instances?

원하는 인스턴스 수, 최대 가격, 시작 사양 등 정의 (AMI 등), 언제부터 언제까지 유효한지 등
일회성 요청 or 영구 인스턴스 요청
일회성 요청: 스팟 요청 시 인스턴스 생성 및 스팟 요청은 사라짐
영구 요청: 스팟 요청이 유효한 기간 동안 인스턴스 수도 유효함, 인스턴스가 중지되거나 스팟 가격 기준으로 종료되는 경우

스팟 요청을 취소하고 -> 스팟 인스턴스를 종료

Spot Fleets

스팟 플릿에 스팟 인스턴스를 할당하는 전략을 정의해야 한다.

1) lowestPrice(최저 가격): 스팟 플릿은 가장 낮은 가격인 풀에서 인스턴스를 시작하기 때문에 비용이 최적화된다. 워크로드가 매우 짧은 경우 좋은 옵션

2) diversified: 스팟 인스턴스는 내가 정의한 모든 풀에 분산된다. 가용성과 긴 워크로드에 적합하다.(한 풀이 사라져도 다른 풀은 여전히 활성화되어 있기 때문)

3) capacityOptimized(용량 최적화): 원하는 인스턴스 수에 맞는 최적의 용량을 가진 풀을 갖게 된다.

4) priceCapacityOptimized(recommended)(가격 용량 최적화): 사용 가능한 용량이 가장 큰 풀을 선택하고 그 중 가격이 가장 낮은 풀을 선택, 대부분의 워크로드에 가장 적합한 선택

Spot Fleets: 사용하면 여러 개의 런치 풀과 여러 인스턴스 유형을 정의할 수 있다. 원시 전력만 신경쓰면 된다. 자동으로 가장 낮은 가격으로 스팟 인스턴스 풀을 선택해 추가 비용 절감 가능

- 간단한 스팟 인스턴스 요청을 하는 경우: 원하는 인스턴스 유형과 AZ(Availability Zone)를 정확히 알고 있는 경우
- 스팟 플릿을 요청하는 경우: 조건을 만족하는 모든 인스턴스 유형과 모든 AZ를 선택하라는 것(조건 예: 낮은 가격)

 

[Quiz#02]

1. 스팟 인스턴스는 단기적인 워크로드에 적합하고, 가장 저렴한 EC2 구매 옵션, EC2 인스턴스를 손실할 우려가 있기 때문에 신뢰도가 떨어진다.(데이터베이스 혹은 중요 업무에는 적합하지 않다.)

2. EC2 인스턴스 내/외의 트래픽을 제어하기 위해 보안 그룹을 사용한다.

3. EC2 예약 인스턴스는 1년 혹은 3년의 기간으로만 예약이 가능하다.

4. 컴퓨팅 최적화 EC2 인스턴스는 고성능 프로세서(배치 처리, 미디어 트랜스코딩, 고성능 컴퓨팅, 과학적 모델링 및 머신 러닝, 전용 게이밍 서버 등)가 필요한 집중 컴퓨팅 워크로드에 적합하다. (고성능 컴퓨팅: HPC)

5. 온디맨드 인스턴스는 가격 예측이 가능한 짧은 경우에 적합, 예약 인스턴스는 장기적인 워크로드에 적합하다.(1년 혹은 3년의 기간)

6. 메모리 최적화 EC2 인스턴스는 메모리에 대규모 데이터 세트가 필요한 워크로드에 적합하다.

7. 스토리지 최적화 EC2 인스턴스는 로컬 스토리지의 대규모 데이터 세트에 대해 높은 수준의, 그리고 순차적인 읽기/쓰기 액세스 권한이 필요한 워크로드에 적합하다.

8. 전용 호스트는 높은 수준의 규정 준수가 필요한 기업, 혹은 복잡한 라이선스 모델을 가진 소프트웨어에 적합하다. 가장 비싼 EC2 구매 옵션, 물리적 코어 및 기반 네트워크 소켓 가시성을 기반으로 비용을 책정할 때, 가시성을 확보하기 좋은 구매 옵션

9. 스팟 플릿은 스팟 인스턴스의 집합이고, 선택적으로 온디맨드 인스턴스이다. 스팟 플릿은 가장 낮은 가격으로 스팟 인스턴스를 자동으로 요청할 수 있게 해준다.

 

References

Udemy, Ultimate AWS Certified Solutions Architect Associate SAA-C03

 

728x90
728x90

'Networking > AWS' 카테고리의 다른 글

[AWS] SAA-C03#06: EC2 instance storage  (0) 2024.06.21
[AWS] SAA-C03#05: EC2 - solution architect associate level  (0) 2024.06.19
[AWS] SAA-C03#03: IAM, CLI/CloudShell  (0) 2024.06.18
[AWS] SAA-C03#02: IAM  (0) 2024.06.17
[AWS] SAA-C03#01: basic  (0) 2024.06.14

+ Recent posts