이전 글에 이어서 두번째 배포 블로깅!
http에서 https로 전환하는 과정을 살펴보자!
https를 위해서는 SSL 인증서 설치가 필요하다.
AWS는 CDN(CloudFront)에 SSL 인증서를 등록해줘야하며, ACM에서 발급이 필요하다.
certificate ID 클릭 - create records in Route 53 - create recoreds
Route 53에서 인증 확인하기
- origin domain : S3 주소 (option으로 뜨는 주소는 틀린 주소이므로, S3 - properties 맨 아래 주소를 복사해서 붙여 넣어줘야 한다.)
- path pattern : 정적, 동적 주소 설정 (지금은 아직 정적 파일만 설정 중이므로 default 값 그대로!)
- viewer protocol policy : Redirect HTTP to HTTPs (http로 접속하면 https로 자동 전환하여 접속하도록 설정!)
- Allowed HTTP methods : GET, HEAD, OPTIONS, PUT, POST, ...
- Alternate domain name(CNAME): 도메인 주소 입력
- Custom SSL certificate : 발급받은 SSL 선택
create distribution - details - Distribution domain name 주소가 domain 주소!
-> 해당 domain주소는 길이가 너무 길고 복잡하므로, 간단한 domain주소로 수정이 필요하다.
Route53 - hosted zones - domain name
A record 선택 - edit record - Route traffic to
Alias to CloudFront distribution
하단 주소 삭제 후 재선택 (자동완성 된다!)
지금까지의 과정은 모두 S3에 파일을 올린 상태이다. 따라서 router.query.boardId 등이 필요한 동적인 페이지는 찾을 수 없게 된다.
동적 페이지를 배포하기 위해서는 EC2, LB가 필요하다.
Name: 아무거나 입력
key pair : default value 선택
git clone 주소 - 계정명 입력 - 비밀번호 입력
(비밀번호는 컴퓨터 비밀번호가 아닌, 키체인 접근 - github.com - 암호보기 에 뜨는 암호를 복사해서 붙여 넣어줘야 한다.)
curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash
sudo yum install -y nodejs
sudo npm install -g yarn
yarn install --production
yarn build
yarn start
Type: custom TCP
part range: 3000
source: 0.0.0.0/0
Load balancer name : 아무거나
Mappings : 내 EC2가 설치된 지역을 포함하여 2개 선택
Listener
create target group
- Target group name : 아무거나
- Port : 3000
Next - 생성된 Instance 체크 - Include as Pending below - create target group - 생성한 target group 선택
create load balancer
LB 선택 - Security - 파란색
Inbound rules - Edit Inbound rules
add rule - HTTP - 0.0.0.0/0 - save rules