군침이 싹 도는 코딩

애자일 개발 방식으로 할때 ec2 서버에 바로 릴리즈 하는법 본문

AWS/EC2

애자일 개발 방식으로 할때 ec2 서버에 바로 릴리즈 하는법

mugoori 2022. 12. 20. 11:20

본래의 개발 방식은 깃허브에서 레파지토리를 생성하고 로컬 컴퓨터로 클론 해온 뒤 그것을 작업하고

테스트를 거친다음 문제가 없으면 다시 푸쉬해서 깃허브로 보내고 ec2 서버에 접속하기 위해서 SSH를

이용하여 ec2 서버에 접속하여 아나콘다 프롬프트나 깃과 같이 필요한 프로그램을 다운로드하고

깃허브에 있는것을 클론해서 ec2 서버에 적용한다.

이 후 유지보수를 할때마다 로컬 컴퓨터에서 깃허브로 푸쉬하고 SSH를 사용해서 ec2서버에 접속해

ec2 서버에서 git pull을 이용해 당겨와야한다 이러한 과정이 너무 번거롭기 때문에 해당 방법을

자동화하는 방법이 있다 그것이 깃허브의 액션기능이다

깃허브의 액션 기능을 사용하면 로컬 컴퓨터에서 푸쉬를 눌러주기만 하면

ec2서버에 자동으로 적용되게 해준다

 

 

 

# putty gen 이라는 프로그램을 켜서 ppk 로 되어있는 키 파일을

로드 해온다

 

 

 

# export openSSH key를 눌러서 변환한다

 

 

 

 

# 파일의 확장자는 꼭 pem 으로 적는다

 

 

 

 

# 자신의 깃허브로 들어가서 적용할 레파지토리를 클릭하고 세팅 > 시크릿 > 액션에 들어가서 

뉴 레파지토리 시크릿을 누른다

 

 

 

 

# 이제 ec2 서버에 접속할때 사용된 키파일 , user 아이디 , 호스트 3개를 모두 적어주도록 한다

이때 네임을 적을때 소문자 대문자 숫자 언더바 외에는 적어서는 안된다 공백역시 포함되선 안된다.

 

 

 

 

# pem으로 변환한 키파일을 인터넷창으로 끌어오면 이런식으로 열리는데 이걸 모두 복사한다

 

 

 

 

# 그 후 시크릿에 복사한것을 모두 붙여넣기하고 이름을 적어주고 add secret을 누르면 된다

 

 

 

 

# 호스트는 aws ec2 서버의 호스트 아이피나 호스트 주소를 시크릿에 붙여넣기한다음 만들면 된다

user 아이디도 같은 방법으로 ec2 서버에 접속할때 썼던 ec2-user를 시크릿에 쓴다음 만들면 된다

 

 

 

 

# 3개의 시크릿이 다 만들어졌다 이것은 작성된 후에는 작성된 내용을 볼수없어

수정이 불가능하므로 만들때 꼭 유의해서 만든다 잘못만들었다면 삭제후 다시 만들어야한다

 

 

 

# 시크릿을 다 만들었으면 이제 액션에 set up workflow yourself를 누른다

 

 

 

 

 

# 워크플로우를 해당 사진과 같이 타이핑한다

name 칸은 사람이 알기 쉽게 표시하려고 적는것이다

on 은 실행한다라는 뜻이다

push는 푸쉬한다는 뜻이다

branches -main 은 메인이라는 가지라는 뜻이다

위에 세개를 종합해보면 메인이라는 가지에 푸쉬를 실행한다는 뜻

jobs SSH runs-on ubuntu-latest 는 우분투라는 운영체제를 쓴다는 뜻이다

steps uses actions/checkout@v3 는 체크 아웃을 한다는 뜻

uses appleboy/ssh-action@master 라고 적고

with 밑에는 아까 시크릿에서 만들어뒀던 3개를 적는다

그 후 script: | 를 적고 그 밑에는 ec2 서버에서 실행할 스크립트를 적는다

cd로 해당 폴더로 이동 후 git pull 을 써서 당겨온다