정보공간_1

[7기 수원 박성진] 아마존 웹 서비스 EC2 시작하기 본문

IT 놀이터/Elite Member Tech & Talk

[7기 수원 박성진] 아마존 웹 서비스 EC2 시작하기

알 수 없는 사용자 2015. 4. 1. 17:08

  안녕하세요 수원 멤버십에서 활동중인 박성진 입니다.

  요즈음 웹에서 서비스 되고 있는 많은 웹 어플리케이션 들이 클라우드 인프라 위에서 비즈니스 로직이 구현되어 있습니다. 그리고 저 또한 서버가 필요한 각종 과제나 실제로 서비스를 위한 프로젝트를 진행 할 때 주로 쓰는 것이 클라우드 가상 서버 입니다. 이런 현재의 대세를 따라가기 위해 저는 앞으로 4번에 걸친 포스팅을 통해 아마존 웹서비스 를 이용해 웹 서비스를 구축 하는 방법을 알아보도록 하겠습니다.


  아마존 웹 서비스를 통해 웹 서비스를 구축하려면 가장먼저 필요한 것이 무엇일까요? 그에 대한 답은 고민할 필요도 없이 당연히 아마존 가상 서버를 빌리는 것입니다. 그러므로 이번 포스팅 에서는 아마존 서버를 빌리는 방법과 아마존 서버를 사용하는데 있어 최소한의 필요한 설정들을 알아보도록 하겠습니다.

  먼저 아마존 사이트(aws.amazon.com)에 접속합니다. 접속 하시면 아래와 같은 화면을 볼 수 있을것 입니다.

  만약 위와 같은 화면이 아닌 다른 화면이 나왔다면 url을 다시 확인하신 뒤에 접속 하시면 됩니다. 


  접속을 한 뒤에는 우측 상단에 있는 내 계정 -> AWS Management Console을 클릭하여 로그인 후 콘솔 창으로 가거나 아이디가 없을 경우 가입 버튼을 통해 가입 후 콘솔 창으로 갑니다.


  콘솔 창으로 이동하면 아래와 같은 화면을 볼 수 있을 것입니다.

  위의 화면 중 직사각형으로 표시되어 있는 서비스 들은 간단히 개발 서버를 구축하여 과제를 진행 할 때에도 유용한 것들을 표시해 보았습니다. 각각의 서비스를 간단히 설명해 보면 다음과 같습니다.

EC2 :  이번 포스팅에서 구축할 클라우드 서버 입니다. 성능은 필요한 만큼 할당 받아 사용 할 수 있으며 가입 후 1년간 무료로 사용 할 수 있는 무료 티어가 존재합니다.

S3 : 아마존에서 제공해 주는 Object storage 입니다. 일반 block storage와는 다르며 각종 파일들을 저장 할 수 있는 저장 공간을 제공합니다. 많은 클라우드 스토리지 서비스들이 S3를 이용하고 있습니다.

RDS : 클라우드 형태로 제공되는 RDBS 서비스 입니다. 가상 서버를 무료로 사용할 수 있는 무료 티어의 경우 성능이 굉장히 제한적입니다. 따라서 컴퓨트 연산이 많이 필요하다면 데이터베이스를 분리하여 RDS를 이용해 구축하는 것도 좋은 방법 입니다. RDS또한 1년간 무료로 이용 할수 있는 용량이 존재합니다.

ElastiCache : 아마존에서 제공하는 인메모리 캐쉬 입니다. 이 서비스를 통해 Memcached 나 Redis를 손쉽게 이용할 수 있습니다.

  위의 메뉴 중 가장 위에 있는 EC2를 클릭하면 EC2를 관리 할 수 있는 콘솔로 이동 합니다. 아마 처음 이용하시는 분은 별 다른 화면 없이 가운데에 크게 Launch Instance라고만 쓰여 있을 것입니다. 하지만 전 이미 사용 하고 있는 가상 서버가 있으므로 그 화면은 생략하도록 하겠습니다. 


  가상 머신을 구동 하기 전에 설정해야 할 것이 있습니다. 바로 Region이라는 것인데요 이것은 가상머신이 존재하는 실제 데이터센터 지역을 나타냅니다. 우측 상단에 보면 다음과 같은 성정들을 볼 수 있습니다.

현재 한국에서 가장 가까운 Region은 Tokyo이므로 Region을 Tokyo로 설정하도록 하겠습니다.


  이제 본격적으로 가상 머신을 생성하도록 하겠습니다. 가상 머신을 생성하는 방법은 간단합니다. 가장 먼저 Launch Instance를 클릭합니다. 그러면 다음과 같은 화면을 볼 수 있습니다.

왼쪽 Free tier only를 클릭하면 무료로 사용 할 수 있는 가상 머신만 모아서 볼 수 있습니다. 그 중 저는 Ubuntu server 14.04를 빌려보도록 하겠습니다.


자동으로 설정되어 있는 것이 무료 버전입니다. 오른쪽 하단에서 Review and Launch를 클릭하면 모든 설정이 자동으로 되며 바로 Launch직전 페이지로 가게 됩니다. Configure Instance Details를 클릭하게 되면 각종 설정을 구축하는 사람 입맛에 맞게 직접 설정 할 수 있습니다.

이번 포스팅에서는 최소한의 설정만 하여 최대한 쉽게 하는게 목적이므로 자잘한 설정은 넘어가도록 하겠습니다.

 Launch 직전 페이지 입니다. Instance Details를 누르면 해당 가상 머신의 상세한 정보를 볼 수 있습니다. Launch직전에 설정해 줘야 할 가장 중요한 것이 있습니다. security Groups이 바로 그것인데요 이것을 통해 사용 할 수 있는 포트를 설정 할 수 있으므로 기초적인 보안을 생각해서라도 꼭 설정해 주어야 합니다.

  빨간색 상자 안 상단에 위치한 Edit security groups를 클릭하면 다음과 같은 설정 화면을 볼 수 있습니다.

 허용할 아이피나 포트 번호를 설정하는 화면입니다. 기존의 설정된 security group이 있다면 select an existing security group을 선택하고 설정을 완료하면 되지만 새로 만들 경우에는 Create a new security group을 선택하여야 합니다. 처음 새로 만드는 그룹 같은 경우 기본적으로는 가상서버에 접속 할 수 있는 포트가 열려있는 것을 볼 수 있습니다. 또한 특정 ip에서만 개발을 하려면 파란색 상자 Source 테그에서 Anywhere을 다른 것으로 바꾼 뒤 IP를 등록하면 특정 IP에서만 가상 서버에 접속 하도록 설정 할 수 있습니다. 

  포스팅의 목적이 웹 서버 구축이므로 Add Rule을 클릭하여 웹 포트(80포트)를 열도록 하겠습니다. 

 웹서버 용으로 가상 머신을 이용할 것이므로 type테그에서 Custom TCP Rule을 클릭하여 저희만의 TCP 룰을 만듭니다. 그리고 웹서버는 보통 80번 포트를 사용하므로 Port Range는 80만 열어두도록 합니다. 개발 중 톰캣이나 기타 등등 프레임 워크를 이용하여 포트번호가 80이 아니라도 추후 엔진 엑스나 아파치 같은 서버를 이용 할 것이므로 80 포트만 열어두도록 합니다. 웹 서비스를 한다면 어디에서나 접속을 해야 하므로 Source 테그에서 Anywhere을 선택합니다. 이제 Launch준비는 전부 끝이 났습니다. 이제 우측 하단에 있는 Review and Launch를 클릭하고 화면이 넘어가면 또 다시 우측 하단에 있는 Launch를 클릭하도록 합니다.

클릭하면 다음과 같은 화면이 생길 것 입니다.

  위와 같은 화면이 아니더라도 Create a new key pair를 선택하면 위와 같이 바뀔 것 입니다. 이 key file은 외부에서 SSH를 통해 EC2에 접속 할 때 비밀번호 대신 사용하게 됩니다. 아마존의 경우 다양한 서비스를 이용할 때 이 파일을 이용해야 합니다. 이것은 비단 EC2 뿐만 아니라 거의 대부분의 아마존 웹 서비스를 이용할 때 필요한 것이므로 안전한 곳에 따로 보관해 두셔야 합니다. 절대로 분실하면 안됩니다!

  key pair name을 입력하고 Download Key Pair를 클릭 한 뒤 우측 하단에 Launch Instance를 클릭합니다.

  드디어 가상 머신 생성이 완료 되었습니다!! 우측 하단에 있는 View Instance를 클릭하면 현재 가동 중인 Instance들을 볼 수 있습니다.

 맨 위에 있는 것이 방금 생성한 Instance입니다. 클릭하시면 아래에 설명을 볼 수 있습니다. 그 중 Public IP가 외부에서 접속 할 수 있는 고정 IP와 같습니다. Instance State가 running이 되면 SSH를 통해 어디서나 해당 Instance로 접속 하면 됩니다. 

  접속은 Linux라면 ssh client의 명령어를 통해서 가능하고 윈도우라면 putty나 xshell을 통해 접속 할 수 있습니다.

여기까지 웹 서비스를 위한 가상 서버 생성 방법이였습니다. 다음 포스팅에서는 가상 서버에 접속해 실제로 Nginx를 올리고 웹서버를 구동하는 방법을 알아보도록 하겠습니다.