오랜만입니다. 그간에는 앱 출시를 위한 난리부르스를 떨면서 살았고요, IOS 앱은 출시되었고 안드로이드는 다시 프로덕션 심사에 들어갔습니다.
그리고 이제 spring을 통한 백엔드 개발을 하다가 수정을 하고 나면 쓰읍 ssh로 서버에 접근해서 깃헙에서 main pull 해와서 다시 빌드를 시키고! 동작시키는 이 과정이 너무 귀찮아서... CICD를 적용해보고자 합니다.
근데 저는 진짜 그냥 main에 push 되면 github actions 로 바로 했음 좋겠는데 블로그 글 보니 AWS 상에서도 설정하는 분들이 많더라고요. 근데 저는 프론 백 다 해야하니 실용적인 걸 찾아보겠습니다.
시작!
✅ GitHub에서 SSH 키로 코드 가져오기
1. EC2에서 SSH 키 생성
ssh-keygen -t rsa -b 4096 -C "your-email@example.com"
~/.ssh/id_rsa.pub 내용을 복사 해줍니다.
2. GitHub에 SSH 키 등록
1. GitHub → Repository → Settings → Deploy Keys → "Add Deploy Key"
- Title: AWS EC2 Key
- Key: EC2에서 cat ~/.ssh/id_rsa.pub로 출력한 내용 복사 & 붙여넣기
- Allow write access: 체크
2. GitHub → Repository → Settings → Secrets and variables → Actions → "New Repository Secret"
- Secret Name: EC2_SSH_KEY
- Secret Value: EC2에서 cat ~/.ssh/id_rsa 실행한 결과를 복사해서 넣기
3. GitHub → Repository → Settings → Secrets and variables → Actions → "New Repository Secret"
- Secret Name: EC2_HOST
- Secret Value: your-ec2-public-ip
3. deploy.yml 작성
name: Deploy to AWS EC2
on:
push:
branches:
- main # main 브랜치에 push될 때 실행
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: 📂 Checkout Repository
uses: actions/checkout@v3
- name: 🔄 Deploy to AWS EC2
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.EC2_HOST }}
username: ubuntu
key: ${{ secrets.EC2_SSH_KEY }}
port: 22 # 포트 명시
script: |
스크립트 내용은 내가 그간 노가다로 했던 것들을 그대로 적어줬습니다.
4. 오류 해결
근데 이제 바로 되면 제가 아니거덩요? 저는 git pull 하면 아이디랑 비번(키)을 입력해야 했어요. 이제 이거에 대한 설정 없이 짜니까 pull을 당연히 못해오더라고요. 이유는 제가 깃헙을 https 로 관리하고 있던거에요.
git remote -v
해서 https로 시작하면 해당되는거고요, 이걸 ssh로 바꿨습니다.
git remote set-url origin git@github.com:your-github-username/your-repo.git
자 그리고!
cat ~/.ssh/id_rsa.pub
- GitHub > Repository > Settings > Deploy Keys
- "Add Deploy Key" 클릭
- Title: AWS EC2 Key
- Key: 위에서 cat ~/.ssh/id_rsa.pub 실행한 결과를 복사해서 붙여넣기
- Allow write access 체크 (Push 권한이 필요할 경우)
를 해줍니다.
이렇게 하고 돌려주니 아주 깔끔하게

성공하는 모오습!!
'AWS' 카테고리의 다른 글
AWS 배포[1] - ec2 생성기 (0) | 2025.02.08 |
---|
댓글