AWS EC2, RDS(MySQL), S3 + React + Express 연동하기(1)
in Daily on Daily
최근에 과제로 AWS EC2와 MySQL, React 그리고 Express를 사용해서 프로젝트를 만들 기회가 생겼다.
React는 어느정도 익숙했지만 EC2를 사용해서 이것저것 설정하고 배포하고 많은 어려움을 겪었는데 차근차근 다시 정리해보려한다.
AWS EC2 시작하기
- 먼저 계정을 만들고, AWS 서비스 중 EC2로 들어간다.
처음 가입했다면 프리티어 기간으로 1년 동안 무료로 서비스를 사용할 수 있다.
12개월 프리 티어에 해당하는 서비스를 사용하면 고객이 계정을 생성한 날부터 1년 동안 지정된 한도 내에서 제품을 무료로 사용할 수 있습니다. 참고링크-프리티어 FAQ
- 인스턴스 시작을 누른 후 AMI를 선택한다.
- Ubuntu Server 18.04 선택
- t2.micro (프리티어) 선택
- 인스턴스 구성 (다음)
- 스토리지 (다음)
- 키
Name
값사용자이름
- 보안 그룹 이름과 설명 적기
- 보안 그룹 규칙 추가하기
pem이 없다면 새로 생성 후 절대 절대 잃어버리지 않도록 잘 보관!!
- 인스턴스 접속하기
인스턴스 페이지로 들어가서 만들어진 인스턴스를 누른 후 연결을 클릭
SSH 클라이언트 클릭
ssh -i "blahblah.pem" ubuntu@ ~~
// 'pem 키가 있는 경로' 에서 터미널에 입력 후 엔터
그러면 인스턴스에 접속이 된다.
RDS 연동하기
인스턴스를 생성하고 시작하는 것은 마무리했다.
이제는 생성한 인스턴스에서 사용할 데이터베이스를 구축해보자.
AWS에서는 손쉽게 데이터베이스를 사용할 수 있게 RDS라는 서비스를 제공해준다.
- 표준 생성
- MySQL 선택
- 프리티어 선택
- 식별자 이름 및 사용자와 암호를 설정해준다.
마스터 사용자 이름과 암호는 나중에 EC2에서 MySQL에 접속할 때 필요하니 기억해준다.
DB 인스턴스 클래스에서는 ‘이전 세대 클래스를 포함’을 클릭
마지막으로 연결 섹션에서 추가 연결 구성을 열고 보안 그룹을 EC2의 보안그룹과 같은 그룹으로 선택.
그리고 DB를 생성합니다.
EC2 사용을 위한 보안 그룹 설정
EC2에서 RDS를 사용하기 위해서는 보안 그룹을 설정을 할 필요가 있습니다.
EC2에서 보안 그룹 선택 후 인바운드 규칙에 들어갑니다.
인바운드 규칙 편집을 선택
그리고 규칙 추가를 통해 Mysql/Aurora를 선택하고 포트는 3306으로 지정해줍니다.
주소는 현재 보안그룹의 ID를 입력하고 저장합니다.
접속
# ec2 콘솔
$ sudo apt-get update
$ sudo apt-get install mysql-server
# RDS 서비스 페이지에서 DB를 클릭 후 엔드포인트를 확인 할 수 있다.
$ mysql -u development -p -h {rds_enpoint}
Enter password: # 패스워드 입력
S3 사용하기
- ec2 페이지로 들어간 후 인스턴스에서 S3를 사용할 인스턴스를 우클릭
- 보안 - IAM 역할 수정으로 들어감
- IAM 역할을 생성
- 사용 사례 EC2 클릭
- AmazonS3FullAccess를 선택
- 이름과 역할 설정
- EC2 IAM 역할에 방금 만든 S3를 선택하고 저장
사용할 데이터는 S3 페이지에서 직접 업로드하거나 수정이 가능하다.
아직 ec2에 접속해서 관리하는 법은 몰라서 추후 공부가 더 필요하다.