woowacourse-teams/2022-moragora

[ALL] 서비스 마이그레이션

Closed this issue · 2 comments

요구사항

  • 23년 이전에 프로젝트를 마이그레이션한다
    • production 우선
  • [cloud] 잠정적으로 필즈의 personal AWS EC2, RDS 사용

※ 팀과 얘기만 되었으며 세부 사항들은 논의되지 않았음 (...)

마이그레이션 진행 상황

현재 서비스 접근 가능

  • 2022.12.31 기준
    image

사용법

item value
id test-user@test.com
pw 1q2w3e4r!!

기타 문의는 필즈에게... :)

참고사항

실제 배포된 소스는 팀 프로젝트 것과는 다소 다릅니다 !

(단, 기능상 차이는 없어요)

이 곳(개인 리포 - Neo 브랜치)의 소스코드가 배포된 것이에요..

이렇게 한 이유는 팀 프로젝트를 수정하지 않기 위해서도 있고 세세한 설정 작업까지 논의할 필요가 굳이 없다고 생각해서 입니다...

완료된 사항

  • AWS EC2 생성
    • pem키 생성
  • Docker Container 생성
    • OS 설정: Ubuntu 22.04 (Debian)
    • JDK, NginX 설치
  • Jar 배포 후 실행 확인 (by curl)
  • 기존에 우아한테크코스에 있었던 정보들 백업
    • DB - Prod Data Dump (DDL, Insert SQL)
    • Nginx - (Prod, Dev) - (FE, BE): Shell, Config
    • Jenkins - (FE, BE): Shell, Pipeline
    • WAS: Shell
    • Redis command history
    • Locust Script
  • DB
    • 외부 접근 허용
    • 테이블, 유저 생성, 권한 부여
    • Dump Data 옮김
  • Nginx 설정
    • 리버스 프록시 (backend)
    • 정적 파일 제공 (frontend)
    • HTTPS 적용
  • Redis Setup
  • FrontEnd 환경 설정
    • .env 파일 수정
  • BackEnd
    • neo-application yml 파일 생성 및 적용
    • URI 변경 ("/api" 접두사 추가)

포기한 것

  • 도커 컨테이너 이미지화
    • 이유: 지속되는 server down (사양 문제로 추측)
    • 추후 여건이 되면 제공할 수 있음!

마이그레이션 개요

  • 서버

    • AWS Free Tier
    • ubuntu 2.micro
      • vCPU 1 2.5 GHz
      • RAM 1 GiB
      • i386, x86_64 (not ARM)
  • Reverse Proxy (HTTPS)

    • FE Files (HTML, CSS, JS, img ...)
    • BE 요청 중계 설정
    • HTTPS/DNS
  • BE WAS Setup

    • JDK 11
  • FE Setup

    • npm 등
  • RDBMS Setup

    • MySQL

마이그레이션시 제외하는 것

  • CD 자동화
    • Jenkins
  • 정적분석툴
    • SonarQube

제외에 대한 이유

  • 툴이 동작하는 것이 무겁기 때문에 서버가 중단될 위험이 있음
  • 수료 후 길어지는 배포 주기를 고려하면 수동 배포를 하더라도 product 관리 가능할 것으로 보임

기록들

삽질 히스토리
https://progress0407.github.io/backend/2022/12/20/moragora-migration.html
https://progress0407.github.io/backend/2022/12/30/moragora-migration-2.html

기한

2022.12.31

마이그레이션 늦어서 미안해요... :)
(기한을 올해로 정했는데 사실은 안 늦은건가)
(특히 프론트 친구들 ㅠㅠ)

문의사항은 제게 연락 주시면 답장 드릴게요 : )

서버 유지는 내년 여름까지만 (대략 6~8월경) 할게요 :)