사용한 기술
1. github repository
2. Github Actions
3. AWS EC2
- AWS - EC2 인스턴스 생성
- 새 페어 생성
- 네트워크 설정 : 인터넷에서 HTTPS 트래픽 허용 체크
- EC2 접속
- 인스턴트 보안그룹에서 인바운드 규칙 편집에서, 8080포트 추가 생성
- 터미널
cd c:/MyStudy/sparta
chmod 400 test-server.pem
ssh -i test-server.pem ec2-user@{퍼블릭IPv4 DNS}
sudo yum install -y java-17-amazon-corretto-devel :자바 설치
sudo yum install docker
sudo systemctl start docker
sudo systemctl status docker
# Docker 서비스를 운영체제 부팅시 자동 시작하도록 설정
sudo systemctl enable docker
# docker 명령어를 sudo없이 사용하기 위해 ec2-user계정을 docker 그룹에 추가
sudo usermod -aG docker ec2-user
# docker-compose 설치
sudo curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
# 권한 문제로 다시 접속
sudo chmod +x /user/local/bin/docker-compose
exit
docker version
docker-compose version
- intelliJ에서 아래 프로젝트 열어서 build 및 test 확인
- github repsoitory 설정
- 레파지토리 settings - Actions Secret - key 등록 : SSH_HOST(퍼블릭 IPv4 주소), SSH_KEY(발급받은 key.pem)
- github actions workflows 설정 : .github / workflows / deploy.yml 파일 생성
name: Deploy
on:
workflow_dispatch:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'adopt'
- name: Grant execute permission for gradlew
run: chmod +x ./gradlew
- name: gradlew bootJar
run: ./gradlew bootJar
- name: copy jar to server
uses: appleboy/scp-action@master
with:
host: ${{ secrets.SSH_HOST }}
username: ec2-user
key: ${{ secrets.SSH_KEY }}
port: 22
source: "./build/libs/*.jar"
target: "~"
strip_components: 2
- name: SSH Commands
uses: appleboy/ssh-action@v0.1.6
with:
host: ${{ secrets.SSH_HOST }}
username: ec2-user
key: ${{ secrets.SSH_KEY }}
port: 22
script_stop: true
script: |
sudo yum update -y && sudo yum install -y java-21-amazon-corretto
for pid in $(pgrep java); do
if ps -p $pid -o args= | grep -q 'java -jar'; then
echo "Java process with 'java -jar' found (PID: $pid). Terminating..."
kill -9 $pid
fi
done
echo "nohup java -jar ~/*.jar > ~/app.log 2>&1 &" | at now
- actions에서 build 확인
- http://{퍼블릭 IPv4 주소}:8080/ 연결 성공 확인
'공부' 카테고리의 다른 글
Docker 실행 및 실습 (1) | 2025.03.06 |
---|---|
Http Session과 Session Clustering 개념 (0) | 2025.02.28 |
Redis Insight 연결 안되는 문제 해결(인메모리 저장소 및 캐싱 전략) (0) | 2025.02.27 |
# @Entity에서 @builder 사용법 (0) | 2025.02.21 |
Docker Compose 및 컨테이너 모니터링, 로깅 (0) | 2025.02.11 |