WAS 서버 프로젝트 폴더에서 npm i @fastify/mongodb 명령을 통해 mongoDB 플러그인 설치
// /plugins/mongodb.js 파일 생성 후 아래 코드 생성'use strict'constfp=require('fastify-plugin')const{MONGO_HOSTNAME,MONGO_USERNAME,MONGO_PASSWORD}=process.envmodule.exports=fp(asyncfunction(fastify,opts){constURL=`mongodb://${MONGO_USERNAME}:${MONGO_PASSWORD}@${MONGO_HOSTNAME}:27017/?authMechanism=DEFAULT`console.log(URL)fastify.register(require('@fastify/mongodb'),{forceClose:true,URL:URL})})
Fastify(WAS) → MongoDB 접속 시 접속 정보를 암호화 하여 보안을 강화 필요 SecretManager로 키/값을 암호화
Milestone_06
서버 애플리케이션의 HTTPS 적용
리스너 수정 (HTTP → HTTPS)
WAS의 부하분산을 해주는 ALB에서 SSL/TLS 인증서를 추가하여 설정
Milestone_07
FrontEnd 배포 자동화
실습용 Frontend Repository master branch 에 push시 npm run build → S3 자동배포(GitHub Action)
name:Node.js CI, AWS S3 CDon:push:branches:["master"]jobs:build:runs-on:ubuntu-lateststrategy:matrix:node-version:[18.x]# See supported Node.js release schedule at https://nodejs.org/en/about/releases/steps:-uses:actions/checkout@v3-name:Use Node.js ${{ matrix.node-version }}uses:actions/setup-node@v3with:node-version:${{ matrix.node-version }}cache:'npm'-run:npm install-run:npm run build || exit 0-name:Configure AWS Credentialsuses:aws-actions/configure-aws-credentials@v2with:aws-access-key-id:${{ secrets.PCK_AWS_ACCESS_KEY_ID }}aws-secret-access-key:${{ secrets.PCK_AWS_SECRET_ACCESS_KEY }}aws-region:ap-northeast-2-name:Copy files to the production website with the AWS CLIrun:| aws s3 sync ./build s3://bigheadck-front
Milestone_08
CloudFront에서 아래와 같이 배포 생성
생성이 완료 되면 CNAME 레코드로 해당 Cloudfront 주소로 레코드 추가
Milestone_09
FrontEnd → Fastify(WAS) 연결시 CORS 에러 해결
// /plugins/cors.js 파일 추가하여 아래 코드 삽입'use strict'constfp=require('fastify-plugin')module.exports=fp(asyncfunction(fastify,opts){fastify.register(require('@fastify/cors'),{origin:"www.domain.click",methods: ['GET','POST']})})