Notice
Recent Posts
Recent Comments
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

SYDev

[핸즈온 AWS] Chapter 2. AWS 컴퓨팅 서비스 본문

KHUDA 6th/Study

[핸즈온 AWS] Chapter 2. AWS 컴퓨팅 서비스

시데브 2024. 7. 29. 18:31

2.1. AWS 컴퓨팅 서비스

2.1.1. 컴퓨팅

  • Computing: 어떤 것에 대해 계산하여 답을 구하고 추정하는 행위
  • 컴퓨팅을 목적으로 하는 특화된 장비 -> server가 대표적 -> 특수성과 전문성을 위해 일반적인 컴퓨터에 비해 높은 사양이 요구되는 고성능 컴퓨팅 자원

 

2.1.2. AWS 컴퓨팅 서비스

  • AWS Computing Service: public cloud에서 computing resource를 활용하여 다양한 workload를 수행할 수 있는 서비스

 

AWS Computing Service

  • EC2(Elastic Compute Cloud): 클라우드 환경에서 서버 자원을 인스턴스라는 가상 머신(Virtual Machine, VM) 형태로 제공하는 가장 기본적인 AWS 컴퓨팅 서비스
  • ECS(Elastic Container Service): EC2 기반 관리형 클러스터에서 실행되는 컨테이너 형태의 자원에 대해 배포, 스케줄링, 스케일링 등을 관리하는 서비스
  • Lambda: serverless 컴퓨팅 서비스, 별도의 서버 설정이 없는 환경을 제공하여 코드만 실행해 주는 서비스
  • Lightsail: 독립적인 환경을 제공, 최소한의 설정만으로 손쉽게 사용 가능한 컴퓨팅 서비스 

 

2.2. Amazon EC2 

  • Elastic: '탄력적인' -> 컴퓨팅 자원에 대해 원하는 만큼 확장/축소하여 유연하게 사용할 수 있는 개념
  • Amazon EC2는 인스턴스라는 가상 컴퓨팅 환경을 기반으로 함, AMI(Amazon Machine Image)를 이용하여 인스턴스에 필요한 소프트웨어 정보를 정의 -> 사용자가 요구하는 CPU, Memory, Disk, OS, Software 등을 제공하여 workload에 맞는 최적화된 가상의 서버를 생성하고 관리

 

2.2.1. Amazon EC2 인스턴스

  • Instance -> 실행 중인 임의의 프로세스로 해석 (가상 컴퓨팅 환경)
  • Cloud Computing -> 가상의 환경에서 필요한 자원을 임대해서 사용
  • Amazon EC2 Instance: 클라우드 환경에서 자원을 필요한 만큼 사용, 쓰임을 다하면 자원을 반납하는 형태로 임의로 구성된 인스턴스

 

인스턴스 유형

인스턴스 유형 구조
ex) t2.micro
- t: 인스턴스 패밀리, 용도별 분류
- 2: 인스턴스 세대, 높을 수록 최신 세대, 최신 세대는 성능 우수
- micro: 인스턴스 크기, 크기가 커질수록 용량 및 가격 증가
  • 범용: 균형 있는 컴퓨팅 자원을 제공
  • 컴퓨팅 최적화: 고성능 프로세서를 활용하는 컴퓨팅 집약적인 application에 적합
  • 메모리 최적화: 메모리에서 대규모 데이터를 처리하는 workload에 적합
  • 가속화된 컴퓨팅: GPU 기반의 고성능 컴퓨팅이 실행되는 환경에 적합
  • 스토리지 최적화: 로컬 디스크에 매우 큰 데이터의 액세스를 요구하는 workload에 적합

 

인스턴스 상태

 일반적으로 일곱 가지로 분류 가능

  • 실행 중(running)
  • 중지됨(stopped)
  • 종료됨(terminated)

 

  • 대기 중(pending)
  • 중지 중(stopping)
  • 재부팅(rebooting)
  • 종료 중(shutting-down)

  1. 최초 시작: 특별한 이상이 없을 경우
  2. 중지: 인스턴스 종료가 아닌 일시적 중지 상태 -> 얼마든지 다시 시작 가능
  3. 중지된 인스턴스를 시작하는 행위
  4. 중지된 인스턴스를 종료하는 행위 -> 인스턴스 영구 삭제
  5. 실행 중인 인스턴스를 종료하는 행위 -> 인스턴스 영구 삭제

중지 -> 일시중지

종료 -> 영구 삭제

 

2.2.2. AMI

  • AMI(Amazon Machine Image): 인스턴스를 시작할 때 필요한 정보를 제공하는 것 -> OS와 Software를 적절히 구성한 상태로 제공되는 template
  • 인스턴스를 생성할 경우 AMI를 지정해야 함
  • 하나의 AMI로 동일한 구성 여러 인스턴스 쉽게 생성 가능
  • 사용자 정의 AMI, 서드 파티용 AMI(AWS Marketplace에서 제공)

 

사용자 정의 AMI 생성 및 배포

  1. 기본 AMI로 instance 생성
  2. 변경 및 구성 후 사용자 정의 AMI todtjd
  3. 사용자 정의 AMI를 사용하여 맞춤형 instance 생성

 

2.2.3. Amazon EC2 스토리지

  • Storage: 데이터를 저장하는 공간 -> 서버 자원에서 발생되는 다양한 데이터를 보관
  • Amazon EC2 인스턴스용 스토리지 유형은 기본적으로 Instance Store와 Amazon EBS(Elastic Block Store)로 나뉨

 

Instance Store

  • instance에 바로 붙어 있는 저장소
  • 일부 인스턴스 유형은 instance store를 지원 X -> t2.micro 인스턴스 유형도 마찬가지
  • 직접 붙어 있는 구조 -> 매우 빠른 I/O(Input/Output)를 보장한다는 장점
  • Amazon EC2 인스턴스를 중지/종료 -> Instance store에 저장된 데이터 모두 손실된다는 단점

 

Amazon EBS

  • 외장 하드디스크와 비슷한 개념 -> instance에 연결 및 제거를 하는 형태로 구성되는 block storage
  • 네트워킹을 통해 Amazon EBS에 접근하여 연결되는 구조 -> 영구 보존이 가능한 storage
  • instance가 중지/종료되어도 Amazon EBS에 보존하는 데이터 유지
  • 관리 콘솔을 통해 스냅샷 생성 -> 백업하거나 Amazon EBS 연결 해제 후 -> 다른 인스턴스에 연결 가능

 

2.2.4. Amazon EC2 네트워킹

 Amazon EC2 인스턴스: 가상 서버 자원 -> 서비스를 제공하려면 자연스럽게 통신이 가능한 환경으로 구성되어야 함 

 

Amazon VPC(Virtual Private Cloud)

  • AWS 퍼블릭 클라우드 안에서 논리적으로 격리된 가상의 클라우드 네트워크
  • 생성된 Amazon EC2 Instance -> 별도로 구성된 하나의 Amazon VPC 안에 생성되어 네트워킹됨

 

네트워크 인터페이스

  • 네트워킹을 수행하려면 network interface가 필요
  • AWS에서는 ENI(Elastic Network Interface)라는 논리적 네트워크 인터페이스가 VPC 내 생성 -> EC2 instance에 연결해 네트워킹 수행 -> 가상의 어댑터

 

IP 주소

  • 네트워크 인터페이스에는 IP(Internet Protocol) address가 존재 -> IP address로 대상을 구분하고 네트워킹 수행
  • private IP: 내부 구간의 통신을 위한 사설 IP
  • public IP: 외부 구간의 통신을 위한 공인 IP

 

2.2.5. Amazon EC2 보안

보안 그룹 

  • security group: Amazon EC2 인스턴스의 송수신 트래픽을 제어하는 가상의 방화벽 역할
  • 수신 트래픽에 대한 Inbound 규칙과 송신 트래픽에 대한 Outbound 규칙 -> 대상 트래픽에 대한 허용과 거부 결정
  • 트래픽을 정의하는 방법: protocol, port number, IP 대역 등

 

키 페어

  • key pair: Amazon EC2 인스턴스에 연결할 때 자격을 증명하는 보안 키
  • public Keyprivate Key로 구성
  • public key: Amazon EC2 인스턴스에 저장
  • private key: 사용자 컴퓨터에 별도로 저장

 

2.2.6. Amazon EC2 모니터링

 서비스 안정성과 가용성, 성능 유지에 필요한 중요 영역

모니터링 계획

  • 모니터링 목표
  • 모니터링 대상 자원
  • 모니터링 빈도
  • 모니터링 수행 도구
  • 모니터링 작업을 수행할 사람
  • 문제가 발생할 때 경보를 알려야 할 대상

 

수동 모니터링 도구

  • 관리자가 관리 콘솔을 이용하여 모니터링을 수행
  • Amazon EC2 대시보드에서 간단한 통계 정보를 확인
  • Amazon CloudWatch라는 모니터링 전용 서비스를 이용 -> 상세한 통계 정보를 모니터링

 

자동 모니터링 도구

  • 대상 자원의 지표에 대해 임곗값을 설정 -> 임곗값을 초과하면 경보를 내리는 형태의 동적 모니터링 방법
  • Amazon CloudWatch: 단일 지표를 관찰 -> 지정된 임곗값 기준으로 경보 작업 수행
  • Amazon SNS(Simple Notification Service): 알림 시스템으로 관리자 이메일 혹은 다른 방법으로 호출하거나, Amazon EC2 인스턴스 자원을 동적으로 확장

2.2.7. Amazon EC2 인스턴스 구입 옵션

  • On-demand instance: 시작하는 instance에 대한 비용을 초 단위로 지불
  • Savings Plans: 1년 또는 3년 동안 시간당 비용을 약정하여 일관된 컴퓨팅 사용량을 제공
  • Reserved instance: 1년 또는 3년 동안 인스턴스 유형과 리전을 약정하여 일관된 인스턴스를 제공
  • Spot instance: 미사용 중인 인스턴스에 대해 경매 방식 형태로 할당하는 방식

 

2.3. Amazon EC2 Instance 배포 및 접근하기

 

-> instance 정상적으로 실행 완

 

chmod 600 syKey.pem
ssh -i (key file path) ec2-user@(public ip 주소 or Domain)

-> key 파일 경로 변경

-> 인스턴스 ssh로 접속

 

-> 정상 접속 완

 

sudo su -
yum install httpd -y
systemctl start httpd
curl -L https://bit.ly/afbtest01

-> super user로 전환

-> http 데몬 설치

-> http 데몬 실행

-> 웹 서비스 최초 페이지 내려받기

 

HTTP 데몬
(Hypertext Transfer Protocol Daemon), 즉 httpd는 웹 서버의 백그라운드에서 실행되어, 들어오는 서버 요청을 대기하는 소프트웨어 프로그램이다. 이 데몬은 자동으로 요청에 응답하며 HTTP를 사용하여 인터넷을 경유, 하이퍼텍스트, 멀티미디어 문서들을 서비스한다.

출처: https://ko.wikipedia.org/wiki/Httpd

 

 

-> 경보 생성 완(CPU 사용률이 50% 이상이면 경보)

 

stress-ng --cpu 1 --cpu-load 70% --timeout 10m --metrics --times --verify

-> 자체적으로 70% 부하를 걸어줌

 

-> 경보 알림 정상 수신

 

cat /proc/cpuinfo | grep name
model name	: Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz

cat /proc/meminfo | grep MemTotal
MemTotal:         975532 kB

ip -br -c addr show eth0

curl ipinfo.io/ip

lsblk
df -hT -t xfs

-> cpu 정보 확인

-> 메모리 용량 확인

-> 프라이빗 IP 주소 확인

-> 퍼블릭 IP 주소 확인

-> 스토리지 확인(EBS 볼륨 확인)

 

-> instance 정상 종료 확인

-> 경보 삭제

 


참고자료

  • AWS 교과서, 김원일 외 2명, 길벗, 2023.10.20