일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 식별자
- 자바의정석
- 친절한 SQL 튜닝
- 친절한 SQL
- SQL튜닝
- 산술 연산자
- 반복문
- 상속
- 논리 연산자
- SQL 튜닝
- 객체
- 함수
- 연산자
- join
- SQL
- 비교 연산자
- 배열
- 오버로딩
- StringBuffer
- 스프링시큐리티 로그아웃
- SpringSecurity 로그인
- 객체지향
- 이클립스 설치
- SpringSecurity 로그아웃
- 예약어
- spring 게시판 삭제
- 인텔리제이 Web 애플리케이션
- @PreAuthorize("isAuthenticated()")
- 오버라이딩
- java
Archives
- Today
- Total
gi_dor
Spring Boot 개인,토이 프로젝트에서 CI/CD 본문
728x90
private Repository - 깃허브 계정 , 토큰 복사 붙여넣기 안하기 위해
git config --global credential.helper store
git pull origin main
// id
// 토큰 pw
이제 그대로 id 와 토큰 값이 저장되어있어 재 입력 하지 않아도된다.
CI/CD 적용
github actions 라이브러리
https://github.com/marketplace/actions/ssh-remote-commands
# Workflow의 이름
# Workflow : 하나의 yml 파일을 하나의 Workflow라고 부른다.
name: Deploy To EC2
# Event : 실행되는 시점을 설정
# main이라는 브랜치에 push 될 때 아래 Workflow를 실행
on:
push:
branches:
- main
# 하나의 Workflow는 1개 이상의 Job으로 구성된다.
# 여러 Job은 기본적으로 병렬적으로 수행된다.
jobs:
# Job을 식별하기 위한 id
Deploy:
# Github Actions를 실행시킬 서버 종류 선택
# ubuntu 환경 / 가장최신버전 latest
runs-on: ubuntu-latest
# Step : 특정 작업을 수행하는 가장 작은 단위
# Job은 여러 Step들로 구성되어 있다.
steps:
- name : SSH(원격 접속)로 EC2에 접속하기
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USERNAME }}
key: ${{ secrets.EC2_PRIVATE_KEY }}
script_stop: true
script: |
cd /home/ubuntu/cicd-server
git pull origin main
./gradlew clean build
sudo fuser -k -n tcp 8080 || true
nohup java -jar build/libs/*SNAPSHOT.jar > ./output.log 2>&1 &
EC2_HOST : aws ec2 인스턴스 퍼블릭 ip 주소
EC2_USERNAME : aws ec2 인스턴스 - 연결 - EC2 인스턴스연결 탭 하단의 사용자 이름
EC2_PRIVATE_KEY : 키페어 파일 : 키페어파일 위치한 폴더에서 git bash - 명령어 : cat 키페어파일.pem - 복사
- 프로젝트 Push
- github 프로젝트 리포지토리
- Actions 탭
배포 종료
sudo fuser -k -n tcp 8080
git action timeout으로 연결이 실패 했을 때
10분이 지나도 안되며 멈춰있고 시간만 쌓여갔다
https://velog.io/@kwontae1313/github-action-CD%ED%8C%8C%ED%8A%B8-run-time-out
프리티어 EC2 swap 파티션 생성
// 메모리 상태 확인
free -h
// swap 파일을 생성해준다. (메모리 상태 확인 시 swap이 있었지만 디렉토리 파일은 만들어줘야한다.)
sudo mkdir /var/spool/swap
sudo touch /var/spool/swap/swapfile
sudo dd if=/dev/zero of=/var/spool/swap/swapfile count=2048000 bs=1024
// swap 파일을 설정한다.
sudo chmod 600 /var/spool/swap/swapfile
sudo mkswap /var/spool/swap/swapfile
sudo swapon /var/spool/swap/swapfile
// swap 파일을 등록한다.
sudo vim /etc/fstab
파일이 열리면 해당 파일 아래쪽에 하단 내용 입력 후 저장
/var/spool/swap/swapfile none swap defaults 0 0
// 메모리 상태 확인
free -h
2GiB(2기비바이트)가 잘 할당 된 것을 확인할 수 있다. 이후로 , 문제 없이 진행되었다
728x90
'AWS > CI CD' 카테고리의 다른 글
배포 자동화 중 발생한 문제 (0) | 2024.06.25 |
---|---|
프로젝트 CI/CD 적용 , 설명 (0) | 2024.06.18 |
AWS EC2 포트 포워딩 (0) | 2024.06.14 |
AWS 배포 EC2 인스턴스 생성과 연결 배포 , MobaXterm (2) | 2024.06.14 |
AWS RDS 데이터베이스 만들기 , 설정 , 연결 (0) | 2024.06.09 |