Posts [오픈소스] AWS와 Docker를 활용하여 온라인 저지 사이트 만들기 [1/3]
Post
Cancel

[오픈소스] AWS와 Docker를 활용하여 온라인 저지 사이트 만들기 [1/3]


알고리즘 공부를 할 때 정말 유용한 것 중 하나는, 다양한 곳에서 온라인 저지 사이트를 운영한다는 점 입니다.

예 : 알고스팟, 정올, 프로그래머스, 백준 온라인 저지 등

이러한 온라인 저지 사이트들을 운영하려면 크게 채점 서버와 프론트엔드 서버가 존재해야 할 것입니다.

이들은 다행히도 오픈 소스로 다양하게 공개되어 있어, 그 자료를 활용하면 편리하게 나만의 온라인 저지 사이트를 만들 수 있게 됩니다.

이번에는 Qingdao University의 GitHub에서 제공하는 오픈 소스를 활용하게 됩니다.


[목표]

  • 로컬에서만 접속 가능한 것이 아니라, aws의 ec2 인스턴스를 활용하여 어디에서든 인터넷으로 접속 가능한 온라인 저지 사이트를 직접 구축합니다.

[제작 조건]

제작 과정에서도 아래 조건들을 포함해 자세히 다루겠지만, 먼저 필요한 조건 몇 개를 살펴보겠습니다.

  • AWS EC2 인스턴스를 만들 수 있는 상태여야 합니다.
    • AWS EC2는 반드시 docker 를 설치할 수 있는 ubuntu server 를 선택해야 합니다.
  • 모든 작업을 AWS EC2 서버 내부에 접속하여 리눅스 환경에서 진행합니다.
    • 따라서 puttyputtygen 프로그램을 모두 설치해 둔 상태여야 합니다.

[제작 과정]

(1) AWS EC2 인스턴스 생성하기

https://aws.amazon.com/ko/

AWS EC2는 간편하게 클라우드 기반의 서버를 무료로 제공해 주는 서비스입니다.

기본적으로 처음 계정 생성 후 EC2를 선택하면 1년의 무료 기간을 가지며, 이후에는 과금될 수 있습니다.


링크에 접속하여 회원가입한 다음, 로그인하여 콘솔에 접속합니다.

이후, 서비스 탭에서 EC2를 클릭합니다.

들어오면 인스턴스 시작 버튼이 있습니다. 눌러서 서버를 생성하겠습니다.


많은 종류의 서버들이 나오는데, 여기서는 반드시 docker를 지원하는 Ubuntu Server를 선택해야 합니다. 저는 18.04 버전을 선택하겠습니다.

프리 티어를 사용 가능한 곳에 기본적으로 체크되어 있습니다. 검토 및 시작으로 넘어가고, 기본 세팅으로 모두 둔 다음 시작 버튼을 누릅니다.


마지막 과정에서 키 페어를 생성하라는 창이 나옵니다. 서버에 접속하기 위해서 꼭 필요한 것인데요,

새 키 페어 생성을 선택한 뒤, 키 페어 이름은 자유롭게 지정합니다.

그리고 키 페어를 다운로드 받고 잘 저장해 둡니다.


(2) putty, puttygen 설치 후 .ppk 파일 생성

EC2 인스턴스가 생성되었을 것입니다. 그러면 이제 putty와 puttygen을 다운받아 줍니다.

시스템 환경 (32bit, 64bit) 에 맞게 다운받으시면 됩니다.

putty는 외부 서버에 접속시켜 주는 프로그램입니다.

puttygen은 보안 키를 생성해 주는 프로그램으로, 아래 링크의 사이트 아래쪽으로 내려가면 있습니다.

putty, puttygen 다운로드 링크 : https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

puttygen을 실행시키고, 상단의 Conversions - Import key 를 누른 다음 앞서 다운받았던 키 페어를 엽니다.

그 다음 사진의 Save private key 를 누르면 .ppk 확장자로 된 파일로 저장이 됩니다. 이 파일도 잘 보관해 두면 됩니다.


(3) AWS 탄력적 IP(공인 IP) 생성하기

다시 AWS로 돌아옵니다. AWS는 공인 IP인 탄력적 IP 라는 기능을 제공합니다.

공인 IP를 부여받아야, 어떤 곳에서든 구축한 사이트로 접속이 가능해질 것입니다.

이 공인 IP를 생성한 인스턴스에 연결시켜 주는 작업을 진행합니다.

[주의] 탄력적 IP는 생성해 둔 뒤 반드시 어떠한 인스턴스에는 연결해 두어야 과금이 되지 않습니다.

탄력적 IP 주소 할당 버튼을 누릅니다.

할당 버튼을 누릅니다.

인스턴스를 체크하고, 밑에서 공인 IP와 연결할 EC2 인스턴스를 선택합니다. 해당 칸에 커서를 대면 자동으로 자신의 인스턴스 목록이 뜹니다.

프라이빗 IP 주소도 해당 서버에 해당하는 주소가 자동으로 뜰 것입니다. 선택하고 연결 버튼을 누릅니다.

정상적으로 공인 IP(탄력적 IP) 주소가 앞서 생성한 EC2에 연결되었습니다.

이제 서버 접속 시, 이 공인 IP로 접속하면 됩니다.


다음 포스트에서는 실제로 서버에 접속하여, 구축에 필요한 프로그램을 설치해 보겠습니다.

다음 > [오픈소스] AWS와 Docker를 활용하여 온라인 저지 사이트 제작하기 [2/3]


본 포스팅은 나만의 알고리즘 채점 사이트 만들기 1강 - 프로젝트 개요와 만들어 볼 웹 서비스 소개(동빈나 님) 의 영상을 참고하여 작성하였습니다.

[2018 KAKAO BLIND RECRUITMENT] [1차] 비밀지도

[오픈소스] AWS와 Docker를 활용하여 온라인 저지 사이트 만들기 [2/3]