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 생성
- 인스턴스에 연결된 루트 볼륨의 스냅샷 생성 후 이를 다시 사용자 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(종료/삭제) 상태에서는 과금이 되지 않는다.
- 하지만 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 등)가 최적의 상태인지 여부를 검토하고, 최적화를 권장사항을 확인하여 비용 절감 및 워크로드 성능을 개선할 수 있다.
'클라우드 서비스' 카테고리의 다른 글
[클라우드 서비스] Database Service _ 20241204 (2) | 2024.12.06 |
---|---|
[클라우드 서비스] Storage Service _ 20241204 (4) | 2024.12.06 |
[클라우드 서비스] Networking Service _ 20241203 (0) | 2024.12.04 |
[클라우드 서비스] Access Control _ 20241202 (0) | 2024.12.04 |
[클라우드 서비스] 클라우드 컴퓨팅 개요 _ 20241202 (6) | 2024.12.04 |