일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준
- webflux
- 백업
- 스왑메모리
- CompletableFuture
- 백업스크립트
- mysql
- SUbmodule
- GoogleCloudStorage
- R2DBC
- 파일업로드
- github
- TaskExecutor
- AWS
- gitActions
- programmers
- JPA
- EC2
- @async
- mono
- Algorithm
- 알고리즘
- Infra
- Java
- 프로그래머스
- 비동기
- swapmemory
- GCS
- ci/cd
- actions
- Today
- Total
목록Infra (3)
쿵야지식떨이
나는 현재 게임 프로젝트의 서버를 담당 하고 있다. 게임 서버의 특성 상 항상 안정적으로 서버가 잘 돌아가야 하는데 어느샌가 부터 서버에 함께 올려둔 mysql이 주에 2~3회씩 Exited되는 상황이 벌어졌다... 즉각적인 해결을 위해 나는 자동 복구와 자동 백업 스크립트를 사용하기로 했다! 이번 글에서는 문제 상황과 원인을 정리해보려 한다.🧐문제 상황은?MySQL 서버가 주 평균 2~3회 잦은 중단 및 서비스 불가 상태MySQL 서버가 다운될 시 수동 복구로 인해 평균 30분의 긴 다운 타임 발생 → 서비스 가용성 저하 백업 및 복구 절차가 자동화되지 않아 중단 시 데이터 손실 위험 증가서버 다운 시 담당자가 알 수 없음위 상황들이 큰 문제였다. 🧐원인 분석은?1. 메모리 누수 및 프로세스 충돌..
프로젝트를 진행할 때 보여주고 싶지 않은 민감 정보를 담은 yml 파일이 존재한다.submodule을 사용하여 특정 폴더만 private로 설정하여 노출을 막을 수 있다!submoduleGit 프로젝트에서 다른 Git 프로젝트를 하위 디렉토리에 포함시키는 방법submodule 적용 과정1. public repository에 프로젝트 파일 업로드 2. 민감한 정보를 담을 private repository 생성application.yml 파일을 private repository에 생성하여 추가public repository에 존재하는 민감한 정보를 private repository로 옮기고 clone 시에만 연동해서 가져온다고 생각하면 된다. 3. public repository에 submodule 등록 ..
GitHub Actions 가 정상적으로 작동하게 스크립트를 작성해야 한다. CI/CD 스크립트 작성 과정 1. 프로젝트에 yml 파일 생성 프로젝트 root 경로에 ./github/workflows 디렉토리를 만들고 cicd.yml 파일을 생성한다. 파일 이름은 cicd.yml은 예시일 뿐 이름은 상관없다! 2. yml 파일 안에 스크립트 작성 #github repo Actions 이름 name: CI/CD on: push: branches: ["develop"] pull_request: branches: ["develop"] permissions: write-all jobs: build-and-deploy: # ubuntu 최신버전에서 실행 runs-on: ubuntu-latest steps: - n..