🎉 개요
프로젝트를 진행하면 EC2를 제공해 주지만, 직접 EC2 인스턴스를 생성해서 미리 배포 연습을 할 것이다. 졸업 프로젝트에서 EC2를 생성해서 배포한 경험이 있지만, 이때는 너무 급하게 진행하다보니 정리를 하나도 해놓지 않았다. 이번에는 잘 정리해서 다음에 참고할 수 있도록 정리하려고 한다!
❓ EC2란?
Elastic Compute Cloud의 약자로, 아마존에서 제공하는 클라우드 컴퓨팅 시스템이다. Amazon EC2를 사용해서 가상 서버를 구축하고 보안 및 네트워킹을 구성하며 스토리지를 관리할 수 있다.
간단하게 말하자면 AWS에서 원격으로 제어할 수 있는 가상의 컴퓨터를 한 대 빌리는 것이라고 생각하면 된다!
⚒️ EC2 인스턴스 생성하기
1. 인스턴스 시작
우선 EC2를 검색하여 AWS 사이트에 접속한 뒤, 인스턴스를 시작한 뒤, 서버 이름을 지정한다.
2. Ubuntu 선택하기
Ubuntu를 사용할 것이기 때문에 Ubuntu를 선택한다. 프리티어를 사용할 것이라면 프리티어인지 확인하기!
3. 인스턴스 유형 선택하기
이후 인스턴스 유형을 선택하면 된다. 테스트 용도로 사용할 것이라 프리티어인 t2.micro
를 선택했다. 유형은 필요에 따라 선택하면 된다.
4. 새 키 페어 생성하기
키 페어가 있다면 기존 키 페어를 선택하면 되고, 없다면 새로 생성하면 된다. 이때, 생성된 키 페어는 다운받아서 잘 보관하고 있어야 한다!
- 키 페어 유형:
RSA
- 프라이빗 키 파일 형식:
.pem
이후 다운받은 pem 키를 .ssh
폴더 안에 넣으면 된다. (경로: C 드라이브 → 사용자 → .ssh
폴더)
5. 보안 그룹 생성
네트워크 설정을 위해 보안 그룹을 생성한다. HTTP, HTTPS에서 접속하는 것을 모두 허용할 것이므로 다 선택했다.
+) 보안 그룹 설정은 변경할 수 있으니 필요시 수정하면 된다!
6. 로컬 스토리지 설정
처음에는 기본값으로 설정했지만, 기본값(=8GB)으로 설정하니 Jenkins가 은근 무거워서 멈췄다. 결국 프리티어에서 무료로 사용할 수 있는 최댓값(=30GB)으로 설정해서 인스턴스를 새로 만들었다.
그러니 Jenkins를 사용할 예정이라면 넉넉하게 잡는 것을 추천한다!
7. 고급 세부 정보
는 그대로 두었다.
8. 인스턴스 시작
선택한 결과를 확인한 뒤, 인스턴스를 시작하면 된다.
생성 완료된 것을 확인할 수 있다!
+) 결제 알림 설정
인스턴스를 생성하면 나오는 창에서 결제 알림을 선택하거나 결제 및 비용 관리 → 빌링 기본 설정
에서 결제 알림을 설정하자!
+) 탄력적 IP 설정
대부분 탄력적 IP를 설정했길래 나도 설정하려고 했다. 하지만 이제 탄력적 IP 설정만 해도 금액이 청구되는 관계로 그냥 사용하기로 했다. 인스턴스를 재시작하면 IP가 변경되는 불편함이 있지만 그정도야 뭐.. 그냥 귀찮음을 감수하면 된다.
탄력적 IP를 사용하는 이유
- AWS IP는 기본적으로 동적 IP ⇒ 인스턴스를 껐다 키면 새로운 IP 주소를 발급함
- 탄력적 IP를 사용하면 탄력적 IP로 들어오는 트래픽을 동적 IP로 자동 라우팅함
⇒ 즉, 탄력적 IP를 할당하면 IP가 변하더라도 새로 확인/변경하지 않아도 됨
📟 SSH 접속 방법
1. Git Bash 사용
Git Bash에 아래 명령어를 수행하면 SSH에 접속할 수 있다.
# SSH 접속
ssh -i [pem 키 위치] ubuntu@[퍼블릭 IP | 탄력적 IP]
# 예시
ssh -i ~/.ssh/test_server.pem ubuntu@[퍼블릭 IP | 탄력적 IP]
접속 완료!
2. EC2 인스턴스에서 접속하기
인스턴스 선택 → 연결 → 인스턴스 연결하기
순서로 클릭하면 된다.
3. 모바엑스텀으로 접속하기
초기 설정으로 한글 인코딩 설정을 해야 한다.
이후 사진과 같이 IP 주소를 적어주고 다운받은 pem 키 파일을 넣어주면 된다.
- Remote host: 리눅스 주소 (도메인 또는 IP)
- Specify username: 접속할 계정
- Port: SSH 접속 포트
- Execute command: 초기 접속 시 실행할 명령어 (선택 사항)
- User private key: 보안 키 사용 (선택 사항)
접속 완료!
🎯 마치며
이렇게 EC2 인스턴스를 생성하고 SSH에 접속하는 방법에 대해 알아봤다. 이제부터 Docker를 사용해서 배포 연습을 하고 정리해야 되겠다!