Computer Science/CI&CD 18

[CI/CD] Nginx를 사용한 https 적용 방법

AWS EC2 서버 배포는 완료되었지만 해당 URL은 http의 형태이다.프론트와 서버 연결을 위하여 https 형태의 배포가 필요했다. 1. 도메인 구매하기내도메인.한국 (https://xn--220b31d95hq8o.xn--3e0b707e/)원하는 도메인 검색 후 도메인 등록설정고급 설정 (DNS)IP연결(A)AWS EC2 URL넣어주기수정 완료   2. AWS EC2 설정: 인바운드 규칙 추가 EC2- 보안 그룹- 인바운드 규칙 편집보안 그룹 규칙 1유형HTTP프로토콜TCP포트 범위80소스0.0.0.0/0보안 그룹 규칙 2유형HTTPS프로토콜TCP포트 범위443소스0.0.0.0/0보안 그룹 규칙 3유형SSH프로토콜TCP포트 범위22소스0.0.0.0/0보안 그룹 규칙 4유형사용자 지정 TCP프로토콜T..

[CI/CD] AWS EC2 + Docker + Github Actions 를 이용한 자동 배포 구축

이전에는 AWS Elastic Beanstalk으로 배포를 해봤다가이번엔 AWS EC2와 Docker를 사용하여 아예 다른 방식으로 배포를 하게 되어 적어본다!  나는 항상 로컬에서 Jar 파일 실행과 도커 컨테이너 실행까지 해보고 나서 문제가 없음을 확인한 후, 배포를 시작한다.  Jar 파일 생성 및 실행Gradle- Tasks- buildbootJar 더블 클릭build- libs~SNAPSHOT.jar 파일 생성 완료jar 파일 실행하여 확인 도커 컨테이너 실행Dockerfile 작성 (프로젝트 루트 위치)FROM openjdk:17-jdkLABEL maintainer="yubin"ARG JAR_FILE=build/libs/*.jarADD ${JAR_FILE} app.jarENTRYPOINT ["..

[CI/CD] 도커 데스크탑 무한 로딩일 때 (Docker Desktop - Unexpected WSL error, Error: 0x80070002)

도커 데스크탑 무한 로딩일 때 (Docker Desktop - Unexpected WSL error, Error: 0x80070002) 오랜만에 곧 배포할 일이 생겨 먼저 도커 컨테이너 실행까지만 해보려고 도커 데스크탑을 켰다.도커 데스크탑을 작년에 키고 오랜만에 켜서 그런지 도커 데스크탑 무한로딩이 걸리면서 에러창이 뜨는거다.  Docker Desktop - Unexpected WSL error 이 뜨길래 WSL이 안 깔려있는 줄 알고 확인  WSL은 깔려 있고, 실행이 안되는 듯 하다. 그리고 재시작을 해도 Running이 안됨.  또 검색하니 가상화 환경 되있는지 확인? 근데 작년까지 도커 데스크탑 잘 썼었고, 확인해도 체크 잘 되어있었다. 그 후 도커 데스크탑 삭제 및 재설치WSL 삭제 및 재설치..

[CI/CD] AWS RDS DB 생성, 설정, 접속

RDS 생성RDS 대시보드로 이동데이터베이스 생성 클릭표준 생성 선택엔진 옵션엔진 유형MySQL 선택엔진 버전 선택템플릿프리 티어 선택설정DB 클러스터 식별자DB 이름 작성마스터 사용자 이름root자격 증명 관리자체 관리 선택마스터 암호, 암호 확인 입력인스턴스 구성db.t3.micro 선택연결퍼블릭 액세스예 선택데이터베이스 생성 클릭  RDS 설정RDS 운영환경에 맞는 파라미터 설정파라미터 그룹으로 이동파라미터 그룹 생성파라미터 그룹 이름, 설명 작성엔진 유형MySQL Community Edition파라미터 그룹 패밀리mysql8.0유형DB Parameter Group생성 버튼 클릭생성한 파라미터 클릭 후 편집 이동파라미터 필터링에 time_zone 검색값에 Asia/Seoul 추가변경 사항 저장파라미..

[CI/CD] AWS EC2 인스턴스 생성, 접속, 설정, 스프링부트 프로젝트 배포

EC2EC2란? (Elastic Compute Cloud)성능, 용량 등을 유동적으로 사용할 수 있는 서버  EC2 인스턴스 생성EC2 대시보드로 이동이름 및 태그이름 작성애플리케이션 및 OS 이미지Amazon Linux 클릭Amazon Machine Image(AMI)Amazon Linux 2 AMI (HVM) - Kernel 5, 10, SSD Volume Type 클릭아키텍쳐64비트(x86)인스턴스 유형t2.micro 클릭키 페어(로그인)키 페어 이름 작성키 페어 유형RSA프라이빗 키 파일 형식.pempem 파일은 잘 저장해두기!네트워크 설정 - 편집보안 그룹 이름 변경ex) ~firewall설명ex) ~created 2024-05-23인바운드 보안 그룹 규칙 (2개 추가하기)보안 그룹 규칙 추가 ..

[CI/CD] Github 레포지토리에 올라간 코드에서 한글이 깨져 나올 때 (yaml 파일)

Github 레포지토리에 올라간 코드에서 한글이 깨져 나올 때 (yaml 파일) 한 번씩 찾아오는 Github의 뒤통수🤛🏻 이번엔 Github 레포지토리 코드를 몇 개 보던 중 한글이 깨져서 올라간 게 있었다! 따른 java 코드들은 여태 문제없었는데 yaml 코드의 한글이 깨진 걸 발견 찾아보니 그래도 이번엔 로컬 폴더만 수정하여 해결할 수 있다. 먼저 프로젝트 폴더 안의 .git 폴더로 이동 → config 파일 열어서 아래의 코드를 추가해준다! [i18n] commitEncoding = utf-8 logOutputEncoding = utf-8 이렇게 코드 추가하고 저장하면 끝! 다시 다른 yaml 파일에 한글 적고 add-commit-push 해서 확인해보자 깨지지 않고 잘 올라갔다! 이번엔 그래도..

[CI/CD] Github commit 메시지 수정하고 싶을 때

git commit --amend -m “변경할 커밋 메시지” 깃허브 리드미에 진심인 나는 커밋 메시지에도 진심… 프로젝트를 할 땐 Commit message 형식에 맞춰 쓰려고 하고, 수업을 들을 땐 배운 내용을 커밋 메시지에 잘 담아 쓰려고 한다! 하지만 커밋 메시지 잘 써졌나 볼까~ 하고 git log를 쳤는데.. 영어 스펠링이 딱 틀려버린 것… 이런 거 굉장히 신경 쓰이는 사람으로서 커밋 메시지 수정을 찾아보기 시작했다. 결론: reset 쓰지 마세요 구글링했더니 revert를 하라고 해서 revert를 하려고 했지만, 수정이 되지 않는 거다.. 그래서 또 찾아봤더니 reset으로 한 글을 발견!! 하지만 reset은 커밋 수정이 아닌 취소.. 나는 취소가 단지 add 상태로 돌려놓는 줄 알았더니..

[CI/CD] github pages 배포 방법 (React-Typescript 프로젝트)

Github Pages 배포 (React-Typescript 프로젝트 배포) 배포 전 설정 cmd 창에서 프로젝트 폴더로 이동 후 npm i gh-pages -D package.json 파일의 “scripts” 블록 안에 "build” 바로 아래에 "deploy": "gh-pages -d dist" 추가 package.json "scripts": { "dev": "vite", "build": "tsc && vite build", "deploy": "gh-pages -d dist", // 추가! 배포 vite.config.ts 파일의 plugins: 바로 아래에 base: '/깃레포지토리이름/', 추가 vite.config.ts export default defineConfig({ plugins: [rea..

[CI/CD] 수정/삭제 된 파일이 github 원격 레포지토리에 올라가지 않을 때 (git add -u)

git add -u add - commit - push를 하던 중.. push fail이 자꾸 뜨길래 git pull 도 해보고 git pull 뒤에 명령어 길게도 해봤는데 안되서 결국 git push origin +master 로 강제 push 행.. 하지만! 분명 push를 했는데 status를 확인해보니 working tree clean은 뜨지 않고 deleted: 로 이미 삭제된 파일이 떴다. 구글링 해보니 나처럼 로컬에서 삭제하고 add - commit - push 해도 원격 레포지토리에 반영이 안되는 경우가 있다고 한다. 이럴때 git add -u 로 add 해주면 수정되거나 삭제된 파일도 반영해준다고 한다! git add -u 로 add 하고 commit 후 push까지 해주니 원격 레포지토..

[CI/CD] AWS S3 버킷 생성, AWS IAM 사용자 및 액세스 키 생성

AWS S3 버킷 생성 AWS S3 버킷 생성 이유 데이터베이스에 이미지를 저장할 때 이미지는 S3에 저장하고 url만 DB에 저장하여 조회되도록 하기위해 S3 버킷을 생성했다. AWS S3 버킷 생성 S3- 버킷 만들기 일반 구성 AWS 리전: 아시아 태평양(서울) ap-northeast-2 버킷 이름: 버킷 이름 객체 소유권 ACL 활성화됨 클릭 버킷 소유자 선호 이 버킷의 퍼블릭 액세스 차단 설정 모든 퍼블릭 액세스 차단 해제 버킷 버전 관리 비활성화 버킷 만들기 AWS IAM 사용자 생성(AmazonS3FullAccess) IAM- 사용자 생성 사용자 이름- 다음 권한 옵션 직접 정책 연결 권한 정책 정책 이름: AmazonS3FullAccess 사용자 생성 AWS IAM 액세스 키 생성 IAM-..