🌦 Cloud

[AWS/SAA-03] EC2 인스턴스

핑크빛연어 2023. 4. 16. 21:52

 

💝 Amazon EC2

✤ AWS 에서 임대하는 가상 서버

✤ Amazon 에서 가장 인기있는 서비스이다.

✤ AWS 에서 제공하는 서비스형 시설

✤ EC2 = Elastic Compute Cloud (탄력있는 컴퓨트 클라우드) = Infrastructure as Service (서비스로서의 인프라)

✤ 1의 서비스가 아니라 많은 것을 포함하고 있다.

  • EC2 (임대하는 가상 서버)

  • EBS (가상 드라이브에 데이터 저장)

  • ELB (기계 전체에 부하 분산)

  • ASG (auto-scaling group 을 사용하여 서비스 확장)

✤ AWS EC2 의 사용법을 아는 것은 클라우드 작동 방식을 이해할 때 필수적이다.

✤ 클라우드는 필요할 때마다 언제든지 컴퓨팅을 대여할 수 있고 EC2 가 그 예시이다.

 

 

 

🚨 EC2 인스턴스 구성 옵션

✤ 운영체제 : Linux, Window, MacOs

✤ CPU 수

✤ RAM 양

✤ 용량

  • EBS & EFS

  • EC2 인스턴스 스토어

✤ 연결할 네트워크 종류

✤ 방화벽 규칙

✤ 인스턴스를 구성하기 위한 부트스트랩 스크립트

인스턴스를 통해 storage, memory, network 에 접근 가능

✤ 여러분은 원하는대로 가상 머신을 선택해서 AWS 에서 빌릴 수 있다! → User 가 직접 구성 결정 가능

 

 

 

🚨 EC2 사용자 데이터

✤ 사용자 데이터 스크립트를 사용하여 인스턴스를 부트스트래핑(머신이 작동될 때 명령을 시작하는 것) 할 수 있다.

✤ Root 계정에서 실행된다. - sudo 명령어 사용

✤ 스크립트 시작할 때 1번만 실행

✤ 부팅 작업을 자동화 한다.

✤ 인트턴스를 부팅할 때 자동화하고 싶은 작업

  • 업데이트 설치

  • 소프트웨어 설치

  • 인터넷으로 부터 공통 파일 다운로드

  • 생각할 수있는 모든 것!

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

 

✤ 실습 : Amazon Linux 에서 실행되는 첫번째 EC2 인스턴스를 생성

  • 콘솔을 사용하여 첫번째 가상서버를 실행할 수 있다.

  • 다양한 매개변수에 대한 높은 수준의 접근 방식을 얻을 수 있다.

  • EC2 사용자 데이터를 사용하여 웹 서버가 시작될 수 있다.

  • 인스턴스의 시작/종료/중지하는 방법을 얻을 수 있다.

  • 인스턴스 타입은 CPU 개수, 메모리 용량, 비용에 따라 달라진다.

 

 

 

🚨 EC2 인스턴스 유형 (Types)

✤ 명명규칙 ex) m5.2xlarge

  • m : 인스턴스 클래스 → 범용의 인스턴스

  • 5 : 인스턴스의 세대 (하드웨어 개선에 따른 세대)

  • 2xlarge : 인스턴스 클래스 내에서 크기 (small, large, 4xlarge, ...)

✤ EC2 인스턴스 유형 4가지

  • 범용 인스턴스

  • 최적화 인스턴스

  • 메모리 최적화 인스턴스

  • 스토리지 최적화 인스턴스

 

범용 인스턴스 (General Purpose)

  • 웹서버나 코드 저장소 같은 다양항 작업에 적합

  • 컴퓨트, 메모리, 네트워킹 → 균형이 잘 맞음

 

최적화 인스턴스 (Compute Optimized)

  • 컴퓨터 집약적인 작업에 최적화된 인스턴스

  • 고성능 프로세서

  • 훌륭한 CPU 와 컴퓨팅을 요구하는 작업

  • 이름이 C 로 시작

 

메모리 최적화 인스턴스 (Memory Optimized)

  • 메모리에서 대규모 데이터 셋을 처리하는 유형의 작업에 빠른 성능을 제공

  • 사용 사례

     - 데이터 베이스

     - 분산 웹 스케일 캐시 저장소

     - BI(business intelligence) 에 최적화된 인메모리 데이터베이스

     - 대규모 비정형 데이터의 실시간 처리를 수행하는 애플리케이션

  • 이름이 R 로 시작 (RAM 을 나타냄)

 

스토리지 최적화 인스턴스 (Storage Optimized)

  • 로컬 스토리지에서 대규모의 데이터셋에 액세스할 때 적합한 인스턴스

  • 사용 사례

     - 고주파 온라인 트랜젝션 처리인 OLTP 시스템에 사용

     - NoSQL 데이터베이스

     - 인메모리 데이터베이스의 캐시 (Redis)

     - 분산 파일 시스템에 사용

  • 이름이 I, G, H1 로 시작

 

더보기

전체 인스턴스 확인 사이트

https://instances.vantage.sh/

 

 

 

🚨 보안그룹 Security Groups

✤ 연결 상태를 추적하는 상태 저장 방화벽 이다 (Stateful Firewall)

✤ 보안그룹은 AWS 클라우드에서 네트워크 보안을 실행하는데 핵심이 됨

✤ EC2 인스턴스에 들어오고 나가는 트래픽을 제어함

✤ 허용 규칙만 포함

✤ IP 주소를 참조해 규칙을 만들 수 있다 (컴퓨터의 위치나 다른 보안그룹을 참조하는것 - 보안그룹끼리 서로 참조 가능)

 

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

 

✤ 규제 사항

  • 포트로 액세스 통제

  • 인증받은 IP 범위 : IPv4 와 IPv6

  • 외부에서 인스턴스로 들어오는 인바운드 네트워크 통제

  • 인스턴스에서 외부로 나가는 아웃바운드 네트워크 통제

 

✤ 보안그룹 규칙

Type Protocol Port Range Source (ip 주소 점위) Description
HTTP TCP 80 0.0.0.0/0 (전체 ip) test http page
SSH TCP 22 122.149.196.85/32  
Custom TCP Rule TCP 4567 0.0.0.0/0 (전체 ip) java app

     - Port Range : 트래픽이 인스턴스에서 통과하는 위치

     - Source : IP 주소 범위

 

 

 

🚨 알아두면 좋은 보안그룹

✤ 여러 인스턴스에 연결 가능

✤ 보안그룹과 인스턴스 간의 일대일 관계는 없다

✤ 보안그룹지역과 VPC 결합으로 통제되어 있다 - 지역 벗어나면 보안그룹 다시 생성해야함

✤ 보안그룹은 EC2 외부에 있다 → 트래픽이 차단되면 EC2 인스턴스에서 볼 수 없다

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

✤ time out 으로 인한 액세스 불가 → 보안그룹 문제이다

✤ connection refused(연결거부) 로 인한 액세스 불가 → 애플리케이션 문제이거나 보안그룹이 실행되지 않은 것이다

✤ 모든 인바운드 트래픽은 차단, 모든 아웃바운드 트랙픽은 허용됨

 

 

 

🚨 Ports

✤ 22 = SSH (Secure Shell) : Linux 인스턴스로 로그인하도록 함 (Linux 인스턴스에 원격으로 접속하기 위한 방식)

✤ 21 = FTP (File Transfer Protocol) : 파일 전송 프로토콜

✤ 22 = SFTP (Secure File Transfer Protocol) : SSH 를 사용해 파일 업로드

✤ 80 = HTTP : 보안되지 않은 사이트에 액세스

✤ 443 = HTTPS : 보안된 사이트에 액세스. 현재 표준!

✤ 3389 = RDP (Remote Desktop Protocol) : 원격 데스크톱 프로토콜. 윈도우 인스턴스에 로그인할 때 사용 (윈도우 인스턴스에 원격으로 접속하기 위한 방식)

 

 

 

🚨 SSH

✤ SSH 는 보안을 통해 원격으로 접속하기 위한 방식

운영체제 SSH (명령줄 인터페이스 도구) Putty 웹브라우저로
EC2 인스턴스에 연결
Mac  
Linux  
Windows < 10  
Windows >= 10

  • SSH 프로토콜을 이용해 Max/Linux 인스턴스에 원격으로 연결 및 파일 전송 가능

  • Putty 프로토콜을 이용해 Windows 인스턴스에 원격으로 연결 및 파일 전송 가능

       (Windows 10 이상인 경우 SSH 프로토콜 이용 가능)

  • EC2 인스턴스 프로토콜을 이용해 Mac/Linux/Windows 인스턴스에 원격으로 연결 및 파일 전송 가능

 

 

 

🚨 EC2 인스턴스 구매 옵션

✤ 온디맨드 인스턴스 (EC2 On Demand)

✤ 예약 인스턴스 (EC2 Reserved Instances)

✤ 절약 플랜 (EC2 Saving Plans)

✤ 스폿 인스턴스 (EC2 Spot Instances)

✤ 전용 호스트 (EC2 Dedicated Host)

✤ 전용 인스턴스 (EC2 Dedicated Instances)

✤ 용량 예약 (EC2 Capacity Reservations)

 

온디맨드 인스턴스 (EC2 On Demand)

  • 약정 없이 초당 사용한 만큼 비용 지불

  • 사용료 지불

     - Linux 또는 Windows : 사용한 대로 비용 지불

     - 다른 운영 체제 : 시간 단위로 지불

  • 비용이 가장 많이 든다.

  • 사용한 만큼만 비용 지불

  • 장기 약정 없음. 선 결제 없음.

  • 단기간 동안 예측할 수 없는 워크로드 및 중단되어서는 안되는 애플리케이션에 적합

  • 처음으로 개발 중이거나 시험 중인 애플리케이션에 적합

 

예약 인스턴스 (EC2 Reserved Instances)

  • 온디맨드에 비해 75% 저렴

  • 1년 또는 3년 약정으로 구매하는 인스턴스

  • 수요가 꾸준하고 예측가능한 경우에 적합 - 사용량 일정한 DB 에 적합

  • 결제옵션 : 전체 선결제 / 부분 선결제 / 선결제 없음 → 3가지

  • 선택가능한 예약 인스턴스 유형

     - 표준형 예약 인스턴스 (Standard Reserved Instances) : 인스턴스 타입을 지정하면 예약기간동안 변경 불가능

     - 전환형 예약 인스턴스 (Convertible Reserved Instances) : 예약기간동안 인스턴스 타입 변경 가능

     - 정기 예약 인스턴스 (Scheduled Reserved Instances) : 지정된 시간, 날짜 동안에 인스턴스가 시작되어 사용 (반복적이며 하루, 한 주 또는 한 달의 일부 기간 동안 필요한 경우 적합)

 

절약 플랜 (EC2 Savings Plans)

  • 온디맨드에 비해 75% 저렴

  • 1년 또는 3년 기간에 특정 사용량 약정으로 구매하는 인스턴스

  • 사용량은 시간 당 $달러로 요금 측정

  • 예를 들어 한 시간에 $5 의 컴퓨팅 사용량을 약정하면, $5 까지 Savings Plans 가격이 청구되고, 초과 사용량은 온디맨드 요금이 청구됨

  • 온디맨드에 비해 최대 66%~72% 저렴

  • 예약 인스턴스와 다르게 인스턴스 사이즈, 리전, OS 관계 없이 유연성 있게 적용 및 변경 가능

  • 두가지 유형

     - Compute Saving Plans

     - EC2 Instance Saving Plans 

 

스폿 인스턴스 (EC2 Spot Instances)

  • 가장 저렴 (온디맨드에 비해 최대 90% 저렴)

  • 인스턴스 손실 될 수 있다 → 조건에 미달하면 인스턴스 중지 또는 종료되므로 언제든지 시작 및 종료가 가능한 경우에 사용

  • 서버 중단없이 지속적으로 실행되어야 하는 경우 적합 X  중요한 작업이나 DB 에는 적합하지 않다

  • 여러 개의 스폿 인스턴스를 하나의 그룹으로 묶어 스폿 집합(Spot Fleets) 으로 구매해서 사용 가능

  • 예약 인스턴스 + 스폿 인스턴스(짧은 시간에 급격하게 증가된 용량이 필요한 경우) 조합으로 사용 가능

 

전용 호스트 (EC2 Dedicated Hosts)

  • 가장 비싼 옵션

  • 물리적인 전용 서버를 할당받아 사용하는 방식

     - CPU 소켓, 코어 등이 표시됨

     - 사용자가 인스턴스 배치 방법을 지정 가능

     - 소프트웨어 라이선스 사용 가능

  • 여러분이 물리적 서버 자체에 대한 접근권을 갖고 낮은 수준의 하드웨어에 대한 가시성을 제공해준다

 

전용 인스턴스 (EC2 Dedicated Instances)

  • 전용 하드웨어에서 실행되는 인스턴스 (물리적 서버와 다르다)

  • 같은 계정에서 다른 인스턴스와 함께 하드웨어 공유 가능

  • 여러분이 자신만의 인스턴스를 자신만의 하드웨어에 갖는다

     - 전용 호스트에서 사용 가능한 CPU 코어, 인스턴스 배치, 사용자 라이선스 사용 불가

 

용량 예약 (EC2 Capacity Reservations)

  • 원하는 기간동안 특정 AZ 에서 예약. 필요시마다 용량 접근 가능

  • 약정 X, 청구할인 X

  • 인스턴스 실행 여부와 관계없이 온디맨드 비율로 비용이 부과됨

  • 특정 AZ 에 있어야 하는, 중단 없는, 단기 워크로드에 적합

 

 

 

🚨 EC2 Section

✤ EC2 인스턴스 : AMI(OS) + 인스턴스 사이즈(CPU+RAM) + 스토리지 + 보안그룹 + EC2 사용자 데이터

보안그룹 : EC2 인스턴스에 연결된 방화벽

EC2 사용자 데이터 : 인스턴스가 처음 시작할 때 실행되는 스크립트

✤ SSH : EC2 인스턴스로 터미널 시작 (Port 22)

✤ EC2 인스턴스 룰 : IAM 역할에 대한 연결

✤ 구매 옵션 : 온디맨드 인스턴스 / 예약 인스턴스 / 절약 플랜 / 스폿 인스턴스 / 전용 호스트 / 전용 인스턴스 / 용량 예약

 

 

 

 

 

 

 

 

728x90
반응형