[AWS] EC2, Lambda

스머리·2023년 7월 14일
0

AWS

목록 보기
2/2

알아둬야 할 서버 기초 지식

서버

네트워크에서 데이터나 서비스를 제공하는 컴퓨터를 서버, 그 서비스를 이용하는 프로그램을 클라이언트라고 한다. 웹 사이트와 웹 브라우저가 대표적인 예다. 웹 사이트 서비스를 제공하는 컴퓨터가 서버고 웹 브라우저가 클라이언트다.

대표적인 서버 유형

웹 서버

서버의 대표적인 예로 웹 서버가 있다. 웹 서버에는 웹 페이지 자체의 구조를 만드는 HTML 파일과 디자인을 정의하는 CSS 파일, 사이트에 표시되는 이미지 파일 등 서비스 제공에 필요한 데이터가 저장된다.

데이터베이스 서버

시스템이 취급하는 데이터를 통합 관리하는 데이터베이스 관리 시스템이 설치된 서버를 데이터베이스(DB, DataBase) 서버라고 한다. 데이터 보존, 갱신, 백업 등의 관리 기능, 데이터 검색 등을 실시한다.
데이터베이스 서버는 클라이언트에서 특정 데이터를 참조하거나 수정, 삭제 등의 데이터 처리 요구를 요청으로 받아들이고 실행 결과를 응답으로 반환한다.

메일 서버

SMTP 프로토콜, POP3 프로토콜을 이용해 메일 송신, 전달, 수신하는 서버를 메일 서버라고 한다. 일반적으로 메일 서버는 그 역할에 따라 SMTP 서버와 POP3 서버로 나뉜다.
AWS에서는 EC2에 사용자가 메일 서버를 구축할 수 있으며 AWS 관리형 메일 전송 서비스인 Amazon SES를 이용할 수 있다.

웹 서버 작동 방식

웹 서버는 사용자 측의 웹 브라우저를 클라이언트로, 웹 서버를 서버로 지정해 클라이언트-서버 통신을 한다. 이때 브라우저와 웹 서버는 HTTP 또는 HTTPS라는 프로토콜로 데이터를 주고받는다. 클라이언트가 웹 사이트에 필요한 데이터를 요청하고 그 요청에 따라 서버가 데이터를 반환한다.

서버 OS란

일반적인 PC뿐 아니라 서버에도 운영체제(OS)는 반드시 탑재된다. 일반적인 가정용 PC에는 주로 윈도우나 맥OS가 사용되고 스마트폰은 안드로이드나 iOS가 이용되지만, 서버로 이용되는 기기는 주로 리눅스나 윈도우 서버가 이용된다.

리눅스

리눅스는 윈도우나 맥OS와 달리 무료이며 오픈 소스 소프트웨어이므로 누구나 자유롭게 개발, 배포할 수 있다.

윈도우 서버

윈도우 서버는 마이크로소프트에서 출시한 서버용 OS다. 윈도우 서버의 가장 큰 특징 중 하나는 GUI(Graphical User Interface)로 조작하며 일반적으로 사용되는 데스크톱 윈도우와 사용법이 비슷하다는 점이다. 기본적으로 CUI(Character User Interface)로 조작하는 리눅스 배포판에 비해 사용이 편하다.

서버 가상화

일반적으로 1대의 기기는 1개의 OS만 설치된다. 하지만 가상화 소프트웨어를 이용하면 하나의 하드웨어에서 여러 OS를 동작시킬 수 있다. 이를 서버의 가상화라고 한다.

AWS에서의 가상화

AWS에서 사용되는 대표적인 가상화 기술 서비스로는 Amazon Elastic Compute Cloud(Amazon EC2)다. 사용자는 사용 용도에 따라 OS의 종류나 CPU, 메모리 크기를 자유롭게 선택해 인스턴스(가상 서버)를 생성할 수 있다.


EC2로 가상 서버를 손쉽게 생성

Amazon EC2는 가상 서버 서비스

EC2는 몇 분 만에 가상 서버를 생성할 수 있는 서비스다. CPU나 메모리와 같은 서버의 사양도 사용자가 자유롭게 선택할 수 있고 머신을 생성한 후에도 변경(확장)할 수 있다. 데이터를 저장하는 스토리지의 용량도 사용자가 쉽게 변경할 수 있다. 자원의 변경이나 삭제를 쉽게 할 수 있으므로 부담 없이 서버를 생성해 테스트를 할 수 있고 여러 AZ에 배치해 가용성을 확보하는 설정도 사용자가 실시할 수 있다.

가상 서버 생성

EC2 인스턴스(가상 서버)를 생성하기 위해서는 다음 내용을 반드시 설정해야 한다.

  • Amazon 머신 이미지(AMI)
  • 인스턴스 사양 (인스턴스 유형)
  • 배포할 네트워크
  • 데이터를 저장할 스토리지 용량
  • 사용 권한 설정 (보안 그룹)

가상 서버를 안전하게 외부에 공개

서버 외부 공개

EC2를 인터넷에 공개하려면 다음 3가지 조건을 충족해야 한다.

  • EC2를 퍼블릭 서브넷에 배치
  • 퍼블릭 IP 주소를 EC2에 부여
  • 보안 그룹에서 외부로부터의 접근을 허가

서버 접근 제어

어느 곳에서 어느 곳으로 접속을 허가할지에 대한 접근 제어는 보안 그룹을 이용한다. 보안 그룹은 온프레미스의 방화벽 기능을 수행한다.


부하에 따라 서버를 자동으로 추가/삭제

서버 자동 추가 및 제거

Amazon EC2 Auto Scaling(이후 Auto Scaling) 기능을 사용하면 서버 추가 및 제거를 부하 상황에 맞게 자동으로 수행할 수 있다. 서버를 추가하는 것을 스케일 아웃(Scale-out), 제거하는 것을 스케일 인(Scale-in)이라고 한다.
서버 자원의 부하가 아닌 사용자 접속 수와 같은 기준을 이용한 자동 추가 및 삭제도 설정할 수 있고 일정을 세워 인스턴스 수를 조절하는 스케줄 스케일이라는 설정도 할 수 있다.


서버 없이 프로그램 실행

서버리스 컴퓨팅 서비스 Lambda

AWS Lambda(이후 Lambda)는 서비스 컴퓨팅 서비스다. OS 같은 인프라를 관리할 필요가 없으므로 사용자는 프로그램 코드를 준비하고 Lambda에 업로드만 하면 된다.
서버리스란 실제로 가동하는 서버가 없다는 뜻이 아니라 AWS에서 서비스가 실행될 인프라를 관리하므로 사용자가 관리할 서버가 없다는 것이다. 사용자는 인프라 관리를 AWS에 맡기고 코드 개발에만 집중하면 된다.






출처 : 그림과 작동원리로 쉽게 이해하는 AWS 구조와 서비스

profile
꾸준히 나아가는 프론트엔드 개발자

0개의 댓글