지금 진행중인 사이드 프로젝트의 인프라를 AWS 를 도입해 사용하려고한다. 어짜피 1년동안 프리티어는 무료이고 큰 서비스가 아니기때문에 프리티어를 사용해서 REST API 까지 배포해보겠다.
Amazon EC2(Elastic Compute Cloud) : 가상화 서비스로서, 다양한 형태의 타입과 서비스에 따라 적합한 사양을 선택하고, 사용량만큼 비용을 지불하는 컴퓨팅 서비스이다.
최초 aws 가입에 대한 내용은 굳이 다루지않겠다. 찾아볼때마다 회원가입하는 방법이 바뀌는 것 같음...
사용하지않은 e-mail 계정을 등록하면 프리티어로 바로 사용가능하다.
AWS는 전세계를 대상으로 클라우드 서비스를 제공하고있고, 전세계 주요지역마다 IDC(Internet Datga Center)를 자체적으로 구축해 운영하고 있다.
뭐 예를 들테면
- 미국 동부(버지니아 북부, 오하이오)
- 미국 서부(캘리포니아 북부, 오레곤)
- 아시아(서울, 싱가폴, 도쿄)
- 등등.. 많은지역에있음
이러한 인프라 환경을 크게 리전(Region), 가용영역(Availability Zone), 엣지 로케이션(Edge Location) 으로 구분할 수 있다.
리전(Region)
물리적으로 위치가 다른 나라들을 대상으로 동일 서버를 사용하게 하면 재해같은 일로 서버가 정지되었을 때 대처할 수 없어서 서비스를 종료해야 하거나, 물리적 거리로 인해 빠른 속도를 낼 수 없다.
이러한 이유로 아마존은 국가에 리전 이라는 것을 구축하여 해당위치에서 가장 가까운 클라우드 서비스를 이용할 수 있게 했다.
한국은 2016년에 서울리전이 오픈되어서 국내에서도 빠르게 사용할수있다. (현재는 2개인가 그런거같음)
가용영역(Availability Zone)
우리가 흔히 알고있는 데이터센터(IDC)를 말한다.
AWS 하나의 리전에 여러개의 가용영역(AZ) 를 보유하고있고, 같은 리전이더라도 가용영역은 지리적으로 보면 멀리 떨어져 있다. 이런 이유는 재해같은 일 때문에 서버가 다운되는것을 막기 위해서다.
엣지 로케이션(Edge Location)
아마존의 CDN 서비스인 CloudFront를 위한 캐시 서버들의 모음을 말한다.
CDN 서비스는 Content Delivery Network의 약자로, 콘텐츠(HTML, 이미지 등의 파일)를 서버와 물리적으로 사용자들이 빠르게 받을 수 있도록 전세계 곳곳에 위치한 캐시 서버에 복제해주는 서비스이다.
아마존의 CloudFront는 가장 빠르게 성장하고 있으며 물리적으로 멀리떨어진 서버에서 다운로드하는 것보다, 가까운 서버에 접속하여 다운로드를 받게하는 것이 목적이다.
Amazon EC2
EC2 는 AWS 상에서 안정적이며, 크기를 조정 가능한 컴퓨팅 파워를 제공하는 웹 서비스를 말한다. 이러한 가상화 서버를 '인스턴스' 라고 부르며, 필요에따라 한개부터 수천개까지의 인스턴스까지 확장가능하다.
위의 사진을 보면 알겠지만 물리서버를 도입하는 것에 비해 AWS 의 사용은 엄청 수월하고 빠르다.
오히려 회원가입 하는시간이 더 길기도 하다.
위의 이러한 이유로인해 나는 사이드프로젝트에서 AWS EC2의 도입을 실행했다.
EC2 인스턴스 생성
EC2 에서 인스턴스 시작을 누르고 사용 할 서버의 이름을 정해준다.
여기서 OS를 골라주는데 나는 웹서버 구축이나 보안설정 등의 부분을 우분투에서 사용을 많이했으므로 우분투를 골라주었다.이부분은 사용자에 따라 편한걸 사용하면 될것같다.
프리티어로 사이드 프로젝트를 진행할거니까 디폴트로 설정되어있는걸 하면될것같다.
이건 키페어가 없으면 새로 만들면된다.
이부분이 체크되어있는지 꼭 확인해라.
SSH 접속을 막아놓게되면 외부에서 접속을 할수없어서 putty 같은 클라이언트 툴을 사용할 수 없고, 스타벅스가서 커피한잔 마시면서 접속을 할 수가 없다. 아마 따로 건들지 않았으면 저렇게 체크가 되어있을것이다.
그리고 나머지 아래부분들은 기본설정대로 놔두고 우측에 인스턴스 시작을 누르게 되면 인스턴스 생성은 완료된다.
뭐 대충 아래와 같은 화면이 나온다. (보안적인 이슈가 생길것같은 부분들은 모두 가림)
현재 인스턴스 상태가 중지되어있는데, 인스턴스 상태에서 시작을 누르게되면 인스턴스서버가 실행된다.
쉽게생각하면 컴퓨터 전원을 켰다고 생각하면된다.
프리티어라도 사용하지않을때 혹시모를 과금이 나올 수도 있다. 그래서 평소엔 중지를 해놓는 편이다.
그리고 성공적으로 실행이 되면, 연결 버튼을 눌러보자
위와 같은 화면이 나올것이고 이상태에서 연결을 누르게 되면 실제 우분투 리눅스환경의 서버와 같은 화면이 나온다.
이런 화면을 웹 브라우저에서 지원해준다는 것은 정말 강력한 기능인 것같다.. aws 쩐다진짜..
ssh 같은걸로도 접속 가능하니까 아마 할줄아는 사람들은 금방 따라할수있을것같다.
AWS EC2, Spring Boot, JPA, MSA 등 기술 사용한 게시물순서
1. https://yoon-developer.tistory.com/119 - [MSA] 프로젝트 (1) - MSA(마이크로 서비스 아키텍처) 기본 개념
2. https://yoon-developer.tistory.com/120 - [AWS] 프로젝트 (2) - EC2 개념부터 프리티어 인스턴스 생성
3. https://yoon-developer.tistory.com/121 - [Spring Boot] 프로젝트 (3) - 이클립스 Spring Boot 프로젝트 구축 및 로그설정