이전에서는 AWS EC2에 접속한 뒤, 필요한 프로그램들을 모두 설치하는 과정을 살펴보았습니다.
이제 실제로 프로젝트를 실행해 보고 공인IP로 접속이 잘 되는지 테스트해 보겠습니다.
[제작 과정]
(1) 설치한 git 프로젝트 실행
위에 들어가서 프로젝트 주소를 가지고 git clone 했을 경우 OnlineJudgeDeploy라는 디렉토리가 하나 생성됩니다.
이제 서버에서 아래 명령어를 입력하여 해당 디렉토리에 들어갑니다.
1
cd OnlineJudgeDeploy
들어온 다음 아래 docker-compose 명령어를 입력합니다.
1
sudo docker-compose up -d
이제 약 5분~10분 정도 설치하는 과정을 거칩니다. 모두 완료되고 아래와 같이 뜬다면 성공입니다.
- 만약 tls handshake timeout 에러가 뜰 경우 다음 명령어 입력 후, 위의 docker-compose를 재시도합니다.
1
2
sudo systemctl daemon-reload
sudo systemctl restart docker
설치가 완료되고, docker에 정상적으로 실행 중인지 확인하려면 다음 명령어를 입력해 봅니다.
1
sudo docker ps -a
4개의 컨테이너가 정상적으로 점유하고 있음을 확인할 수 있습니다.
이제, oj-backend 서버의 접속이 가능하도록 AWS EC2의 보안 그룹 규칙에서 포트를 열어주어야 합니다.
먼저, AWS EC2 인스턴스 상세 설명에서 지금 서버가 어떤 보안 그룹에 속해 있는지 확인합니다.
제 경우 launch-wizard-6이 설정되어 있습니다.
이제 왼쪽 메뉴들에서 보안 그룹에 들어갑니다.
아까 확인해 둔 보안 그룹 이름을 확인하고, 옆의 보안 그룹 ID를 클릭합니다.
인바운드 규칙 편집 버튼을 클릭합니다.
이후 아래와 같이 포트 80번에 대해 여는 규칙을 추가해준 뒤 규칙 저장합니다.
이제 직접 들어가 볼 차례입니다. 들어가는 방법은 아래와 같이 2가지가 있습니다.
- 해당 EC2 상세 설명에
퍼블릭 DNS(IPv4)
에 나온 주소로 들어가기 - 해당 EC2 에 연결해 두었던 공인IP(탄력적 IP) 주소에 :80 을 붙여서 들어가기
- 예: 탄력적 IP 주소가 11.22.33.44 일 경우, 웹 브라우저에 11.22.33.44:80 을 입력
접속에 성공하면 아래와 같은 사이트가 나오게 됩니다!
이제 어디서든 모든 사람들이 2가지 방법 중 하나의 주소로 나만의 온라인 저지 사이트에 접속할 수 있게 되었습니다.
기본 admin 계정은 ID root
, PW rootroot
로 설정되어 있으며 로그인 뒤 Management 메뉴에서 문제를 직접 출제하고, 대회를 개최하는 등 다양한 기능을 사용할 수 있습니다.
사용할 때 EC2 서버를 구동시키고, docker-compose 명령어를 입력해 실행하여 사이트를 활용할 수 있습니다.
다음에는 직접 문제를 출제하는 기능을 살펴 보고, 사이트의 프론트엔드를 바꾸는 방법에 대해 알아보도록 하겠습니다.
여기까지 따라오시느라 수고 많으셨습니다!