AWS(Amazon Web Server) 구축

JINSUNG LEE·2021년 9월 20일
0
post-thumbnail



모든 웹 사이트가 자유롭게 이용되는 이유는 네트워크라는 기술 덕분이다.

네트워크에 세부적으로 파고 들어가면 무수한 기술, 장비들이 담겨줘 있다. ex) CISCO 네트워크 장비, WIFI

소프트웨어 기술적으로 웹 사이트를 수 많은 유저들에게 제공해주는데 있어 이를 배포라고 부른다.

이번 시간에는 배포해주는 서비스 플랫폼 중 가장 이용도가 많은 AWS에 대해 알아보자!



        				렛츠~ 고!




Cloud Computing

웹 서비스를 배포 하기 위해선 서버 구축이 필요하여 큰 기업일수록 서버실 환경이 매우 넓게 확장되어 있다.

만일 개인 별도의 사이트를 운영하기 위해선 서버 구축용 컴퓨터를 직접적으로 관리해야 한다는 공간적 제한 관계로 인해 매우 불편했을 것이다.

그러나, 지금은 웹 사이트를 통해 가상화된 컴퓨터를 따로 구축하여 편하게 관리할 수 있게 되었다.

위 기술을 클라우드 컴퓨팅이라고 부른다.

직접적으로 서버를 구축하는데 있어 금전적 손실, 인력 인권비, 공간 확보를 위한 투자 등등 많은 손실이 있다.

이러한 문제점을 파악한 몇몇의 기업들은 전문적으로 서버를 대여해주는 방식으로 기발한 사업 아이디어를
실현하여 일정 금액만 지불하면 자유롭게 웹 서비스를 구축할 수 있다.

Cloud
물리적인 서버 구축이 아닌 가상 서버를 대여하며 이는 무궁무진한 가상화 기술의 발전에 한 부류

대표적 클라우드 서비스 유형에는 위 그림처럼 3 가지 형태로 구성되어 있다.

IaaS : 사용자가 관리하는 범위에서 가장 넓게 클라우드 서비스를 응용한다.

PaaS : '서비스로서의 플랫폼' 의미를 함축적으로 담고 있으며 운영체제, 런타임이 미리 구축되어진 상태이므로 상세하게 구축할 필요가 없는 편리성이 있다.

SaaS : 소개된 클라우드 서비스 형태들 사이에서 제공 범위가 완벽히 이루어진 완성형 클라우드 서비스이다.

클라우드 서비스를 대여하는 업체 중 가장 많은 공급을 제공하는 서비스 플랫폼이 AWS(Amazon Web Server)이다.

지금부터 AWS의 대표적 서비스인 EC2, RDS, S3에 대해 설명하겠다.




EC2

EC2 (Elastic Compute Cloud)
아마존 웹 서비스에서 제공하는 클라우드 컴퓨팅 서비스로서 클라우드 컴퓨팅은 인터넷을 통해 스토리지, 데이터베이스, 서버 등의 컴퓨팅 서비스를 제공해주는 웹 서비스

위에 설명한 클라우드 컴퓨팅 기술을 AWS 플랫폼에서 제공하는 명칭이다.

컴퓨터를 빌리는 형식의 클라우드 컴퓨팅을 AWS에서는 Instance라 부르는데 이는 각 국에 건설한 데이터 센터를 만들어져 있으며 여기에 사용자들의 가상화 컴퓨터가 실존하고 있다.

EC2의 기본적 역할은 웹 서버를 구축하여 사용자가 웹 브라우저를 통해 요청할때마다 서버 측에서는 서비스를
제공하는 일을 수행한다.

앞서 설명하듯 운영체제 또한 다양하게 선택할 수 있다고 언급했는데 위 기술을 AWS에선 AMI(Amazon Machine Image)라고 부른다.

AMI(Amazon Machine Image)
AWS에서 주어진 다양한 소프트웨어 플랫폼을 종합하여 제공하는 요소
컴퓨터 하드웨어 제어를 위한 운영체제 및 특정 런타임인 프로그램 제공 ex) node.js, JVM

EC2의 인스턴스 생성 순서도를 위 그림처럼 AMI 플랫폼에 있는 요소를 선택하여 가상화로 생성된 컴퓨터를 빌리는 것이다.




RDS

RDS(Relational Database Service)는 AWS에서 관계형 데이터베이스 서비스이며, 데이터베이스를 관리할때 사용했던 MySQL, MARIADB, MONGODB 처럼 데이터베이스 엔진을 제공해준다.

가상화로 접속하여 사용 중인 EC2는 사실상 아무것도 안깔려진 컴퓨터(바탕화면이 허전한 모습)와 똑같다.

그렇다면 여기에 설치해야하는 개발에 필요한 Tool들이 엄청 많을 것이며, 데이터베이스까지 다룬다면 MySQL, MARIADB를 굳이 귀찮게 설치를 해야하는 것일까?

RDS가 있다면 데이터베이스 설치할 필요가 없다.

  • EC2 인스턴스에 데이터 베이스 설치할 경우

직접 관리: 데이터 베이스 규모 확장, 가용성 / 내구성 확보, 데이터 백업, 데이터베이스 관리
AWS 관리: 운영체제 설치/관리, 기반 시설 구축

  • RDS 사용

직접 관리: None
AWS 관리: 데이터 베이스 규모 확장, 가용성 / 내구성 확보, 데이터 백업, 데이터베이스 관리, 운영체제 설치/관리, 기반 시설 구축

이처럼 편의성에 매우 효율이 좋다.

단, 회사마다 추구하는 개발 방법론에 따르듯 위 RDS 방식에 너무 의존하면 프로젝트에 쓰이는 프로그램 관리를 소홀히 여긴다는 점에 선호하지 않는 회사도 있다.




S3

AWS에서 제공하는 S3(Simple Storage Service) Cloud Storage 서비스이다.

Cloud Storage
인터넷 세계관에 존재하는 데이터들을 저장하는 가상화된 저장소
일종의 USB, CD같은 저장 소켓과 똑같은 역할을 수행

S3 서비스를 사용하는 이유는

  1. 데이터를 무제한 보관하는 확장성
  2. 파일을 유실할수 있는 경우를 무마해줄 내구성
  3. 정적 웹 사이트 호스팅

이루어지며 일정 지불 금액만 채불하면 위 3가지 혜택을 무한히 누릴수 있다.

정적 웹 사이트란?
서버의 역할 필요없이 생성된 파일을 클라이언트에 제공

S3 데이터를 저장하기 위해 알아야 하는 기본적 두가지 용어

  1. 객체(Object): S3에 데이터가 저장되는 기본 단위로써 파일과 메타데이터로 이루어져있다. 객체 하나의 크기는 1Byte부터 5TB 까지 허용되며 메타데이터는 MIME 형식으로 파일 확장자를 통해 자동으로 설정되며 사용자 임의로도 지정 가능하다.

  2. 버킷(Bucket) : S3에서 생성할 수 있는 최상위 디렉토리의 개념으로 이름은 S3 리전 중에서 유일해야 하며 계정별로 100개까지 생성 가능하며 버킷에 저장할 수 있는 객체수와 용량은 무제한이다.

S3의 버킷은 무한대의 객체를 저장할 수 있으므로 스토리지의 요구를 미리 추정하여 관리할 필요가 없어 확장/축소에 신경쓰지 않아도 된다.




결론

각각 종합하여 설명한 EC2, RDS, S3를 통해 웹 서버를 배포할 수 있게 되며 이를 정리해보았다.

  • 웹 서버 배포를 위한 구축 종합 (3 tier architecture)

profile
https://californialuv.github.io/Tech_Blog 이사 갔어용 🌎 🚀

0개의 댓글