EC2

AWS EC2 상에 Nginx로 리액트 프로젝트를 배포했던 경험 정리를 위한 글. 이전에 서브 도메인에 SSL 인증까지 마쳤다. 그걸 그대로 사용할 예정이다. [Nginx] 서브 도메인 설정, HTTPS 적용 참고1 참고2 'dev.9yujin.shop' 그리고 'prod.9yujin.shop' 이렇게 두 개의 서브 도메인을 만들어보자. 1. 가비아 DNS 레코드 수정 가비아에서 먼저 CNAME으로 서버 도메인을 등록해준다. dev와 prod 두개를 생성. 9yujin.tistory.com React 파일 빌드, 서버 업로드 yarn 패키지 매니저를 쓰고 있었다. 프로젝트 파일을 빌드해준다. yarn build 파일질라를 이용해 EC2에 빌드한 파일을 업로드했다. 경로는 /home/ubuntu/test/..
참고1 참고2 RDS는 EC2와 함께 사용하며 아마존에서 제공하는 기능을 편하게 이용할 수 있게 해주는 DB전용 서버이다. 1. RDS 생성 1) RDS 인스턴스를 생성하고 MySQL, 프리 티어를 선택한다. 2) 마스터 사용자 이름과 새 VPC 보안 그룹, 초기 데이터베이스 이름 등을 지정해준다. 3) 퍼블릭 액세스를 '예'로 설정한다. 설정을 모두 완료하고 '생성 중' 상태로 몇분 기다리면 RDS 생성이 완료된다. 2. EC2에서 RDS 접근 1) 인바운드 규칙을 수정한다. 사용하는 EC2 보안그룹의 그룹ID를 복사해서 넣는다. 처음엔 현재 접속한 IP만 열려있다. 2) EC2에서 다음의 명령어를 실행하여 RDS 인스턴스에 접근한다. sudo mysql -u [사용자 이름] -p -h [RDS인스턴스..
참고1 참고2 'dev.9yujin.shop' 그리고 'prod.9yujin.shop' 이렇게 두 개의 서브 도메인을 만들어보자. 1. 가비아 DNS 레코드 수정 가비아에서 먼저 CNAME으로 서버 도메인을 등록해준다. dev와 prod 두개를 생성한다. 2. 서브도메인 페이지 정적 파일 생성 1) 서브도메인으로 요청이 들어오면 보여줄 파일들을 넣어둘 디렉토리를 만든다. 기존 /var/www/html 에 추가로 /var/www/dev 과 /var/www/prod 디렉토리를 만들었다. 2) /var/www/dev에 html 파일을 임시로 작성해준다. hello dev-subdomain 3. Nginx 설정 1 1) /etc/nginx/sites-available 디렉토리에 서브도메인을 위한 설정 파일을 만..
참고1 1. 도메인 연결 이전에 가비아에서 구매를 해놓고 안쓰는 도메인이 있어서, 그 도메인에 내 IP를 연결했다. 10분 정도 기다리면 내 도메인과 IP가 매칭이 된다. 2. Certbot 설치 (Let's Encrypt) Let's Encrypt는 SSL 인증서를 무료로 발급해 HTTPS를 널리 보급하기 위해 시작된 비영리기관이다. 직접 PEM key들을 발급받아서 설정해주어도 되지만 많이 번거롭기 때문에, 웹서버에 쉽게 세팅할 수 있도록 도와주는 도구들이 있다. wget으로 Certbot-auto를 다운받아 설치하는 블로그들을 보고 따라했는데 해당 파일이 존재하지 않는다. 대신 snap으로 Certbot을 설치할 수 있다. apt와 비슷한(?) 패키지 관리 시스템이다. snap을 실행하기 위해 sn..
참고1 참고2 1. MySQL 설치 sudo apt install mysql-server 2. 사용자 추가 1) root 계정으로 mysql에 접속한다. sudo mysql -u root -p 2) 'rising' 사용자를 생성한다. host를 '%' 로 주면 모든 외부 IP에서 접속할 수 있다. mysql> create user 'rising'@'%' identified by '1q2w3e4r'; 3) 결과 확인 mysql> use mysql; mysql> select user, host from user; 'mysql' 데이터베이스로 전환한다. user 테이블에서 user와 host를 조회한다. 3. DB 생성 1) 'risingdb' 데이터베이스를 생성하고 권한을 부여해준다. mysql> creat..
인스턴스를 생성하고 Ubuntu 18.04를 선택한다. 1. 인바운드 규칙 설정 22번(SSH) 포트 외에도 80번(HTTP)와 3306번(MYSQL) 포트를 열어준다. 2. 탄력적 IP 설정 탄력적 IP를 설정해주지 않으면 인스턴스를 끄고 켤때마다 IP가 바뀐다. 탄력적 IP를 생성하는 것은 무료이지만 인스턴스와 연결해두지 않으면 과금이 생길 수 있으니 주의한다. 3. 터미널에서 서버에 접속 finder에서 키페어 파일을 터미널로 드래그해서 놓으면 바로 키페어의 위치가 입력이 된다. 키페어의 접근 권한을 바꿔준다 (4/0/0 : 파일 소유자의 읽기 권한 부여) sudo chmod 400 [키페어 위치]​ SSH로 접속한다 ssh -i [키페어 위치] ubuntu@[IP]​ 4. 파일질라로 접속해보기 파..
한규진
'EC2' 태그의 글 목록