본문 바로가기
AWS

DevOps Day 30 (4.17) AWS_Sprint 3 Tier 아키텍처 배포

by Jackykim 2023. 4. 18.

1. Github 에서 Repository 내용 Fork 후 git Clone하여 local 컨퓨터에 저장
2. 폴더에 있는 Client / Server에 각 npm install 로 dependencies 설치
3. Client 폴더 들어가서 npm run build -> unsupported 내용 표시하여 nvm install 16.13.1
다시 npm run build 하면 client 폴더안에 Build 폴더 생성
4. AWS S3 버킷 생성
 - 객체에 Client build 폴더 내용 모두 업로드

- 속성 옵션에 들어가 정적 웹 사이트 호스팅 편집에서 활성화 선택 후 index.html로 설정

 - 권한 들어가서 퍼블릭으로 설정 후 버킷 정책 설정
 - 청책 생성기 -> S3 Bucket policy 선택 -> principal “*” 사용 (모무 허용)
 - ARN은 속성 Amazon 리소스 이름 복사 하여 추가 후 Keyword /* 필수 추가

 - Add statement 후 Generate Policy 하면 JSON 코드가 생성 하여 복사

- 버킷 정책에 JSON 정책 붙어 놓고 저장

 - 다시 속성 정적 웹 사이트 호스팅 맨 하단 링크에 들어가면 페이즈 하나가 생깁니다.

5. Client 폴더에 .env 파일 작성

6. EC2 인스턴스 생성 하고 연결 진행 -> SSH 프로토콜 사용시 .pem key는 로컬 폴더에 저장이 필수이며 chmod 400 / ssh 층으로 EC2 ubuntu에 접속

7. EC2 가상 컴퓨터에서 개발 환경 (git, node, 등) 설치 및 구성 위해 내용 git clone
단 git clone 진행시 Permission denied 경우 github settings -> Developer setting에 들어가 Token (classic) 부여 받아야 합니다.

8. Github에서 SSH가 아닌 HTTP code 으로 git clone 하면 이상 없이 진행 됩니다. Server 폴더로 들어가서 npm install + sudo node app.js 진행 하면 서버가 구측 됩니다.

 

EC2 생성 후 설치 참고 내용 (문제 있을 경우)

 

#!/bin/bash
# Ec2에 nvm 설치 후 node lts 설치
# sudo 문제 해결을 위한 npm 설치
# 실행완료 후 git clone 이후 작업 실행할 것

sudo apt-get update
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"

[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
nvm install –lts
# sleep 5
sudo apt-get install npm -y

 

(EC2 Ipv4 주소에 내용이 뜹니다)

9. EC2 + S3 작성 다 완료 하고 로그인 확인 되면 RDS 데이터베이스 생성
10. RDS 데이터베이스 생성 시 :
 - MySQL 선택

- 프리 티어 선택
 - 암호 설정
- EC2 연결 안함 + IPv4 선택 + 퍼블릭 엑세스 아니요 필수 기입

- 기존 VPC 보안 그룹에서 가장 최근 내용 (launch-wizard 3) 선택
- 선택 완료하면 데이터베이스 생성

 

11. EC2 인스턴스 Server 폴더 들어가서 .env 파일 생성

12. .env 생성 후 AWS EC2 브라우저에서 보안에 들어가 포트 3306 (데이터베이스)가 있는지 확인 하고 없으면 인바운드 규칙 추가해서 3306 포트 0.0.0.0/0으로 추가

13. 모든 EC2, S3, RDS 연결 완료 됐으면 모든 페이지 F5 (refresh) 후 S3 bucket 다시 로그인 하면 데이터베이스 연결이 성공했다는 메시지가 뜹니다. 하단 메시지가 나오면 완료입니다.

'AWS' 카테고리의 다른 글

DevOps Day 31 (4.18) AWS_서비스 노출  (0) 2023.04.20
DevOps Day 31 (4.18) AWS_수평확장  (0) 2023.04.20
DevOps Day 30 (4.17) AWS_VPC  (0) 2023.04.18
DevOps Day 29 (4.14) AWS - RDS  (0) 2023.04.14
DevOps Day 29 (4.14) AWS - Storage  (0) 2023.04.14