JUINTINATION

AWS 엘라스틱빈스톡 내부 구성 직접 확인하기 본문

Amazon Web Services

AWS 엘라스틱빈스톡 내부 구성 직접 확인하기

DEOKJAE KWON 2024. 7. 16. 16:07
반응형

이 글은 지난 AWS 엘라스틱빈스톡 프로젝트 배포에서 이어지는 내용이다. 이번에는 직접 배포 환경 EC2에 접속하여 내부 구성이 어떻게 되어있는지 코드를 보며 확인하려고 한다.

 

AWS 엘라스틱빈스톡 프로젝트 배포

이 글은 지난 AWS 엘라스틱빈스톡 생성하기에서 이어지는 내용이다. 지난 글에서 언급했다시피 과금 이슈가 있어서 미루다가 뭐 얼마나 나오겠어 하는 마인드로 그냥 진행하기로 했다. AWS 엘라

juintination.tistory.com

엘라스틱빈스톡 SSH 접속

지금은 윈도우가 아닌 Mac 환경이다. 윈도우 환경에서 한다면 예전 글에서 작성했던 mobaXterm 설정 부분에서 볼 수 있는 방법을 그대로 따라하되, username을 ec2-user로만 바꾸면 된다.

Mac 환경에서는 위와 같이 터미널에서 $ ssh -i {처음 키 페어를 생성할 때 받은 키 위치} ec2-user@{인스턴스의 IPv4 주소} 를 입력해서 접속한다. 기존까지의 username이 ubuntu와 다른 것을 확인할 수 있다.

이후 $ netstat -ntlp 명령어를 실행하는데, 앞에 sudo가 없으면 오른쪽의 PID/Program name이 보이지 않는다. 그래서 앞에 sudo를 붙여 $ sudo netstat -ntlp 명령어를 실행하여 NGinX 서버가 80 포트로, 스프링 서버가 5000 포트로 실행중임을 확인했다.

또한 $ ps -ef 명령어를 실행해보면 위와 같이 java -jar application.jar 이름으로 프로세스가 돌고 있는 것을 확인할 수 있는데, 우리가 jar 파일을 엘라스틱빈스톡에 업로드하면 각각의 파일명이 제각각일 것이기 때문에 내부적으로 이름을 application.jar라고 변경해서 파일을 실행시킨다.

NGinX

위와 같이 $ sudo find / -name nginx 명령어로 이름에 nginx가 포함된 모든 폴더와 파일들을 한 눈에 볼 수 있다.

여기서 nginx의 설정파일은 nginx.conf 파일이며, /ect/nginx 경로에 위치한다.

위와 같이 해당 경로로 이동하고 파일 내용을 확인할 수 있다. 좀 더 가독성을 좋게 하기 위해 $ vi nginx.conf 명령어를 실행하면 다음과 같다.

수많은 설정 중에 server 설정 부분을 확인해보면 nginx 서버는 80 포트로 돌고, 로그는 /var/log/nginx/access.log main에 남겨지는 등의 설정을 볼 수 있다. nginx 서버의 더 자세한 설정은 include로 지정한 경로(conf.d/elasticbeanstalk)의 파일에 있다.

해당 경로로 이동해보면 *.conf 파일인 00_application.conf 파일이 있다. 해당 파일의 권한을 확인해보면 이 파일은 root 유저만 읽고 쓰기가 가능하고, 다른 유저들은 읽기 권함나 소유하고 있다. 우리는 지금 ec2-user이기 때문에 읽기만 가능하다.

해당 파일을 읽어보면 위와 같다. 마찬가지로 좀 더 가독성을 좋게 하기 위해 $ vi 00\_application.conf 명령어를 실행하면 다음과 같다.

이 파일의 locaion / 설정을 살펴보면 80 포트에 주소가 / 인 요청이 들어왔을 때의 설정이라는 뜻으로, 이 설정 파일에서 포트 번호 변경이 가능하다. 이 포트는 내부적으로만 호출되기 때문에 외부에 열려있을 필요가 없다.

가장 앞에서 로드밸런서가 요청을 받으면 NGinX에게 요청할 것이고, NGinX의 80 포트의 / 주소로 요청이 오면 프록시 패스를 해서 같은 서버에 있는 localhost(127.0.0.1)의 5000 포트로 요청할건데, 어차피 내부에서 5000 포트에 요청할 것이기 때문에 외부에 열려있을 필요가 없다는 것이다.

즉, 외부에서 다이렉트하게 요청하기 위해서는 인바운드 규칙에 포트를 열어주는 것이 맞지만, 그게 아니라면 어차피 80 포트를 통해 들어가기 때문에 열어놓을 필요가 없다.


결론

간단하게 엘라스틱빈스톡의 내부 구조에 대해 알아보았다. 지난 AWS 엘라스틱빈스톡 생성하기에서 맨 마지막 부분에 엘라스틱빈스톡의 내부 구조에 대해 간략하게 정리했었는데, 이렇게 직접 파일들을 찾아보며 좀 더 명확하게 확인해가며 이해할 수 있었던 것 같다.

728x90
Comments