3. 컴퓨팅 - EC2

Chloe·2023년 10월 21일
0

AWS Solution Architecture

목록 보기
12/21
post-custom-banner

EC2 개요 및 인스턴스 생성
: 클라우드 가상 환경

EC2개요
AWS 클라우드 컴퓨팅 서비스 = 클라우드 가상서버 (Virtual manchine)
EC2 클라우드 가상 서버를 '인스턴스'라고 부름
EC2 인스턴스 생성 실습
1. 이름 및 태그
2. 애플리케이션 및 os 이미지
3. 인스턴스 유형
4. 키 페어
5. 네트워크설정
6. 스토리지 구성
7. 고급 세부정보


서울리전에 대한 서비스상태를 볼수도 있음

무료가 아니라 유료인 소프트웨어가 있기때문에 살펴보고 설정해야함

어플리케이션 목적에 따라 설정 필요 (스팩)

키페어 - 보안키

다른환경에서 원격접속 할때 필요함!

네트워크설정은 디폴트로!!
네트워크는 이후에~!!

편집을 누르면 네트워크도 설정 가능
방화벽(보안그룹) : 인스턴스에 대한 트래픽을 제어하는 방화벽 규칙 세트

스토리지가 구성되어야 함 (os 구성) - advanced를 설정해주면
스토리지 볼륨도 바꿀수 있음 (EBS)

종료 시 삭제 - 예 (하면 종료되면 삭제됨)

추가로 보륨을 추가할수 있음

파일시스템도 연결 할 수 있음 (공유파일 스토리지)
EFS, FSx 등..

고급 세부정보
-여러 구매옵션을 정할 수 있음
-iam 인스턴스 프로파일 : 처음 설정될때 정할 수 있음
-호스트 이름 유형 : default는 ip 그외에는 > 네트워크 서브넷 지정 해줘야함

인스턴스 자동 복구 - 헬스체크해서 문제 생기면 자동 복구
종료동작 - 중지 (중지) 정지 (삭제됨)
최대 절정 중지 방식 - 컴퓨터의 절전모드랑 비슷함
종료방지 - 실수로 종료하는걸 막는것

인스턴스 upc 사용량을 cloudwatch로 모니터링 할지 (활성화 -> 추가요금비용)

Elastic inference - 머신러닝 관련된 기법

credit specification : 할당량 만큼 사용할건지, 무제한으로 사용될 것인지

배치 그룹 : 조합
용량 예약 - 이전에 사용해둔 용량을 이용하는 것
테넌시 : AWS 데이터센터에 있는 물리적 서버에 비어있는 서버를 랜덤하게 사용하게 됨
RAM 디스크, 커널 ID
Nitro Enclave : 보안 관련된 것

Metadata : 인스턴스에 관련된 정보를 관려된것 - 사용자가 사용할 수 있음

사용자 데이터 - 시작할때 스크립트를 실행할수 있음

절전모드를 사용하려면?

스토리지 볼륨 - Encryption (암호화) 해야함

EC2 기능 및 구성

인스턴스를 만들때 EBS라는 OS가 설치되는 디스크 볼륨을 같이 생성해줌
이 볼륨이 인스턴스가 2개이니까 2개가 만들어줌

상태 변경 가능

리전 - 가용영역
(어느 가용영역을 사용하고 있는지 알 수 있음)

EC2 인스턴스 원격 접속 실습

EC2 원격접속 - SSH 연결 (linux 인스턴스)
SSH 프로토콜을 이용하여 linux 인스턴스에 원격으로 연결 및 파일 전송 가능
SSH(Secure shell protocol)은 보안을 통해 원격으로 접속하기 윈한 방식
아이디, 패스워드 방식이 아닌 public key와 Private key를 이앙쇼하여 사용

원격 접속 방법 : MAC PC의 Termianl, Window powershell, Window Putty 프로그램등을 사용

EC2 원격 접속 - RDP연결(windows 인스턴스)
RDP 프로토콜을 이용하여 Windows 인스턴스에 원격으로 연결 및 파일 전송 간으
RDP Windows OS를 원격으로 접속하기 위한 방식
아이디와 패스워드를 이용해 접속
원격 접속 방법 : 윈도우의 원격 데스크톱 연결 프로그램 사용


EC2 원격접속 - Instance Connect 연결 (Linux 인스턴스)

웹 브라우저를 이용해 EC2 인스턴스에 연결
SSH 프로토콜을 사용하여 일회용 SSH 퍼블릭키를 인스턴스 메타데이터에 업로드해서 EC2 연결
SSH 프로토콜을 사용하기 위해서는 22번 포트가 오픈되어있어야 연결 가능

Powershell이나 Putty를 이용한 ssh 연결처럼 프라이빗 키를 다운로드 받을 필요가 없음
linux 인스턴스만 연결 가능

인스턴스 연결

키파일의 경로로 이동하고 (powershell)
ssh 설치되어있는지 확인하고
명령어로 접속

디나이된 이유는 보안 -> 고급 키파일이 너무 허용이 많이 되어있어서 그런것임으로

권한을 제안하고 연결한다.

윈도우즈는 RDP를 사용한다.

보안에서 보안규칙이 22번 허용되어있는지 확인이 필요함

윈도우는 TCP 3389 RDP 프로토콜이 있어야함

EC2 리눅스 웹서버 생성 실습

yum update -y
yum install httpd -y
service httpd start
chkconfig httpd on
cd /var/www/html
echo "Hello AWS EC2. $(hostname -f)" > index.htm

퍼블릭 아이피주소를 복사해서 붙여넣으면 (http) 접속이됨

EC2 인스턴스 구매 옵션
온디맨드 인스턴스 (default)
: 약정 없이 초당 사용한 만큼 비용 지불
처음 60초 이후에 초당 과금
장기 약정이나 선 결제가 없음
단기간 동안 예측 할 수 없는 워크로드 및 중단되어서는 안되는 애플리케이션에 적합
EC2에서 처음으로 개발 중이거나 시험 중인 애플리케이션 사용게 강함

예약 인스턴스
:1년 또는 3년 기간을 약정하여 인스턴스를 사용
온디맨드에 비해 75% 저렴
수요가 꾸준하고 예측가능한 경우에 유용
결재 옵션은 전체 선결제ㅡ 부분 선결제, 선결제 없음 3가지 선택 가능
선택 가능한 예약 인스턴스 유형
✓ 표준 예약 인스턴스(Standard Rewserved Instances) : 인스턴스 타입을 지정하면서 예약 기간동안 변경 불가능
✓ 전환형 예약 인스턴스(Convertible Reserved Instances): 예약기간동안 인스턴스 타입 변경가능
✓ 정기 예약 인스턴스(Scheduled Reserved Instances): 지정된 시간, 날짜 동안에 인스턴스가 시작되어 사용(반복적
이며 하루, 한 주 또는 한달의 일부 기간 동안 필요한 경우 적합)

Saving Plan
:1년 또는 3년 기간의 일정 사용량을 인정하여 시간당 요금으로 인스턴스 사용
✓ EC2 뿐만 아니라 Lambda 및 Fargate 서비스도 사용 가능
✓ 사용량은 시간당 USD 요금으로 측정
✓ 예를 들어 한 시간에 $5의 컴퓨팅 사용량을 약정하면 $5까지 Saving Plans 가격이 청구 되고 초과 사용량
은 온디맨드 요금이 청구 됨
✓ 온디맨드에 비해 최대 66~72% 저렴
✓ Compute Saving Plans 와 EC2 Instance Saving Plans 두가지 유형이 있음
✓ 예약 인스턴스와 달리 EC2 인스턴스 패밀리, 인스턴스 사이즈, 리전, OS 관계 없이 적용 및 변경 가능한 유연성이 있음 (언젠든지 변경가능!)

전용 호스트 / 전용 인스턴스
:aws 에서 임의로 할당받아서 사용하게 되는데
전용 물리적 서버를 할당 받아서 인스턴스를 사용

전용 호스트
물리적인 전용 서버를 할당 받아 사용하는 방식
CPU 소켓, 코어 등이 표시됨
(기억의 특정 소프트웨어의 경우 라이센스 비용을 절약할 수 있음
소켓당, 코어당 또는 VM 당으로 사용하는 소프트웨어 라이선스사용가능)
CPU 코어나 물리적 서버에 할당 되는 라이선스를 기존에 보유 한경우에 적합
사용자가 인스턴스 배치 방법을 지정 할 수 있음

전용 인스턴스
물리적인 전용 서버를 할당 받아 사용하는 방식
전용 호스트에서 사용가능한 CPU코어, 인스턴스 배치, 사용자 라이선스 사용 불가

스팟 인스턴스
:사용 안하는 인스턴스를 경매 방식으로 구매하여 사용
온디맨드 인스턴스보다 최대 90% 저렴함
경매 조건에 미달하면 인스턴스가 정지 또는 종료되므로 언제든지 시작 및 종료가 가능한 경우에 사용
언제든 인스턴스가 종료될 수 있기 때문에 서버가 중단 없이 지속적으로 실행 되어야 하는 경우 사용 안함
여러개의 스팟 인스턴스를 하나의 그룹으로 묶어 스팟 집합(Spot Fleets)으로 구매해서 사용
그래서

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

요쪽에서 고를수 있음!

EC2 인스턴스 유형

인스턴스를 생성할때 지정하는 인스턴스 유형에 따라서 컴퓨터의 하드웨어가 결정
인스턴스 유형은 CPU, 메모리, 스토리지 및 네트워크 용량의 여러 조합으로 구성 됨
애플리케이션에 따라 적합한 유형을 선택하여 인스턴스를 시작

인스턴스 유형은 목적에 따라
범용, 컴퓨팅 최적화, 메모리 최적화, 가속화된 컴퓨팅, 스토리지 최적화의 인스턴스 매밀리로 분류됨



비교하여 선택 가능

vCPU(vertual CPU)
스토리지는 별도로 연결하게되는게 일반적이나

물론 특정 스토리지 유형에는 스토리지가 내장되는 경우도 있기는 함!
-> 인스턴스 스토리지
EBS스토리지는 가상 스토리지 인데, 인스턴스 스토리지는 물리적으로 할당된 SSD나 하드디스크라고 보면 됨

또한 모든 인스턴스가 네트워크 성능이 똑같은것이 아니라
인스턴스 용량이 크면 네트워크도 고성능이 됨




네트워크 인터페이스

AWS EC2인스턴스는 가상 머신
이 가상 머신도 하나의 개별 서버이기 때문에 인터넷이나 다른 AWS 리소스와 통신하기 위해서는 네트워킹을 이용하게됨
네트워킹을 이용하기 위해서는 네트워크 인터페이스를 사용해야함
기본적으로 EC2를 생성할 때 하나의 네트워크 인터페이갓 생성됨
이 네트워크 인터페이스에 IP 주소가 부여되어 EC2인스턴스는 네트워크 인터페이스를 통해 통신하게 됨

Elastic Network Interface(ENI)
: 가상 네트워크 인터페이스
ip,mac 주소등이 부여됨
인스턴스에 연결이되서 네트워크 통신을 하는 역할
인스턴스 생성시 기본 네트워크 인터페이스가 ip주소 등의 정보 할당과 함께 생성됨
ec2에 추가로 여러개의 네트워크 인터페이스 연결 가능


보안그룹에서 트레픽 제어를함

분리하면 연결할수 없게됨

네트워크 인터페이스를 추가로 생성하는 방법
서브넷은 동일한 가용영역에 있는것을 선택해야함

연결 - instance 로 연결하면 inuse로 바뀜

하나에 여러개의 네트워크 인터페이스를 연결 할 수 있음

보안그룹

인스턴스를 생성할때 보안그룹을 같이 생성하게됨

보안그룹
: EC2 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽 역할
EC2 인스턴스의 ENI와 연결됨
보안그룹은 허용 규칙만 지정가능하고, 거부 규칙은 지정 할 수 없음
보안그룹은 연결 상태를 추적하는 상태저장 방화벽(Stageful firewall)

  • vpn에서 네트워크 ACL의 경우는 상태비저장 방화벽임

인바운드 트래픽 : 외부에서 EC2로 들어오는 트래픽
아웃바운드 트래픽 : EC2인스턴스에서 외부로 나가는 트래픽
제어규칙
-트래픽유형(ex;SSH, TTPS 등)
-프로토콜(TCP,UDP 등)
-PORT (SSH 22, HTTP 80 HTTPS 443 MySQL 3306(
-대상 (개별ip주소, ip주소 대역(CIDR Block), 다른 보안 그룹, prefix List

Security Group (보안 그룹) - Stateful (상태저장)
아웃바운드 규칙에 상관없이, 허용된 인바운드 트래픽에 대한 반응으로 외부로 나가는 흐름이 수행
out바운드에 허용하지 않아도 리턴 트래픽이 가능

사용자가 인스턴스에서 요청을 전송하면 해당 요청의 응답 트래픽은 인바운드 보안 그룹 규칙에 관계 없이 인바운드 흐름이 자동으로 허용

인바운드가 다 허용이 가능하면 아웃바운드는 저절로됨 (default- 모두허용)

Elastic ip (탄력적 ip)

public ip vs private ip

퍼블릭 ip : 인터넷 연결에 사용하는 ip
프라이빗 ip : 회사나 집의 내부에서만 사용하는 ip, 집접적으로 인터넷 연결이 안되어 인터넷 게이트웨이를 통해야함

따라서 이 private ip는 그 간에 연결이 안됨

탄력적 ip(elastic ip)
인스턴스 생성시 자동으로 할당 받은 public ip는 인스턴스를 재시작 하면 다른 ip로 재할당 받기에 public ip 주소가 변경됨
Elastic IP는 인터넷에 연결 가능한 고정적(정적)인 퍼블릭 ip주소
EC 인스턴스의 ENI(엘라스틱 네트워크 인터페이스)에 탄력적 IP를 연결하면 EC2 인스턴스를 다시 시작해도 동일한 IP주소로 접속 할 수 있음


중지하고 다시 시작하면 요 IP가 바뀜


탄력적 IP > 유료서비스 (할당된 IP주소는 바뀌지 않음) - 연결 (인스턴스/네트워크 인터페이스)


EC2 AMI

Amazon Machine Image (AMI)
os, 애플리케이션, 서버 프로그램 설정 등이 미리 구성된 이미지
ec2 인스턴스를 시작하는데 ami 사용하여 ec2 시작시 os 설치나 서버 소프트웨어 설정 등을 별도로 할 필요가 없음

AMI 3가지 유형

운영중인 EC2인 인스턴스를 커스텀 AMI로 만들어서 동일한 환경으로 구성된 EC2 환경을 빠르게 만들 수 있음

Elastic block store (스탭샷)을 백업을해서 이걸 AMI로 컨버팅하면 할 수 있음

EC2 배치그룹 (Placemnet Groups)

EC2 인스턴스 배치를 구성하는 방법
인스턴스를 생성하게 되면 이 인스턴스는 AWS 데이터 센터에 있는 물리적인 서버에 가상머신이 생성이됨
이렇게 이 EC2 가상머신을 물리적인 어떤 서버에 어떤 방법으로 배치해야할지를 배치 그룹을 통하여 구성 가능

3가지 유형의 배치그룹이 있음

만약 배치그룹을 사용하지 않으면?
인스턴스가 랜덤하게 할당되므로 클러스터 배치그룹에 비해서 테트워크 지연시간이 상대적으로 길어짐!!!

  1. 클러스터 배치그룹
    클러스터 밸치그룹을 사용하게 되면 가까운 거리에 있는 물리적 서버에 EC2서버가 할당이 되고, 이 EC2물리적 서버 길이는 고속 네트워크로 연결됨
    이렇게 될경우 네트워크 지연 시간이 매우 짧고
    이 경우에는 짤읍 대기 시간이 필요한 고성능 컴퓨팅이 있음 (HPC)
    이 고성능 컴퓨팅에 적합한 배치그룹 방식

  1. 배치그룹 - 파티션(Partition) 배치그룹

하드웨어를 파티션으로 그룹화
파티션끼리는 서로 다른 하드웨어 사용 (하드웨어를 공유하지 않음)

하나의 하드웨어 장애 발생시 다른 하드웨어에 영향이 없음(파티션간 장애의 영향을 분리)
이 배치그룹의 경우 하둡 등의 빅데이터 분산 처리 시스템이 사용

  1. 분산형 배치그룹
    같은 서버랙의 서버를 그룹화
    분산 그룹의 서버는 다른 서버랙에 있음

분산 그룹끼리 서버랙을 공유하지 않으므로 서버랙에 장애 발생시 안전
매우 중요하고 고가용성이 필요한 애플리케이션에 적합

인스턴스 시작시 고급설정에서 배치그룹에서 설정 가능


EC2 라이프 사이클

EC2 인스턴스를 시작하고, 종료하는것을 이야기함

✓ 시작(Start): 인스턴스 전원을 켜는 것
✓ 재부팅(Reboot): 인스턴스를 재부팅
✓ 중지(Stop): 인스턴스 전원을 끄는 것
✓ 종료(Termination): 인스턴스 삭제
✓ 최대절전모드(Hibernate): RAM에 있는 애플리케이션 상태를 저장 후 중지상태 전환
노트북에서 종료를 안하고 스크린만 닫을 때와 동일
서버 부팅 시 프로세스 로드시간이 오래 걸리는 시스템의 경우 유용

종료방지 기능 OFF하고나서야 종료가능~!!

메모리에 인스턴스를 임시 저장

post-custom-banner

0개의 댓글