EC2란?

2022. 3. 18. 21:02

1. EC2란 무엇일까?

Amazon Elastic Compute Cloud(Amazon EC2)는 안전하고 크기 조정이 가능한 컴퓨팅 용량을 클라우드에서 제공하는 웹 서비스입니다. 개발자가 더 쉽게 웹 규모의 클라우드 컴퓨팅 작업을 할 수 있도록 설계되었습니다. Amazon EC2의 간단한 웹 서비스 인터페이스를 통해 간편하게 필요한 용량을 얻고 구성할 수 있습니다. 컴퓨팅 리소스에 대한 포괄적인 제어권을 제공하며, Amazon의 검증된 컴퓨팅 인프라에서 실행할 수 있습니다.

https://aws.amazon.com/ko/ec2/?ec2-whats-new.sort-by=item.additionalFields.postDateTime&ec2-whats-new.sort-order=desc

아마존 클라우드 서버 호스팅 | Amazon Web Services

다양한 구매 모델 온디맨드, 스팟 인스턴스, Savings Plan과 같은 여러 가지 구매 모델을 제공합니다. 스팟 인스턴스를 사용하면 내결함성을 갖춘 워크로드 요금을 90%까지 절감할 수 있습니다. Saving

aws.amazon.com

EC2란 AWS에서 제공하는 클라우드 컴퓨팅 서비스이다.

여기서 클라우드 컴퓨팅이란 무엇일까?

1.1 클라우드 컴퓨팅이란?

클라우드 컴퓨팅은 IT 리소스를 인터넷을 통해 온디맨드로 제공하고 사용한 만큼만 비용을 지불하는 것을 말합니다. 물리적 데이터 센터와 서버를 구입, 소유 및 유지 관리하는 대신, Amazon Web Services(AWS)와 같은 클라우드 공급자로부터 필요에 따라 컴퓨팅 파워, 스토리지, 데이터베이스와 같은 기술 서비스에 액세스할 수 있습니다.

https://aws.amazon.com/ko/what-is-cloud-computing/

클라우드 컴퓨팅이란 | 클라우드 컴퓨팅 소개 | Amazon Web Services

제조 AWS를 활용한 Siemens의 에너지, 의료 서비스, 제조 분야 혁신 Siemens가 AWS를 사용하여 어떻게 문화를 바꾸고 혁신을 장려하며 비즈니스 성과를 창출했는지 알아보세요. 자세히 알아보기  업종

aws.amazon.com

즉, 클라우드 컴퓨팅이란 구름(cloud)과 같이 무형의 형태로 존재하는 하드웨어·소프트웨어 등의 컴퓨팅 자원을 자신이 필요한 만큼 빌려 쓰고 이에 대한 사용요금을 지급하는 방식의 컴퓨팅 서비스로, 서로 다른 물리적인 위치에 존재하는 컴퓨팅 자원을 가상화 기술로 통합해 제공하는 기술을 말한다.

즉, EC2란 AWS에서 컴퓨터를 하나 빌린 후 그곳에 내가 원하는 운영체제를 설치하고, 웹서비스를 위한 프로그램들(웹서버, 데이터베이스 등)을 설치해서 사용하게 해주는 서비스

1.2 EC2 장점

  • 간단하고 신속한 시작이 가능
  • 용량을 늘리거나 줄일 수 있다. (탄력성)
  • 사용한만큼 지불하므로 저렴하다.
  • 사용자가 인스턴스를 완전히 제어할 수 있다.
  • 보안 및 네트워크 구성, 스토리지 관리 효과적이다.

1.3 EC2 기능

  • 인스턴스: 가상 컴퓨팅 환경
  • ELB : Elastic Load Blancer의 약자로 둘 이상의 가용 영역에서 EC2 인스턴스, 컨테이너, IP 주소 등 여러 대상에 걸쳐 수신되는 트래픽을 자동으로 분산합니다. 등록된 대상의 상태를 모니터링하면서 상태가 양호한 대상으로만 트래픽을 라우팅합니다.
  • Amazon 머신 이미지(AMI): 소프트웨어 구성이 기재된 템플릿입니다(예: 운영 체제, 애플리케이션 서버, 애플리케이션). AMI에서 인스턴스를 바로 시작하실 수 있는데, 이 인스턴스는 AMI의 사본으로, 클라우드에서 실행되는 가상 서버입니다.
  • Auto Scaling : Auto 정책에 따라서 시스템을 자동으로 늘리고 줄여주는 서비스다. 예를 들어 갑자기 트래픽이 폭주하면 서비스에 참여하고 있던 서버들의 CPU 사용률이 점점 높아진다. 그러다 CPU 점유율이 80%를 넘게되면 미리 준비된 이미지(AMIs)를 이용해서 인스턴스를 생성하고, ELB에 연결해서 트래픽을 새로 생성한 EC2 인스턴스에 분산한다. 트래픽이 줄어들면서 CPU 사용률이 20% 아래로 떨어지면 EC2 인스턴스가 순차적으로 제거된다. 비용을 절감할 수 있다.
  • 인스턴스 유형: 인스턴스를 위한 CPU, 메모리, 스토리지, 네트워킹 용량의 여러 가지 구성 제공
  • 키 페어를 사용하여 인스턴스 로그인 정보 보호(AWS는 퍼블릭 키를 저장하고 사용자는 개인 키를 안전한 장소에 보관하는 방식)
  • 인스턴스 스토어: 임시 데이터를 저장하는 스토리지로 인스턴스 중단, 최대 절전 모드로 전환 또는 종료 시 삭제됨 (버퍼, 캐시, 스크래치 데이터 및 기타 임시 콘텐츠와 같이 자주 변경되는 정보의 임시 스토리지나 로드가 분산된 웹 서버 풀과 같은 여러 인스턴스상에서 복제되는 데이터에 가장 적합)
  • Amazon Elastic Block Store(Amazon EBS), 즉 Amazon EBS 볼륨을 사용해 영구 스토리지 볼륨에 데이터 저장
  • EBS : Elastic Block Store의 약자로 일종의 하드디스크라고 생각하면 된다. EBS의 특징은 아래와 같다.
    • 필요한 용량에 맞게 구입 할 수 있다. 이를테면 EC2 인스턴스를 웹서버의 용도로만 쓰고 파일 저장은 S3를 사용한다면 넉넉 잡고 1기가바이트만 구입하면 된다.
    • 필요에 따라서 즉시 생성하고, 제거 할 수 있다.
    • 사용한 만큼 과금 되는 종량제다.
    • 내부적으로 데이터를 실시간 복제하고 있기 때문에 하드디스크에 비해서 데이터를 잃어버릴 확률이 현저히 낮다.
    • 스냅샷 기능을 제공해서 EBS의 현재 상태 그대로 보존 할 수 있다.
    • CloudWatch를 통해서 EBS의 통계를 열람 할 수 있다.
    • EC2 인스턴스를 제거해도 EBS는 독립적이기 때문에 데이터가 유지 된다.
    • volume : EBS로 생성한 (말하자면) 디스크 하나 하나를 볼륨이라고 부른다.
  • 인스턴스와 Amazon EBS 볼륨 등의 리소스를 다른 물리적 장소에서 액세스할 수 있는 리전 및 가용 영역
  • 보안 그룹을 사용해 인스턴스에 연결할 수 있는 프로토콜, 포트, 소스 IP 범위를 지정하는 방화벽 기능
  • 탄력적 IP 주소(EIP): 동적 클라우드 컴퓨팅을 위한 고정 IPv4 주소
  • 태그: 사용자가 생성하여 Amazon EC2 리소스에 할당할 수 있는 메타데이터
  • AWS 클라우드에서는 논리적으로 격리되어 있지만 원할 때마다 고객의 네트워크와 간편히 연결할 수 있는 가상 네트워크인 Virtual Private Clouds(VPC)

참고문서 : https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/InstanceStorage.html

Amazon EC2 인스턴스 스토어 - Amazon Elastic Compute Cloud

Amazon EC2 인스턴스 스토어 인스턴스 스토어는 인스턴스에 블록 수준의 임시 스토리지를 제공합니다. 스토리지는 호스트 컴퓨터에 물리적으로 연결된 디스크에 위치합니다. 인스턴스 스토어는

docs.aws.amazon.com

https://opentutorials.org/course/608/3004

Elastic Compute Cloud(EC2) - 생활코딩

EC2란 쉽게 생각해서 한대의 컴퓨터를 임대해주는 것이라고 생각하자. 이 컴퓨터는 특별한 컴퓨터가 아니다. 여러분의 데스크탑이나 노트북과 정확하게 똑같은 컴퓨터다. 여기에 자신이 선호하

opentutorials.org


EC2 vs Lambda vs Elastic Beanstalk

Amazon EC2는 다양한 인스턴스 유형과 운영 체제, 네트워크 및 보안 설정, 전체 소프트웨어 스택을 사용자 지정할 수 있는 옵션을 통해 유연성을 제공하므로 기존 애플리케이션을 손쉽게 클라우드로 이전할 수 있습니다. Amazon EC2를 사용하면 용량 프로비저닝, 서버 상태 및 성능 모니터링, 내결함성 및 확장성 설계를 직접 수행해야 합니다. AWS Elastic Beanstalk는 웹 애플리케이션 배포와 조정이 간편한 서비스를 제공하며 기본 EC2 인스턴스에 대한 소유권과 제어권은 모두 고객이 보유합니다. Amazon EC2 Container Service는 Docker 컨테이너를 지원하는 확장 가능한 관리 서비스로, 이 서비스를 사용하여 Amazon EC2 인스턴스의 관리형 클러스터에서 분산 애플리케이션을 손쉽게 실행할 수 있습니다.
AWS Lambda를 사용하면 Amazon S3 버킷 변경, Amazon DynamoDB 테이블 업데이트 또는 애플리케이션이나 디바이스에서 생성한 사용자 지정 이벤트에 대한 응답으로 손쉽게 코드를 실행할 수 있습니다. Lambda를 사용하면 자체 인스턴스를 프로비저닝할 필요가 없습니다. Lambda에서 용량 프로비저닝, 서버 상태 모니터링, 기본 컴퓨팅 리소스에 보안 패치 적용, 코드 배포, 웹 서비스 프런트 엔드 실행 및 코드 모니터링과 로깅 등 모든 운영 및 관리 활동을 수행합니다. AWS Lambda는 코드 확장이 용이하고 고가용성이 뛰어나며 사용자가 별도 작업을 할 필요가 없습니다.

https://aws.amazon.com/ko/lambda/faqs/

AWS Lambda – FAQ

aws.amazon.com

Elastic Beanstalk

  • IaasS인 EC2와 다르게 PaaS로서 서버구성, Auto Scaling, 배포 자동화, 모니터링 등 서버 운영에 필요한 대부분의 작업을 최대한 자동화 해서 제공하는 서비스
  • 실제 서버에 올리기 위해 서버 구성에 시간을 쏟을 필요 없이 현재 애플리케이션의 언어에 맞는 환경만 선택하고 작성한 애플리케이션 소스코드를 압축해서 업로드 하면 Elastic Beanstalk가 웹서버, 언어 등 환경 구성이 완료된 서버를 생성하고 해당 서버에 애플리케이션 배포까지 자동으로 진행
  • CPU등 정해둔 지표에 따라 Auto Scaling도 자동으로 진행
  • PHP, 자바, 파이썬, 루비, Node.js, .NET, GO언어와 그 환경을 지원하고 Docker로 만든 임의의 환경도 지원한다.
  • 하나의 애플리케이션 내 여러 가지의 환경을 생성할 수 있게 한다.(하나의 애플리케이션이라도 보통 테스트, 운영환경과 같이 최소 두 가지 환경을 갖고 있음)
  • 사용한 구성을 저장해둘 수 있고 그 환경의 설정값을 그대로 복제해서 다른 환경도 쉽게 생성할 수 있다.
  • 장점
    • 빠른 서버환경 구축
    • 서버운영 지식이 없더라도 다중서버, 보안그룹이 구성돼있는 서버 환경을 구축할 수 있다.
    • 개발자는 개발에 더욱 집중할 수 있다.
    • Elastic Beanstalk를 사용하더라도 추가 요금을 내지 않는다. EC2, ELB등 기본 AWS 자원에 대한 비용만 지급하면 된다.
    • Docker, 사용자 지정 플랫폼, 사용자 지정 이미지 등의 기능을 활용해 나만의 환경을 구축하는 것도 가능하다.
  • 단점
    • 자동화가 많이 돼 있다는 것은 신경쓸 것이 적다는 뜻일 수 있지만, 버그가 발생하는 경우 그 문제를 찾기가 더 어렵다.
    • Elastic Beanstalk에서 제공하는 틀이 있기 때문에 이 틀을 벗어난 세부 설정에 대한 유연성이 떨어진다. 
    • 일반적인 웹 애플리케이션 서버 구성이 아니라 조금씩 특이한 부분이 생기면 원하는 것들을 구현하기 어려워진다.

Lambda

  • EC2와 다르게 별도의 서버 세팅 없이 곧바로 코드를 함수로 실행하게 해주는 서비스
  • 사용하는 시간에 비례해서 비용이 책정되는 구조(물론 함수를 돌리지 않는다면 전혀 과금이 되지 않는 구조)
  • EC2와 명확한 차이는 서버 세팅이 필요없기에 작성하고 있는 코드만 복붙해서 빠르게 제품을 개발하는데 유리하다는 점입니다.
  • 그러나 만약 서버도 수정을 해야하고 컴퓨터 사양을 조정하는 일이 추가로 들어가야 하는 매우 유연한 제품을 개발하는 경우에는 람다 서비스보다는 EC2가 더 좋은 선택이 될 수 있습니다.
반응형

'AWS' 카테고리의 다른 글

Flask에서 Cors Error 해결방법  (0) 2021.10.07

BELATED ARTICLES

more