Home AWS EC2 이해하기
Post
Cancel

AWS EC2 이해하기

2023년 09월. Django로 머신러닝 결과물을 서비스 하고 그래프 그리는 프로젝트를 하고 있다.

그러던 중 배포를 위한 AWS의 EC2 서비스 키를 제공받았다.

AWS는 무엇이고, 그 중 EC2는 무엇이길래 서비스를 웹으로 배포할 수 있을까?

.230927 초안작성
~


전체 개요

  1. AWS란?
  2. AWS vs Google Cloud vs Microsofr Azure
  3. AWS의 서비스 종류
  4. EC2 서비스

AWS 란?

image.png

AWS(Amazon Web Service)는 클라우드 기반의 컴퓨터 리소스를 할당받을 수 있는 서비스이다.(부분무료)

클라우드 컴퓨팅이란

모기업은 그 유명한 Amazon으로 [인터넷으로 모든걸 팔아보자!] 에서 시작해 책부터 정말 별걸 다 파는 곳이다.

생각해보자.

만약 우리가 서비스 배포를 위해 리소스(컴퓨팅, 스토리지, 네트워크 등)를 구축하려면 얼마나 많은 돈이 들어갈까?

개인을 위한, 작은 서비스면 몰라도 그 규모가 점점 커진다면? 커질 때 마다 새로 자원을 구매하고, 설치하고, 적용하는데에 적잖은 시간을 뺏길 것이다. 그리고 슬프게도 해당 서비스를 종료하게 되면 구매했던 자원들은 모두 처치곤란 쓰레기가 되는 것이다.

그래서 해당 리소스를 클라우드에서 대여 하는 서비스가 생겨났고 그 중 하나가 AWS 이다. 익숙한 Google Cloud, Microsofr Azure 들도 비슷한 서비스를 제공한다.

증설이 필요하다면 리소스를 더 대여하고, 원격으로 어플리케이션을 실행할 수 있다.

AWS vs Google_Cloud vs Microsoft_Azure

세 가지 서비스 모두 클라우드 기반의 컴퓨터 리소스 대여 서비스이다.

어떤 차이가 있을까?

Amazon Web Service

image.png

어디서 많이 본 저 미소

AWS는 가상서버(EC2), 스토리지(Amazon S3, Amazon EBS 등), 데이터 베이스(Amazon RDS, Amazon DynamicDB), 컨테이너 관리(Amazon ECS, Amazon EKS) 등 거의 모든 IT요구 사항을 충족시키는 컴퓨팅 리소스를 제공한다.

부분 무료이며 요금체계가 다양하다.

또한 전 세계 대부분에 데이터 센터를 배치해 어디서 접속하던 빠른 속도로 서비스를 이용할 수 있다.

Google Cloud

image.png

안드로이드 사용자는 익숙한 그 회사

Google Cloud는 머신러닝 및 인공지능 분야의 서비스에 강점을 보이며 전 세계적으로 많이 사용하는 머신러닝 프레임 워크 TnesorFlow를 개발하기도 했다.

서비스 중 Google Colab은 Google Cloud를 기반으로 Jupyter NB 을 사용할 수 있는 환경을 제공한다. 기본 무료이며 추가 GPU, TPU 같은 하드웨어 가속기 리소스는 부분 무료로 이용이 가능하다.

AWS와 비슷하게 데이터 분석, 스토리지, 컨테이너 관리, IoT등 다양한 서비스를 제공하고 있다.

부분 유료이며 상대적으로 저렴하고 할인 행사를 자주한다.

AWS나 Microsoft Azure에 비해 데이터 센터가 적다.

Microsoft Azure

image.png

이름처럼 애지는 애져

Azure는 가상머신(Virtual Machines), 스토리지(Azure Blob Storage, Azure SQL Database), 데이터베이스(Azure SQL Database, Azure Cosmos DB), 인공지능과 머신러닝(Azure Machine Learning) 등 서비스를 제공한다.

Microsoft에서 제공한 만큼 Windows환경에 가장 적합하며 그 외 환경도 지원한다.

부분 무료이며 셋 중 가장 저렴하다.

AWS와 유사한 규모의 데이터 센터를 보유해 가용성이 좋다.


가장 유명하고 많이 사용하는 클라우드 기반의 리소스 제공 서비스 세 가지를 훓어보았다.

각각의 장단점이 있어 [어떤 서비스가 제일이다] 를 말하긴 조심스럽다. 이외에도 다양한 서비스가 만들어지니 한번씩 체험해 보고 본인에게 제일 맞는 서비스를 이용하는게 좋겠다.

일단 지금은 AWS 서비스를 제공받았기 때문에 AWS에 대해 포스팅을 올리겠지만 추후 타 서비스도 이용해 볼 생각이다.

AWS의 서비스 종류

AWS의 서비스는 진짜 어엄청 많다. 그리고 그 서비스를 조합해 정말 다양한 클라우드 기반의 애플리케이션과 솔류션을 개발, 운영할 수 있다.

아래 소개할 서비스는 AWS의 주요 서비스 카테고리와 간단한 소개에 불과하다.

관심있다면 직접 찾아보자.

AWS-모든 서비스


컴퓨팅, 스토리지

  • Amazon EC2(Elastic Compute Cloud): 가상 서버를 호스팅, 실행하는 서비스로 다양한 운영체제에서 어플리케이션 실행이 가능하다.

  • AWS Lambda: 서버리스 컴퓨팅 서비스. 코드를 실행하고 스케일링을 자동으로 관리한다. 주로 이벤트 기반 어플리케이션의 일부로 사용되며 다양한 언어를 사용할 수 있다.

  • Amazon S3(Simple Storage Service): 스토리지 및 데이터 호스팅 서비스. 파일과 객체, 데이터를 저장하고 관리함.

  • Amazon EBS(Elastic Block Store): 영구 블록 스토리지를 제공하는 서비스. 위의 EC2 인스턴스에 연결해 사용한다.

데이터베이스

네트워킹

분석과 머신러닝 및 인공지능

  • Amazon Redshift: 데이터 웨어하우스 서비스. 대규모 데이터를 분석하고 비즈니스 인텔리전스를 수행함.

  • Amazon EMR(Elastic MapReduce): 빅데이터 처리용 관리형 클러스터 서비스. Apache Hadoop 및 Spark 프레임 워크를 지원함.

  • Amazon SageMaker: 머신러닝 모델 개발 및 훈련용 관리형 플랫폼. 자동 모델 조정 및 배포를 지원함.

  • AWS Rekognition: 비전 서비스. 이미지 및 비디오에서 객체 및 얼굴 감지, 분석.

보안 및 관리, 개발


어디서 들어본 서비스나, 쓸 것 같은 서비스만 몇개 추려봤는데도 많다…

찾아보면 재미난게 참 많으니 들어가서 확인하는걸 추천.

이 중 AWS EC2에 대해 더 알아보고자 한다.

EC2 서비스

Amazon EC2(Elastic Compute Cloud)

EC2 유저가이드

image.png

EC2는 AWS에서 가장 오래되고, 가장 유명하고, 가장 많이 사용하는 서비스이다. 뭐길래?

Elastic Compute Cloud 해석하면 탄력적인 무선 컴퓨터, 즉 클라우드에서 즉각적인 수정이 가능한 컴퓨터로 하드웨어 구매를 하지 않아도 컴퓨터를 사용할 수 있으며, 성능은 원하는 만큼 조정할 수 있다.

주로 24시간 켜지는 컴퓨터인 서버용으로 많이 구매, 가상서버로 사용한다. 서버 구축시 신경 쓸 부분인 트래픽 급증이나 용량문제에서 자유롭다. 필요하면 그 때 바로 증설하면 되니까!

EC2 구조

image.png

이 그림은 AWS의 EC2 기본 인스턴스의 구조도이다.(리눅스 기준)

  • Region(Availability Zone): 데이터 센터가 위치한 곳. 예를 들어 리전을 ‘서울’로 등록했다면 서울의 데이터 센터를 의미한다.

  • Availability Zone: 가용영역. 물리적으론 Region내에 위치하나 전력 및 네트워크는 분리되어 천재지변 등 장애가 발생해도 안정성을 보장한다.

  • Virtual Private Cloud(VPC): 격리된 가상 네트워크. 보안 및 격리를 유지시켜 리소스를 관리할 수 있다. 예를 들어 내 친구가 동일 Region, 동일 Availability Zone 에 서버를 생성해도 나와 내 친구의 서버는 서로 영향을 미치지 않는다.

  • Internet gateway: VPC내의 공개서브넷(Public Subnet)을 외부 네트워크(인터넷)과 연결해 통신할 수 있다.

  • Public Subnet: 외부 네트워크와 연결되는 공간. 일반적으로 외부에서 접근하는 리소스(어플리케이션 등) 가 위치한다.

  • Amazon EBS: 영구적인 블록 스토리지. EC2 인스턴스와 연결해 데이터를 저장하고 관리한다.


기능

EC2의 기능은 아래와 같다.

  • 인스턴스: 가상환경에서 실행되는 하나의 컴퓨팅 단위. 유형, OS, 스케일 등은 설정에 따라 다르다.

  • Amazon 머신 이미지(AMI): 서버에 필요한 구성 요소(os, 추가 소프트웨어 등)를 패키징하는 인스턴스용 사전 구성 템플릿.

  • Amazon EBS: 영구적인 블록 스토리지. EC2 인스턴스와 연결해 데이터를 저장하고 관리한다.

  • 인스턴스 유형참고: 호스트 컴퓨터의 하드웨어 성능. CPU, RAM, Storage 등 컴퓨터 리소스를 설정한다. 유형에 따라 가격이 다르다.

  • 태그: 인스턴스를 생성하면 어딘가에 인스턴스의 목적과 사용자 등 많은걸 메모해야한다. 그 기능. Key-Value로 구성됨.

  • 보안: 인스턴스에 접근할 수 있는 권한을 정의. 보안 종류와 프로토콜, 포트, 소스 등을 설정한다.

이 외에도 기능이 다양하다.


사용법

AWS EC2를 이용하기 위해선 우선 (이후작성)

마무리

참고

(서적)그림으로 배우는 AWS구조

생활코딩-AWS

AWS-Solutions

그리고 많은 구글링

This post is licensed under CC BY 4.0 by the author.