일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 우테코 5기
- DispatcherServlet
- HikariCP
- oauth
- Spring cloud gateway
- 테스트코드
- 살아남았다.
- spirng
- tomcat
- 우테코
- 톰캣
- redis
- Elk
- 최종 합격
- Spring Batch
- AOP
- 오어스
- Thread
- Transactio
- circuitbreaker
- Kotlin
- MDC
- 트랜잭션
- 우아한 테크 코스
- resilience4j
- 커넥션 풀
- Gateway
- 동시성문제
- 우아한테크코스
- JWT
- Today
- Total
코딩은 내일부터
우아한테크코스 생존기 (7)(CI/CD) 본문
Self Hosted Runner를 활용해 CD를 하는 방법을 알려드리겠습니다.
먼저 지금 사용하고있는 ec2서버는 램 크기가 작기 때문에 Swap Memory를 사용해
하드디스크의 원하는 일정 용량을 램으로 바꿔줘서 사용해야합니다.
이때 너무 많은 메모리를 Swap Memory로 할당하게 되면 하드디스크가 부족하여
(ex.db에 데이터저장, 로그파일 저장 ... 등등)
서버가 다운될 수 있고,
너무 작은 메모리를 할당하게 되면 github action을 실행할때 부족한 램메모리 때문에 서버가 죽게됩니다.
다시 본론으로 넘어가면
먼저 스왑 메모리를 할당하는것은 하드디스크를 이용하기에 하드디스크의 용량을 확인 해봐야합니다.
df -h
하드디스크 용량을 확인했다면,
그중 얼마정도의 swap 메모리로 설정할지 정하고 아래와 같은 명령어를 입력합니다.
1G의 의미는 1G만큼을 swapfile로 생성하게 되어집니다.
따라서 {N}G와 같이, N에 본인이 생성할 스왑메모리를 할당합니다.
sudo fallocate -l 1G /swapfile
이후 만들어진 swapfile에 대한 권한을 수정합니다.
chmod 600 /swapfile
생성된 swapfile을 이용하여 swap memory를 활성화 시킵니다.
sudo mkswap /swapfile
sudo swapon /swapfile
이렇게하면 자신의 램 메모리가 원래G+1G 크기로 할당됐을 겁니다.
그리고 다음으로 자신의 레포에 settings를 들어가 줍니다.
위 사진과 같이 1>2>3번 순서대로 클릭하면 아래와 같은 화면이 나오게됩니다.
위사진에서 Runner image는 지금 사용하고 있는
ec2서버와 맞는 linux를 선택하고 밑에 나오는 명령어를 서버에서 실행시키면
github actions 작업은 끝나게됩니다.
마지막으로 작업하는 프로젝트 파일 최상단에 .github/workflows파일을 만들어주고
밑에 와 같이 yml파일을 넣어주면 자동배포가 끝나게됩니다!
name: deploy
on:
workflow_dispatch:
branch:
[ step1 ]
push:
jobs:
deploy:
runs-on: self-hosted
steps:
- name: change permission
run: |
sudo chown -R ubuntu:ubuntu /home/ubuntu/actions-runner/_work/jwp-shopping-order
- uses: actions/checkout@v3
- name: gradle bootjar
run: |
chmod +x ./gradlew
./gradlew bootjar
- name: kill 8080 port if exist
run: |
if sudo lsof -i :8080; then
echo "Port 8080 is already in use. Killing the process..."
sudo lsof -i :8080 | awk 'NR!=1 {print $2}' | sudo xargs kill -9
fi
- name: deploy
run: |
sudo nohup java -jar build/libs/jwp-shopping-order.jar --spring.config.location=file:/home/ubuntu/application.properties &
이제 커밋을 할 때 마다 서버에있는 배포스크립트를 실행시킬 필요없이 자동적으로 배포이루어지게 됩니다!
'우아한 테크 코스(우테코) > 우테코 공부' 카테고리의 다른 글
[우테코] 우아한테크코스 생존기 (9)(@Transactional) (0) | 2023.06.09 |
---|---|
우아한테크코스 생존기 (8)(Swagger를 이용한 API명세서 관리하기) (0) | 2023.06.05 |
[우테코] 우아한테크코스 생존기 (6)(@Repository의 예외처리) (6) | 2023.04.22 |
[우테코] 우아한테크코스 생존기 (5)(DI 와 빈 스코브) (3) | 2023.04.22 |
[우테코] 우아한테크코스 생존기 (4)(스프링이란) (4) | 2023.04.22 |