본문 바로가기
클라우드 서비스

[클라우드 서비스] Computing Service _ 20241203

by 황오독 2024. 12. 5.

Amazon EC2 사용

더보기

실습과정

#2. 가상머신 구성

- EC2 인스턴스를 이용한 웹서버 구축

- 프라이빗 서브넷에 인스턴스 생성

- NAT 게이트웨이 생성

- 라우팅 테이블 구성 및 연결

- Cloud9 환경 구성 및 작동 테스트

1. 가상 머신(Virtual Machine)

- 물리적 서버는 라이브러리가 동일할 때만 여러 앱을 올릴 수 있다.

또 여기서 만약 하나의 앱이 cpu와 memory를 많이 사용한다면, 다른앱은 성능이 저하가 된다.

따라서 라이브러리 하나 당 앱을 하나씩 올리게 되어 자원 효율성이 떨어진다.

 

- 가상머신은 한개의 물리적 서버 위에 다수의 가상머신을 생성하여 앱들이 독립적으로 실행할 수 있게 한다.

서로 다른 운영체제 기반의 다양한 기술 스택을 적용한 애플리케이션을 실행하여, 컴퓨팅 자원의 사용률을 최대화하고 물리적인 서버의 개수를 줄임으로써 비용을 절감할 수 있다.

 

** 여기서 우리가 사용할 클라우드 서비스는 Amazon EC2 (Elastic Compute Cloud)이다.

** 실무에서는 가상머신 => 인스턴스라고 부르므로 우선 혼용해서 사용하도록 하모니카!

 

2. EC2

- 온프레미스에서 서버가 수행할 수 있는 모든 워크로드를 지원 (클라우드로 전환)

- 글로벌 인프라를 활용하여 고객이 원하는 다양한 위치에 배포 가능

- 워크로드 요구사항에 부합하도록 최신의 다양한 인스턴스 유형 제공

  (예를 들어 AI, 비트코인 같은 경우는 CPU를 많이 필요로 하고, DB는 Memory를 많이 필요로 하는데, 이에 맞추어 다양한 유형을 제공해준다.)

- 빠른 실행 및 변경 관리, 용량 조정 및 확장 지원

- 비용 최적화 실현 (사용한 만큼만 과금, 적절한 요금 옵션 선택 지원)

 (예를 들어 VM을 생성하고 중단시키면 해당 과금은 발생하지 않는다.)

 

3. EC2 생성 절차

** 기타 고급 옵션 : 사용자 데이터/메타데이터, 전용 옵션, 배치 그룹, 요금 옵션, IAM 등

 

1) 이름/태그 지정

- 리소스 생성 시 태그를 지정하면 쉽게 관리할 수 있다.

- Key-Value 형태로 지정하고, 대/소문자를 구분한다.

- 동일 유형의 리소스가 많을 때 특히 유용하며 지정한 태그에 따라 리소스를 빠르게 식별, 필터링 및 관리할 수 있다.

- 몇천개의 인스턴스 중 중단해야 하는 인스턴스를 찾는 것은 어렵기 때문에, 태그를 지정하여 동일한 tag를 가진 다수의 인스턴스를 한 번에 중지 및 재시작시킬 수 있다.

=> 조직 내 리소스 및 비용을 효율적으로 관리할 수 있어 적극적으로 활용하는 것을 추천

 

2) 인스턴스 기본 옵션

2-1) AMI 지정

① 개념 및 용도

- Amazone Machine Image

- 인스턴스를 시작하는데 필요한 정보를 제공하며, 인스턴스 생성시 소스 AMI를 지정해야한다.

- 여기서 이미지는 OS, APP, 구성 파일, 보안설정 등이 포함되어있는 일종의 "설정 패키지"이다.

- 예를 들어, 노트북 200대에 Window, Office 등 업무에 필요한 것들을 모두 설치해야하는데, 하나씩 설치하는 것은 매우 비효율적이다.

- 미리 만들어 놓은 이미지를 노트북에서 실행하면, 동일한 환경이 노트북에 설치되는 것이다.

- 이처럼 동일한 구성의 인스턴스가 필요할 때 하나의 AMI에서 다수의 동일한 인스턴스를 생성할 수 있고,

- 용도별 AMI를 이용하여 다양한 용도의 인스턴스를 생성 할 수 있다.

  (ex. 웹 서버용 AMI, 애플리케이션 서버용 AMI 등)

- AWS에서 제공하는 사전 구축된 AMI, AWS Marketplace에서 다운로드할 수 있고, 사용자가 자체 생성한 사용자 AMI 모두 활용이 가능하다.

 

② AMI의 구성 내용 및 이점

  AMI
AMI 구성내용 1) EC2 인스턴스 루트 볼륨용 템플릿
- EBS 루트 볼륨 : EC2 인스턴스 생성할 때 기본적으로 생성되는 기본 디스크 스토리지
- EBS : 하드디스크 또는 SSD 같은 역할
- 루트 볼륨 : 인스턴스가 운영체제를 부팅하는데 사용하는 기본 디스크로 일반적으로 전체 운영 체제(OS) 및 설치된 구성 요소 (애플리케이션, 라이브러리, 유틸리티 등)을 포함
- EC2 인스턴스를 생성하면, 루트 볼륨이 자동으로 EBS에 연결됨.

2) 해당 AMI를 사용하여 인스턴스를 시작할 수 있는 권한

3) 인스턴스에 연결할 볼륨을 지정하는 블록 디바이스 매핑 정보
이점 1) 반복성 : 특정 AMI에서 생성된 인스턴스는 동일한 복제본이므로, 다수의 인스턴스가 필요한 클러스터를 구축하거나 재생성하기가 용이함.

2) 재사용성 : EC2 인스턴스의 전체 구성 및 콘텐츠를 패키징하므로 계속 다시 사용이 가능함.

3) 백업 & 장애복구 : 운영중인 인스턴스에 장애가 발생한 경우, AMI를 통해 신규 인스턴스를 빠르게 생성할 수 있음.

 

④ 사용자 AMI 생성

https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html

- 인스턴스에 연결된 루트 볼륨의 스냅샷 생성 후 이를 다시 사용자 AMI로 등록하여 활용한다.

 

2-2) EC2 인스턴스 유형

- 애플리케이션 요구사항에 따라 인스턴스 패밀리, 세대 및 크기를 결정한다.

 

2-3) EC2 Key Pair

- 서비스 운영 중 로그 확인, 상태 확인, 또는 설치 등을 위해 특정 인스턴스에 직접 접속하려면 Key Pair가 필요하다.

  (포트가 아니라, SSH(Secure Shell) 접속 인증을 위함)

- Public Key는 EC2 인스턴스에 내장되어 있고, 사용자가 다운로드 받은 Private Key를 사용하여 인스턴스에 접속을 시도하면, 인스턴스는 Public Key를 이용하여 사용자 접속 허용 여부를 결정한다.

- 여기서 한번 다운로드된 Private Key 파일(.pem)은 보안상 이유로 콘솔에서 재다운로드가 불가능하고, AWS에 저장되지 않기 때문에 파일을 잃어버리지 않도록 관리에 주의를 기울여야 한다.

 

* RSA는 가장 많이 활용하는 대표적인 비대칭키(공개키) 암호화 방식이며, ED25519는 RSA보다 좀 더 성능이 우수한 알고리즘을 사용하는 방식임

 

2-4) 데이터 저장

- 블록 스토리지 (HDD/SDD)인 Amazon EBS, EC2 with Instance Store,

- 파일 스토리지인 EFS/FSx가 있다.

- Amazon EBS가 기본으로, 용도에 따라 옵션을 선택하여 사용할 수 있다.

 

3) 추가옵션

3-1) 사용자 데이터와 메타 데이터

- 사용자 데이터는 콘텐츠로, 메일 제목, 메일 본문, 첨부 파일이라면,

- 메타 데이터는 발신자, 수신자, 날짜 등의 정보가 들어있음.

 

① 사용자 데이터

- EC2 인스턴스 생성 시 사용자 데이터(User Data)에 쉘 스크립트를 작성하면 일반적인 구성 작업을 자동화하는데 사용할 수 있다.

- 인스턴스 AMI를 패치 및 업데이트하거나, 추가 소프트웨어를 설치하는 등에 활용한다.

** Shell(쉘) : OS 상에서 사용자가 입력하는 명령을 읽고 해석하여 대신 실행해주는 프로그램

** Shell Script(쉘 스크립트) : 명령어들을 조합하여 만든 파일로, 한줄씩 순차적으로 명령어들을 실행

 

② 메타 데이터 (상세 정보)

- 실행 중인 인스턴스를 구성 또는 관리하는데 사용될 수 있는 인스턴스 관련 데이터를 의미한다. (Key-Value) 형식

- 메타데이터에는 시작을 완료한 새 인스턴스의 퍼블릭 IP 주소, 호스트 이름 또는 MAC 주소 정보 등이 있다.

- 사용자 데이터 내 쉘 스크립트를 작성할 때 속성 정보를 조회하기 위해 활용한다.

 

ex) # 예시: EC2 인스턴스의 퍼블릭 IP 주소 조회

      curl http://169.254.169.254/latest/meta-data/public-ipv4 (가운데 IP주소는 메타데이터 서버)

클라우드 화면에서 확인 가능

 

3-2) 인스턴스 생명주기

- 인스턴스 사용요금은 Running(실행) 중인 경우에만 청구되며, Stopped(정지나) Terminate(종료/삭제) 상태에서는 과금이 되지 않는다.

https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html

- 하지만 stopped 되고 restart를 할 경우 pending 단계부터 시작하며, Public IP는 바뀌게 된다. (유동적)

 

3-3) 전용 옵션 (테넌시)

- 전용 옵션은 라이선스, 정책 및 규제 등의 이유로 인스턴스 배치를 제어하고자 할 경우 활용할 수 있다.

- 아래 표와 발그림 참고

전용 인스턴스(Dedicated Instance) 전용 호스트(Dedicated Host)
다른 인스턴스와 호스트 하드웨어 수준에서 물리적으로 격리됨 (불특정 하드웨어에서 실행) 고객 전용 물리적 EC2 서버를 예약
인스턴스 단위의 결제 (시간당) 호스트 단위의 결제
지정된 동일한 물리적 서버에 배포 X 지정된 동일한 물리적 서버에 배포
(특정 서버에 한정된 라이선스 활용)
자원을 유연하게 쓰고 싶을 때 사용 물리적 서버를 직접 통제하거나, 기존 소프트웨어 라이센스(Window licence..)를 사용해야 할 때 사용 (BYOL_ Bring Your Own License)

 

3-4) 요금 옵션

- 인스턴스 사용요금을 절감하여 비용을 최적화할 수 있는 다양한 옵션을 제공해준다.

- 온디맨드 인스턴스 / 절감형 플랜 / 스팟 인스턴스

 

① 온디맨드 인스턴스

- 장기 약정 없이 컴퓨팅 파워에 대해 시간당 또는 초당 비용을 제공

- 사전 H/W 용량 계획이 어려워 예측할 수 없는 신규 서비스 제공에 적합한 유형이다.

- 운영 중 모든 변경이 가능하여, 애플리케이션 수요에 따라 컴퓨팅 파워를 확장 또는 축소할 수 있다.

 

② 절감형 플랜

- 1년 또는 3년 약정으로 구매하는 방식으로, 온디맨드 인스턴스 요금에 비해 상당한 할인혜택 제공

- Compute Sabings Plans : 리전, 가용영역, 인스턴스 유형 및 크기, OS 등의 변경이 가능

- EC2 Instance Saving Plans : 크기, OS 변경만 가능

- 인스턴스 사용량 수준을 알고 있다면 미리 정해진 용량을 예약하여 비용을 절감할 수 있다.

 

③ 스팟 인스턴스

- 기구축한 컴퓨팅 용량에 미사용 용량을 활용하는 방식

- 경우에 따라 온디맨드 요금으로 인스턴스를 생성하고자하는 다른 고객에게 제공하기 위해 스팟 용량을 회수할 수 있다.

- 주요 활용 사례 : 비디오 트랜스코딩, 빅데이터 처리, 대량의 병렬 계산

- 상태 비저장 서비스 혹은 실패해도 재시도하면 되는 일회성 작업에 주로 사용한다.

 

4) Computer Optimizer

- AWS 리소스의 구성 및 사용률 지표를 분석하는 서비스로, 사용자는 리소스(EC2, EBS 등)가 최적의 상태인지 여부를 검토하고, 최적화를 권장사항을 확인하여 비용 절감 및 워크로드 성능을 개선할 수 있다.