AWS - EC2

흑이·2022년 3월 30일
0

EC2, RDB, S3, lambda 설명하기 앞서 Serverless가 무엇인지 설명 하겠다.



Serverless

  • Serverless는 서버가 없다는 뜻이 아니라 인프라 엔지니어나 개발자가 관리해야 할 서버가 없다 라는 뜻


Serverless 탄생 배경

On-premise 방식

  • 어떤 서비스를 런칭한다고 하면, 서비스를 배포할 서버가 필요할 것이다.
  • 보통 어플리케이션 서버를 구축하려면 서버용 컴퓨터 구매, 인프라 환경 구축, 개발 환경에 맞는 OS 설치, 런타임 환경 구성, 백엔드 서비스 설치 등 많은 작업들을 하게 된다.
  • 또한 하나의 서버뿐만 아니라 DB서버, 파일서버, 이미지서버 등 다양한 서버가 필요하며 모두 다 구축해야한다.
  • 서버는 온도, 충격, 보안등에 민감하기 때문에 따로 비용을 들여서 서버룸을 구축하거나, 데이터센터에 일정 공간을 빌려서 그 안에서 안전하게 관리해야 함
  • 이러한 방식을 On-premise 방식 이라고 한다.

단점

  • 구축하는데 오래 걸림
  • 비용이 많이 듬
  • 트래픽이 증가하면 서버를 확장해야하는데 확장의 어려움

On-premise 단점을 극복할 수 있는

Cloud Computing

  • 언제 어디서든지 인터넷을 통해 다른 컴퓨터의 자원을 빌려서 사용하는 기술을 말한다.
  • On-premise 환경에서는 서버 구축 시 정말 많은 비용과 시간이 들었지만
  • Cloud에서는 그러한 작업들이 필요 없고, 가상컴퓨터를 할당 받아서 바로 OS와 런타임 환경을 구성하고 백엔드 어플리케이션을 설치하여 운영할 수 있다.
  • 클라우드 서비스를 제공하는 회사는 Amazon-AWS, Google-GCP, Microsoft-Azure, 등이 있다.

운영 방식

  • 이러한 회사는 온프레미스 방식처럼 자사가 운영하는 큰 데이터 센터가 있으며, 그 센터에 여러대의 서버를 두고 관리한다.

  • 고객이 서버라는 자원을 요청했을때 빌려주는 형식, 서버 한대를 통째로 빌려주는게 아니라 사용자가 요청한 만큼만 할당해서 빌려주는 것

  • 이러한 기술을 가상 컴퓨팅이라고 하며, 물리적 서버 한대에 여러 가상컴퓨터 환경을 만들 수 있다.


장점

  • 낮은 비용
  • 서버 자원 유연하게 관리(서버 트래픽에 따른 서버 자원 할당,반납)

그러나 서버를 관리해야 한다..

  • 업데이트, 보안, 데이터 백업 등... 관리하는 인력도 필요

Serverless 탄생

  • 백엔드를 작은 함수로 쪼개서 서버에 올림(ex. AWS lambda)
  • 서버리스가 아닌 경우, 서버는 24시간 돌아가고 있고 언제나 요청에 응답할 준비를 하고 있다.
  • 서버리스는 요청이 들어오는 순간만 함수가 작업을 수행하고 종료, 즉 24시간 동안 서버가 대기를 안해도 된다.
  • 함수가 수행한 만큼만 비용을 지불하면 된다.
  • 결론적으로 서버리스는 코드만 배포하면 나머지는 클라우드 제공사에서 알아서 관리해준다.


EC2

  • Amazon Elastic Compute Cloud(Amazon EC2)
  • AWS의 가장 기본적인 자원 - 리눅스 서버, 윈도우 서버
  • 가상 머신 상에 OS 설치 되어 있는 형태

EC2 instance-types

  • CPU, Memory, Storage, Network 성능에 따라 다양한 인스턴스 타입이 존재(https://aws.amazon.com/ko/ec2/instance-types)
  • 범용 인스턴스
  • 컴퓨팅 최적화 인스턴스
  • 메모리 최적화 인스턴스
  • GPU 가속 인스턴스
  • 스토리지 최적화 인스턴스

저렴한 비용

  • 규모에 따른 비용 측면적 절감 효과를 제공(https://aws.amazon.com/ko/ec2/pricing/)
  • 온디맨드
  • 스팟 인스턴스(경매)
  • 예약 인스턴스(약정)
  • 고객 전용 물리적 서버에 EC2 인스턴스 용량을 제공하는 전용 호스팅

대표적인 기능

  • 탄력성 있는 웹 스케일 컴퓨팅

    • AWS Auto Scaling은 애플리케이션을 모니터링하고 용량을 자동으로 조정하여, 최대한 저렴한 비용으로 안정적이고 예측 가능한 성능을 유지
  • 완전 제어

    • 웹 서비스 API를 사용하여 인스턴스를 원격으로 재부팅할 수 있으며, 콘솔 출력에도 액세스할 수 있습니다.
  • 유연한 클라우드 호스팅 서비스

    • 웹 서비스 API를 사용하여 인스턴스를 원격으로 재부팅할 수 있으며, 콘솔 출력에도 액세스할 수 있습니다.
  • 통합성

    • EC2는 Amazon S3, Amazon RDS 및 Amazon VPC 등의 대부분의 AWS 서비스와 통합되어 있어, 컴퓨팅, 쿼리 처리 및 광범위한 애플리케이션 간 클라우드 스토리지에 대해 완전하고 안전한 솔루션을 제공
  • 보안

    • Amazon VPC와 함께 작동하여 사용자 컴퓨팅 리소스에 보안성 및 강력한 네트워킹 기능을 제공합니다.

VPC란? 클라우드에서 논리적으로 격리된 공간을 프로비저닝하여 고객이 정의하는 가상 네트워크에서 AWS 리소스를 시작할 수 있습니다.

프로비저닝(provisioning)은 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것을 말한다.



AMI

  • Amazon Machine Image
  • 가상머신은 Image를 활용하여 생성
  • 이미지 - OS, 설치된 프로그램, 설정 등이 포함된 파일
  • 이미지를 가상 서버에 적용하여 동일한 환경을 구성 가능
  • Pre-Configured OS라고 이해할 수 있다.



https://www.youtube.com/watch?v=ufLmReluPww
https://www.youtube.com/watch?v=XB_UZYOPhWE&list=PLlaP-jSd-nK9-CUYNWmIOTPiLxcMTsefp
https://www.youtube.com/watch?v=NuwKpR9dNsI
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/concepts.html
https://buw.medium.com/aws-ec2%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B4%EB%A9%B0-%EC%99%9C-%EA%B8%B0%EC%97%85%EB%93%A4%EC%9D%B4-ec2%EB%A5%BC-%EC%84%A0%ED%83%9D%ED%95%A0%EA%B9%8C%EC%9A%94-e4c4d6b419b4
https://dev.classmethod.jp/articles/for-beginner-rds-explanation/
https://www.bespinglobal.com/bespins-pick-vol-11-aws-rds-vs-ec2/

0개의 댓글