학교 졸업 프로젝트가 어느 정도 진전해 프론트에서도 어느 정도 테스트해 보며 작업해야 하기에 EC2로 서버 배포를 할 일이 생겼다.
예정했던 대로 aws ec2를 통해 서버를 올리기로 해 해당 과정을 기록해보려 한다.
로컬 환경은 mac m1을 기준으로 사용했다.
준비
먼저 프리티어로 서버를 생성했기에 결제 카드 등록을 마친 프리티어 계정이라 가정하고 진행한다.
인스턴스 생성
인스턴스란 간단하게 하나의 컴퓨터를 의미한다. 이는 웹 서버가 될 수 있고, DB가 될 수 있다. 여기서 EC2란 사용자의 입맛대로 구성할 수 있는 서비스라고 한다.
본격적으로 인스턴스를 생성해보자!
우선 리전 설정을 하자. 리전은 호스팅 되는 위치를 의미하는데 가까운 곳에 위치할수록 서버 속도가 빨라진다.
리전에 따라 인스턴스의 생성 여부가 구분되기 때문에, 내가 생성했던 인스턴스가 존재하지 않는다면 리전을 확인해 보자!
AWS EC2 서비스에 접속한 뒤 인스턴스 시작 버튼을 눌러 인스턴스를 생성하자.
주요한 설정만 만들어보자. EC2 컴퓨터의 OS를 설정하는 창이다.
처음에 Amazon Linux를 선택해 생성했지만, 패키지 관리 파일인 yum이나 다른 부분들이 익숙하지 않아 Ubuntu로 다시 생성해 주었다.
이 글은 Ubuntu를 기준으로 작성했다!
친절하게 프리티어로 사용가능한 우분투 버전이 표기된다.
큰 차이는 없으므로 아무거나 선택해 주자.
인스턴스 유형은 컴퓨터의 성능을 선택해 주는 창이다.
프리티어는 별다른 선택지가 없으므로 t2.micro를 선택해 주자.
다음은 접속하기 위한 key 설정 화면이다.
키 페어 유형은 어떤 방법으로 key를 암호화하여 사용할지 정하는 옵션이다.
ED25519가 보안적으로 더 뛰어나다고는 하지만 난 RSA를 선택해 주었다.
키 파일 방식도 SSH를 통해 접속할 예정이기 때문에, 기본 pem 방식을 선택해 주었다.
네트워크 설정에서는 다른 옵션들은 특별하게 변경하지 않았다.
SSH 트래픽 허용 설정에서는 보안을 위해 [위치 무관 0.0.0.0/0] 에서 내 아이피로 변경해 주었다.
마지막으로 스토리지 구성에서는 프리티어에서 최대 30GB를 사용할 수 있기에 30GB로 설정해 주었다.
나머지 옵션들은 특별히 건드리지 않고 생성해 주었다!
인스턴스 접속
성공적으로 인스턴스를 생성했다면 다음과 같은 화면을 볼 수 있다.
해당 인스턴스를 눌러 접속해 인바운딩 설정을 통해 SSH 접속과 웹 서버 접속을 가능토록 해주어야 한다.
보안 탭으로 들어가면 나는 다음과 같이 인바운드 설정을 해 주었다.
SSH 접속을 위해 22번 포트를 내 아이피로 열어 주었고, 서버를 8080 포트로 열기에 해당 포트를 모두에게 열어주었다.
0.0.0.0/0 으로 열어둔다면 어떠한 주소로든 접근 가능하다!
해당 설정은 보안 그룹을 선택한 뒤, 해당 보안 그룹에서 설정해 줄 수 있다.
내가 만든 EC2 서버의 접속을 허용하였으니, SSH를 통해 직접 접속해 보자.
SSH로 서버 접속하기
서두에 말했다시피 mac을 기준으로 작성하기 때문에 기본 터미널에도 SSH가 설치되어 있다.
cd /Users/사용자이름/.ssh
먼저 .ssh 폴더에 접근하자.
해당 폴더에 아까 서버 생성 뒤에 받아둔 .pem의 키를 복사해 두자.
(나는 Finder를 통해 복사해 주었는데, .ssh 폴더는 숨겨져 있어 볼 수 없다.
따라서 Finder에서 [Command + Shift + .] 단축키를 통해 숨김 파일을 볼 수 있다.)
ls 명령어를 통해 정상적으로 위치하는지 확인해 보자.
vim config
이후 config 파일을 생성하기 위해 vim을 사용해 파일을 생성해 주자.
config 파일은 다음과 같이 작성하자.
파일 수정은 i를 눌러 해당 파일을 수정할 수 있다.
Host: 실행할 이름을 작성해 주면 된다. 추후 ssh ddingmin 명령어를 통해 SSH을 접속할 수 있게 된다.
HostName: 서버에서 발급받은 도메인 IP를 입력해 주자. 꼭 0.0.0.0 형식으로 이루어진 도메인을 입력해 주어야 SSH로 접속할 수 있음에 유의하자.
User: OS의 이름을 입력해야 한다. 별도록 설정하지 않고, Ubuntu로 인스턴스를 생성하였기에 ubuntu를 입력해 주자.
IdentityFile: pem파일의 경로를 입력해 주자.
파일 저장은 esc를 누른 뒤 :wq를 통해 저장하며 나가주자.
이는 SSH를 편리하게 접속하도록 도와준다고 생각하자.
이후 .ssh/ 폴더에 위치한 경로에서
ssh ddingmin
다음 명령어를 통해 EC2 서버에 성공적으로 접속할 수 있다!
추가적으로 y/n 입력창이 뜬다면 y를 눌러 접속해 주자.
참고 자료
https://jupiny.com/2016/10/31/ssh-login-simply/