| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
- 정렬
- react
- 후기
- JavaScript
- 백준
- 개발자국비지원
- 알고리즘
- 그리디
- 프론트엔드학원
- spring boot
- 리액트
- 엘리스트랙
- 스프링부트
- 프론트엔드
- 온라인코딩학원
- 리액트네이티브강좌
- 엘리스트랙후기
- 프로그래머스
- 내일배움카드코딩
- 백엔드
- 개발자부트캠프
- 온라인코딩부트캠프
- 브루트포스
- 엘리스
- 웹개발
- 부트캠프
- 코딩테스트
- C++
- Web
- 온라인코딩
- Today
- Total
All Night Coding
[AWS] EC2에 프로젝트 배포하기(1) - AWS EC2 프리티어 인스턴스 생성 본문
최근 진행 중인 프로젝트에서 배포를 맡아서 해야 할 상황이 생겼는데.. 처음 경험해보는 것이라 기록으로 남겨두고자 한다.
먼저 EC2란 무엇이며, 어떻게 인스턴스를 생성하는지와 ssh를 연결하는 방법에 대해서 알아보자.
EC2란?
Amazon Elastic Compute Cloud(Amazon EC2)는 Amazon Web Services(AWS) 클라우드에서 확장 가능 컴퓨팅 용량을 제공합니다. Amazon EC2를 사용하면 하드웨어에 선 투자할 필요가 없어 더 빠르게 애플리케이션을 개발하고 배포할 수 있습니다.
참고 - AWS 공식문서
EC2는 AWS에서 제공하는 클라우드 컴퓨팅 서비스다.
이 서비스를 통해서 아마존이 각 세계에 구축한 데이터 센터의 서버용 컴퓨터들의 자원을 원격으로 사용할 수 있다. 쉽게 말해, 아마존으로부터 한 대의 컴퓨터를 임대하는 것이다. AWS가 제공하는 URL(Public DNS)를 통해 이 컴퓨터에 접근할 수 있다.
EC2의 장점은 다음과 같다.
- 용량을 늘리거나 줄일 수 있다. (탄력성)
- 사용한 만큼 지불하므로 저렴하다.
- 사용자가 인스턴스를 완전히 제어할 수 있다.
- 보안 및 네트워크 구성, 스토리지 관리가 효과적이다.
이제 인스턴스를 생성해서 AWS를 이용한 프로젝트 배포를 진행해보자.
1. 인스턴스 생성
1-1. 국가 설정

국가를 아시아 태평양(서울)로 먼저 설정해준다. 설정한 국가와 사용자들이 주로 접속한 국가가 서로 멀 경우 느려질 수 있다고 하니, 웬만하면 현재 거주 중인 국가로 설정하도록 하자.
1-2. AWS EC2 접속

1-3. 인스턴스 시작

1-4. 원하는 AMI 선택

여기서 주의할 점은 프리 티어 사용 가능이라는 저 문구가 뜨는지를 확인해야 한다. 그렇지 않으면 요금이 발생될수도 있으니 주의해서 선택하고, 원하는 OS를 골라 선택하면 된다.
1-5. 키 페어 생성

EC2 서버로 접속하기 위한 인증서인데, 잃어버리면 다신 접속할 수 없으니 꼭 기억해두도록 하자.
나는 보안된 폴더인 ./ssh 폴더에 해당 키체인을 저장해 두었다.
1. 다운로드 폴더에 저장된 키체인을 ./ssh 폴더로 이동
mv ~/Downloads/키이름.pem ~/.ssh/키이름.pem
2. 해당 키체인의 권한 설정
chmod 400 ~/.ssh/키이름.pem
1-6. 네트워크 설정

HTTPs, HTTP 접근을 위해 두 체크박스를 모두 선택해서 포트를 열어주었다.
1-7. 스토리지 구성

프리티어 요금제는 최대 30GB까지 스토리지 용량을 설정할 수 있다. 기본 설정은 8GB인데, 가능한 많은 스토리지 용량을 확보하기 위해 30GB로 설정해주자.
모든 설정 완료 후 인스턴스 시작 버튼을 클릭하면 인스턴스가 잘 생성된다!
2. 보안 그룹 설정
2-1. 보안 그룹 클릭

생성된 인스턴스를 클릭 후 보안 탭으로 들어가면 이렇게 보안 그룹이 뜬다.
여기서 보안 그룹이라 적힌 파란색 글씨를 클릭한다.
2-2. 인바운드 규칙 설정

이러한 화면이 뜨는데 여기서 인바운드 규칙 편집 버튼을 클릭한다.

새로운 규칙을 추가해준다. 나같은 경우는 백엔드 서버 포트가 8001번이기 때문에 8001번으로 설정해두고, 0.0.0.0/0으로 모든 IP에서 액세스할 수 있도록 설정해주었다.
3. 탄력적 IP 할당하기
처음 EC2 인스턴스를 만들게 되면, 탄력적 IP가 할당되어 있지 않은 상태이다.
여기서 탄력적 IP란, 바뀌지 않는 고정적인 IP를 뜻한다. 따라서 해당 설정이 되어있지 않으면 EC2 재시작 시 IP주소가 바뀌게 된다.
그래서 EC2를 재시작 하더라도, IP주소가 변하는 것을 막기 위해 탄력적 IP 할당을 진행할 것이다.
주의점은 탄력적 IP를 연결했다가 EC2와 연결을 끊으면, 해당 탄력적 IP 역시 꼭 삭제를 해야 한다는 것이다.
그렇지 않으면 요금이 발생할 수 있다.
3-1. 탄력적 IP 주소 할당

왼쪽 탄력적 IP 클릭 > 탄력적 IP 주소 할당 버튼을 클릭한다.

체크된 대로 그대로 진행하고 할당 버튼을 클릭한다.
3-2. 탄력적 IP 주소 연결

탄력적 IP 주소 연결 버튼 클릭

인스턴스를 연결시켜주고, 연결 버튼을 누르면 탄력적 IP 주소가 할당된다!!
4. 인스턴스에 연결하기
4-1. 인스턴스 ID 선택

해당 인스턴스 ID를 체크박스로 선택 후, 상단의 연결 버튼을 클릭한다.
4-2. SSH 클라이언트 연결 방법으로 연결

ssh -i [프라이빗 키(.pem)경로] [AMI의 사용자 이름]@[인스턴스의 퍼블릭 DNS]
터미널에 다음과 같이 복사하여 명령어를 입력한다.

이렇게 ubuntu로 연결이 잘 되면 성공이다!
5. 패키지 설치하기
이제 ubuntu 환경에서 node, git, yarn을 설치해야 한다.
sudo su
root 권한으로 전환하기 위해 해당 명령어를 입력한다.
5-1. yarn & node.js 설치
$ curl -o- -L https://yarnpkg.com/install.sh | bash
$ source ~/.bashrc
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
$ . ~/.nvm/nvm.sh
$ nvm install node
$ node -e "console.log('Running Node.js ' + process.version)"
명령어들을 차례대로 입력해 yarn과 node.js를 설치한다.

Running Node.js ~ 해당 문구가 나오면 성공이다.
5-2. git 설치
sudo apt update // 초기 패키지 업데이트
sudo apt install git
차례대로 명령어들을 입력해 git을 설치해준다.
git clone [url] // SSH git url 입력
SSH 주소를 입력하여 git clone을 하면 완료!
'Bootcamp' 카테고리의 다른 글
| [엘리스 SW트랙 6기] 2차 프로젝트 회고록 + 수료 후기 (0) | 2023.12.22 |
|---|---|
| [AWS] EC2에 프로젝트 배포하기(2) - Nginx 설정과 오류 해결 (0) | 2023.11.05 |
| [엘리스 SW트랙 6기] 1차 프로젝트 회고록 (0) | 2023.10.22 |
| [엘리스 SW트랙 6기] 7주차 회고록 (0) | 2023.09.24 |
| [엘리스 SW트랙 6기] 6주차 회고록 (0) | 2023.09.17 |