컴퓨팅 서비스 (CaaS - Compute as a Service)
컴퓨팅 서비스란?
- compute : 계산
- computer : 연산기
- 즉, cpu, memory, disk와 같은 자원(resource)를 소비하는 서비스를 묶어서 컴퓨팅 서비스라고 함.
EC2(Elastic Compute Colud)

- 가상서버 (VM)
- EC2 instance (휘발성)
- image(AMI) 활용
EC2의 특징
1) 안전하고 크기를 조절할 수 있는 컴퓨팅 용량
- AMI에 원하는 스팩을 붙여주면 언제든지 조절 가능함
2) 몇분만에 프로비저닝 및 시작
3) 사용한 만큼만 요금 지불
- 저장 용량과 사양(cpu, memroy, disk, network)
- 네트워크 트래픽
- 정량 소비 -> 정가(할인이 없음) <-- 온디맨드 방식
- 불균등한 워크로드 일 때에는 온디멘드 방식 사용
- 할인을 받고싶으면
4) image 기반 (AMI)
5) 가상 머신 (VM)
AMI (Amazon Machine Image)
- docker image와 동일한 성격(개념)을 가짐
- 영구적 환경 구성
- OS ~ 다앙햔 환경,권한, 패키지들을 넣어서 package 한 것
- AMI가 기본으로 제공되는 Image들이 있고 이에 나의 리소스를 더해서 새로운 Image로 생성하는 것도 가능
- 리눅스, ubuntu 등 많이 존재함

인스턴스

- AMI 를 가지고 인스턴스라는 가상 서버를 만들어 줌.
- 인스턴스 하나당 하나의 image를 가지게 됨.
- 인스턴스 생성시, 루트 볼륨(disk)가 생성됨
- 휘발성으로 간주하며 인스턴스 종료시 삭제됨(모든 데이터 삭제)
- EC2에 연결된 루트 볼륨은 EC2 lifecycle과 동일
- 만약, 사라지지 않는 메모리를 원한다면 생성되는 루트 볼륨(EBS)를 분리할 수 있으며 비휘발성으로 다른 인스턴스에 붙일 수 있음.
인스턴스 유형
인스턴스 유형 명명 규칙
- famliy type
- generation
- 부가 기능
- i 는 intel, g 는 Graviton 등등..
- graviton의 경우 amzon에서 만든 것으로 세대가 높아질 수록 비용도 줄어들고 성능도 좋아진다는 특성을 가짐 (완전 good)
명명 규칙 예시 (M7g 일때)
M : 범용 유형
7 : 7 버전
g : Graviton
인스턴스 수명 주기

- 종료를 하면 인스턴스 삭제!!
- 중지는 다시 시작이 가능함.
EC2 요금
1) AWS 프리티어 : 1년 사용
2) 온디맨드 인스턴스 : 정가 (제일 비쌈)
3) Saving Plans : 1년, 3년 약정 존재함.
- 워크로드 리소스가 균등할 경우 사용함
- 옵션에 따라 다르지만 72% 까지 할인됨
- 단, 선구매 (환불안됨, 양도도 안됨)
- 불균등 워크로드가 온다면 여기에 온디멘드를 잠깐 붙여서 쓸 수 있음
4)spot 인스턴스
- 90% 까지 할인 가능
- 예비용으로 활용
- 위의 불균등 워크로드가 오면 스팟으로도 대체 가능
이러한 요금에 따른 FinOps
: 온디맨드 + 스팟 + saving Plans를 적절하게 사용해야 함.

EC2 생성 실습
1) 리전 선택
2) 인스턴스 시작
3) 인스턴스 정보 지정
- 이름
- 이미지 선택
- 인스턴스 유형 선택 (성능과 비용 고려)
- 키페어 생성 (새롭게 생성)
- pem/ ppk 두가지가 있고 보통 pem을 많이 다운 받고, putty와 같이 ppk를 사용해야하는 경우 putty generater를 통해 변경해 줄 수 있음.
- 네트워크 설정
- subnet을 만들어서 사용할 수 있음.
- 편집을 통해 네트워크 이름을 변경해 줘야함.
- 웹을 이용하기 위해서는 http를 열어줘야함.
- 보안 그룹을 만들 수 있고, 기존에 있으면 선택할 수 있음.
- 스토리지 : 30gb까지 무료
- 루트볼륨 : gp2 가장 저렴
- 고급 세부정보 맨 밑에 사용자 데이터에 우리가 그전에 다뤘던 셀 스크립트 넣어보기
- amazon은 centos 기반이라 yum을 사용함
- amazon-linux-extras 패키지 설치 명령어
- httpd, db를 시작, 활성화
- 사용자 계정 정보 수정 (ec2-user 기본 계정을 apache 그룹에 넣어줌)
- 권한 변경
- 웹서버에 php파일을 띄워줌
#!/bin/bash
yum update -y
amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
yum install -y httpd mariadb-server
systemctl start httpd
systemctl enable httpd
systemctl start mariadb.service
systemctl enable mariadb.service
usermod -a -G apache ec2-user
chown -R ec2-user:apache /var/www
chmod 2775 /var/www
find /var/www -type d -exec chmod 2775 {} \;
find /var/www -type f -exec chmod 0664 {} \;
echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
- 생성된 퍼블릭 ip주소:80으로 들어가면 php에 작성된 내용을 볼 수 있음.