EC2

yoon__0_0·2024년 5월 3일
0

이어드림 수업

목록 보기
9/103

컴퓨팅 서비스 (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)를 분리할 수 있으며 비휘발성으로 다른 인스턴스에 붙일 수 있음.

인스턴스 유형

  • 인스턴스에는 다양한 유형들이 존재함.
  • 내가 활용할 application 종류에 따라서 선택해야 함.
  • 종류 확인 : https://aws.amazon.com/ko/ec2/instance-types/
  • 범용(M7g, T4g..), 컴퓨팅 최적화(C7g, C5a..) , 메모리 최적화, 가속화된 컴퓨팅, 스토리지 최적화, HPC 최적화 존재

인스턴스 유형 명명 규칙

  • 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에 작성된 내용을 볼 수 있음.
profile
신윤재입니다

0개의 댓글