목표
구축한 EC2 서버에 접속을 하고 간단한 어플리케이션을 만들어서 외부에서 접근을 해본다.
EC2 서버에 접속하기 위해서 터미널이 필요하며 윈도우에는 mac과 linux과 달리 터미널이 존재하지 않기에 외부 프로그램을 다운받아야 한다.
cmder https://cmder.net/ 라는 터미널 프로그램을 다운받아서 이를 진행해보겠다.
다운 후 실행을 시켜보면 다음과 같은 터미널이 열린다.
키페어를 다운받은 위치로 이동 후 ls-l을 실행시켜서 pem파일의 권한을 확인해보면 현재 권한이 644인 것을 알 수 있다.
이를 변경하지 않고 접속을 하려고 하면 다음과 같은 오류가 발생하며 이는 키페어가 너무 공개되어 있어서 발생하는 문제이다. 644로 열려있는 권한을 600이나 400으로 변경해줘야 정상적으로 EC2 서버에 접속할 수 있다.
근데 윈도우는 mac이나 linux와는 달리 권한을 변경하기 전에 사전 작업이 필요하다.
https://gofnrk.tistory.com/6
위 링크를 참조해서 키페어의 속성을 먼저 변경해줘야 한다.
키페어의 속성을 변경했으면 chmod 600 keyPair.pem 으로 권한을 변경해준다.
권한 변경 후 터미널에 다음과 같은 명령어를 작성해준다.
ssh -i keyPair.pem ec2-user@퍼블릭 IPv4 주소
퍼블릭 주소는 세부정보에서 확인할 수 있다.
정상적으로 진행되었다면 다음과 같이 EC2 서버에 접속한 것을 알 수 있다.
어플리케이션을 만들기 위해 디렉토리를 하나 만들고 이동한다.
express 패키지를 사용해야하므로 express를 설치해준다.
vi 에디터로 js 파일을 하나 작성한다.
다음과 같이 작성하고 저장을 해준다. 작성이 끝났으면 ESC 키를 입력모드를 종료하고 shift+:을 누른 다음에 wq 명령어를 통해 저장후 vi를 빠져나올수 있다.
이 코드는 3000번 포트를 통해 접속을 하면 Hello World를 보내주는 간단한 어플리케이션이다.
어플리케이션을 실행시키면 다음과 같이 3000번 포트가 잘 실행되고 있는것을 볼 수 있다.
터미널을 한개 더 열어서 curl 명령어를 통해 접속을 해보면 Hello World를 받아볼 수 있다.
인스턴스 내에서 접근을 하는것은 성공했고 다음은 외부에서 접근을 해보겠다.
외부에서 접근을 하려고하면 다음과 같이 연결을 할 수가 없다고 나온다.
이는 인스턴스가 3000번 포트를 외부에 공개하지 않았기 때문이다.
3000번 포트를 공개하기 위해서는 보안 그룹을 수정해야한다.
인바운드 규칙을 추가해준다.
다음과 같이 규칙을 추가해서 3000번 포트를 열어준다.
정상적으로 출력이 된 것을 볼 수 있다.
이렇게 EC2 서버를 구축해서 간단한 어플리케이션을 개발 후 이를 인스턴스 내부와 외부에서 접근하는것까지 해보았다.