AWS 배포하기 : EC2
내배캠 과제를 하면서 AWS 배포 방법을 배웠다...
혹시 캠프 후 잊어버릴까봐 정리해둠.
1. AWS 콘솔화면
1) AWS 로그인
https://console.aws.amazon.com/console/home
console.aws.amazon.com
2) Region 선택
- EC2 Instance가 켜질 지역을 선택한다.
- 접속 지역과 가까울수록 속도가 빠르다.
2. EC2 Instance 생성
1) EC2 서비스 페이지
상단의 검색창에 EC2 입력 후 서비스 탭에서 클라우드의 가상 서버라고 적힌 EC2를 클릭해준다.
2) 인스턴스 시작 페이지로 이동
3) 애플리케이션 및 OS 이미지 선택
Ubuntu로 배포할 예정이기 때문에 Ubuntu, Ubuntu Server 22.04 LTS(HVM)
선택
4) 인스턴스 유형 선택
프리 티어 사용 가능<이라고 적혀있는 t2.micro 타입을 선택
다른 타입 선택하면 요금 나옴!
5) 키 페어 다운로드
- 새 서비스일 경우 '새 키 페어 생성' 선택
- 키 페어 이름 자유롭게 지정
- 키페어 유형 : RSA
- 프라이빗 키 파일 형식 : .PEM
서버에 접속하려면 키페어가 있어야 한다. 파일이 없어지면 재발급 불가하니 해당 인스턴스가 삭제되기 전까진 잘 보관해놓자.
3. 인스턴스 시작 후...
1) 보안 설정하기
SSH(Secure Shell)를 이용해야 한다.
EC2 Instance의 기본 포트는 22번
여기에서 추가적으로 열어 줄 포트를 입력한다. (예 : 3000번)
SSH(Secure Shell) : 다른 컴퓨터에 연결할 때 사용되는 프로그램
- Mac의 경우
SSH가 기본적으로 지원된다. 터미널을 열어보자.
# 키페어를 다운로드한 폴더로 접근
cd Download
# keypair.pem 파일의 권한을 읽기만 가능하도록 수정
sudo chmod 400 keypair이름.pem
이렇게 키페어의 접근 권한을 바꿔준 뒤에
ssh -i 받은키페어위치(끌어다놓으면됨) ubuntu@AWS의 퍼블릭아이피
이러면 bash에서 접속할 수 있다.
- Windows의 경우
git bash라는 프로그램을 설치, 동일하게 입력해주면 된다.
ssh -i 받은키페어위치(끌어다놓으면됨) ubuntu@AWS의 퍼블릭아이피
2) 서버 실행 후에는?
이제 git clone으로 내 프로젝트를 원격 저장소에서 가져오면 된다.
# 프로젝트 가져오기
git clone <Github Repository URL>
# 해당 프로젝트 폴더로 이동
cd <Project Name>
# 나는 yarn으로 패키지를 관리할 예정이기 때문에 yarn을 전역으로 설치함
# -g 를 붙이면 global로 설치된다.
sudo npm install -g yarn
# 원격 저장소에서 가져온 프로젝트의 패키지를 설치해줌
yarn install
yarn
4. 웹사이트 접속
https://console.aws.amazon.com/console/home
console.aws.amazon.com
- 보안 탭을 선택한 후, 보안 그룹 링크로 들어간다.
- 인바운드 규칙 편집을 클릭한다.
- AWS EC2에서 인바운드 규칙을 설정하는 것은 인스턴스로 들어오는 트래픽을 제어하는 중요한 부분이다.
- ‘규칙 추가’ 버튼을 눌러 아래의 정보를 추가로 입력한다.
- 유형: 사용자 지정 TCP
- 포트 범위: 내 프로젝트 포트 번호
- 소스: Anywhere-IPv4 (모든 IPv4 주소에서 오는 트래픽을 해당 포트로 허용하겠다는 의미)
- 아이피와 포트 번호를 잘 확인해서 입력하자. 이 화면은 기본적으로 사용자가 특정 유형의 트래픽(여기서는 사용자 지정 TCP)을 특정 포트 번호로 허용하기 위해 인바운드 규칙을 추가하기 위해 사용된다. 나는 수익성도 뭣도 없는 공부용 작은 프로젝트여서 모든 아이피에 전부 열어놨었지만 실제 프로젝트에선 보안이 매우 중요하기 때문에 이렇게 하면 안 된다고 한다...
이렇게 서버 방화벽 설정도 마치면 내 프로젝트에 접속 가능하게 된다. 배포가 끝났다!
'INFO' 카테고리의 다른 글
내 프로젝트에 TypeScript 설치하기 (0) | 2024.03.06 |
---|---|
Docker로 로컬에서 MySql 사용하기 (0) | 2024.02.26 |
내 프로젝트에 pm2 설치하기 (0) | 2024.02.23 |
내 프로젝트에 Node.js 설치하기 (0) | 2024.02.22 |
리눅스 기본 명령어 몇 가지 (1) | 2024.02.22 |