본문 바로가기
Programming/AWS

[AWS] EC2 란?

by soccerman 2020. 4. 14.
반응형

https://opentutorials.org/course/2717/11273

 

AWS EC2 - 생활코딩

EC2(Elastic Compute Cloud)는 독립된 컴퓨터를 임대해주는 서비스입니다. 본 수업의 하위 수업에서는 EC2의 개념과 사용방법을 알아봅니다. 

opentutorials.org

 

EC2란 elastic computing 의 약자로 유동적으로 클라우드 컴퓨터를 제공하는 AWS의 서비스이다.

 

개인 개발자들이 서버를 물리적으로 두는 것에 많은 불편함을 느끼는데 AWS가 대형 데이터센터를 짓고 원격으로 개발자들에게 서버를 제공한다.

 

아마존 리눅스, 우분투, 윈도우 등 여러가지 운영체제의 클라우드 컴퓨터를 제공하며 컴퓨터의 성능또한 개발자(소비자)의 마음대로 조절할 수 있다. 가격은 사용시간과 성능 등에 의해 책정된다.

 


일단 여기서, 소비자들의 수요를 세분화하여 가격차별을 함과 동시에 물리적 불편함을 해결해주는 Cloud Computer Service라는 획기적인 사업에 감탄을 하고 시작한다. 이는 합리적으로 사용되기만 한다면 소비자와 사업자 모두에게 큰 이익을 줄 수 있다고 생각한다.


사용자는 컴퓨터를 유동적으로 중지, 제거 할 수 있고 서버가 과부하가 될 시 서버를 유동적으로 늘릴 수 있다.

 

유동적으로 서버의 용량을 늘리는 것을 Scale Up 이라고 한다.

 

서버의 과부하가 발견되면 성능이 더 뛰어난 인스턴스(클라우드 컴퓨터)를 새로 생성하고 이를 이전의 컴퓨터와 교체하는 작업을 진행한다.

 

여기서 문제는 교체하는 과정에서 IP가 달라지는 문제가 발생할 수 있는데 이는 Elastic IP를 할당하여 해결한다.

 

Elastic IP를 활용해 고정 IP를 기존 인스턴스에 할당하고 이후 이를 성능 좋은 컴퓨터에 재 할당하여 서버 접속에 문제 

없이 서버 성능을 교체하는 것이다.


 

서버의 크기가 일정 수준을 초과하면 서버 증량의 도구로 Scale Out을 활용할 수 있다. 이는 여러개의 컴퓨터를 연결하는 것인데 서버의 복잡성을 심화시키는 단점이 있다.

 

어떻게 여러개의 컴퓨터로 서버를 나눌 것이냐?

 

ELB(Elastic Load Balancer)를 활용한다.

 

고객들은 ELB로 아이피를 활용해 접근하고 ELB는 이를 여러개의 서버로 분산하여 연결해준다.

 

이러한 작업들을 사람이 손수 해야하나?

 

Auto Scailing 을 활용하면 자동화시킬 수 있다.

 

컴퓨터의 cpu사용률을 변수로 하여 과부하가 포착되면 Scale out을 하고 사용률이 낮으면 인스턴스를 줄이는 것이다.

 

이 과정마다 사용자에게 이메일 등으로 알림을 보내는 기능도 있다.

 

실습

 

 

리눅스(우분투) 서버 인스턴스를 만들고 이 서버에 SSH프로토콜을 사용하여 원격으로 접속한다.

 

나는 window 운영체제를 사용하고 있어서 넷사랑사의 xshell이라는 프로그램을 활용하여 접속했다.

 

app.js 파일을 위와 같이 만든다.

express 모듈을 사용해서 웹에 접근하면 "Hello world"를 확인할 수 있게 하고, IP주소/ec2에 접근하면 json의 data를 보여주게끔 한다.

app.js 코드 실행

 

반응형

'Programming > AWS' 카테고리의 다른 글

[AWS] Serverless Web 게시판 만들기 -1 Lambda, API Gateway, DynamoDB 활용  (4) 2021.02.07
[AWS] EBS 추가연결 실습  (0) 2020.05.09
[AWS] EBS 란?  (0) 2020.05.09
[AWS] RDS 란?  (0) 2020.04.16
[AWS] S3 란?  (0) 2020.04.14

댓글