-
[AWS] Elastic Beanstalk, 그리고 DockerAWS 2023. 11. 13. 16:56
※ AWS Elastic Beanstalk와 Docker의 자세한 설명은 구글링하면 내가 설명하는 것보다 더 좋은 퀄리티의 가이드가 있으니 여기서는 설명은 생략하도록 하겠다.
내 기준에서는 Elastic Beanstalk을 생성할 때 Node.js 플랫폼과 Docker 플랫폼을 가장 많이 사용한다.
그 중에서 가장 최근엔 Docker 플랫폼을 사용했는데, Elastic Beanstalk를 생성하면 아래 이미지와 같이 기본적으로 나타나는 페이지가 있다.
보통 Docker에 프로젝트를 배포하게되면 이 화면은 사라지게 되고 배포한 프로젝트가 출력된다.
하지만 나는 이번에 일반적인 방법으로 프로젝트를 배포하지 않고 Elastic Beanstalk로 생성된 EC2 인스턴스에 직접 접근해서 grafana를 사용해보려고 한다.
grafana를 docker에서 실행시키는 방법은 생각보다 간단하다. 공식 사이트에 나와있다.
Alpine 기반의 이미지를 사용하려면
docker run -d --name=grafana -p 3000:3000 grafana/grafana-enterprise
Ubuntu 기반의 이미지를 사용하려면
docker run -d --name=grafana -p 3000:3000 grafana/grafana-enterprise:10.2.0-ubuntu
를 사용하면된다.
grafana의 기본 포트는 3000이다.
docker ps -a
위 명령어로 실행되고 있는 docker image를 확인해보면 grafana가 실행되고 있음을 확인할 수 있다. 그런데 grafana만 있는 것이 아니라 나는 만든 적이 없는 처음부터 존재하는 녀석이 하나 있다.
단순히
docker stop 도커이미지이름 docker rm 도커이미지이름
를 사용해서 Docker 이미지를 실행 중단시키고 삭제시키면 될 줄 알았다.
하지만 계속해서 자동으로 재실행되었다.
서너번 계속 시도해봤지만 결과는 그대로였고, 뭔가 강제로 삭제시키면 되지않을까?해서
docker rm -f 도커이미지이름
를 해보니 드디어 삭제가 되었다.
이 후 Elastic Beanstalk에서 생성된 링크에 접속을 시도해보았으나 접속이 되지 않았다.
당연히 될리가 없다.
http 프로토콜은 80포트를 사용하고 https는 443포트를 사용한다.
그런데 위에서 Grafana를 실행할 때 뭐라고 선언했는지 살펴보자.
... -p 3000:3000 ...
3000번 포트를 사용하고있다.
물론 http://url:3000으로 접속하면 동작하지만 어느 웹페이지도 이런식으로 포트번호를 url에서 사용하지 않는다.
Grafana를 아래와 같이 실행시키면 원하는대로 링크에 접속했을 때 포트번호를 기입하지 않아도 된다.
docker run -d --name=grafana -p 3000:80 grafana/grafana-enterprise
매우 쉽게 말하자면 3000번 포트를 80포트로 연결 시켜주는 것이다.
즉, 사용자가 80포트로 진입하면 3000번 포트로 실행중인 녀석을 보여준다.
이것을 포트포워딩이라고 하는데, 포트포워딩에 대한 설명은 링크에서 확인하기 바란다.