TIL

AWS EC2에 Docker Jenkins 설치, Github Webhook 연동 (1) | 최종_최최종_찐막_찐찐막

everyday-spring 2024. 11. 2. 16:53

 

 

https://everyday-spring.com/628

 

Window PC에 Docker, jenkins 설치, GitHub 연동하기 (1) | 난 대학시절 삽질을 전공했단 사실

시작에 앞서....Docker를... AWS EC2에 설치 했어야 하는데별 의심없이 개인 pc에 설치했다...잘못된 방향으로 핸들이 고장난 에잇톤트럭마냥 달려서 하루를 낭비했다이것은.. 그 기록....  Docker 설치h

everyday-spring.com

https://everyday-spring.com/629

 

Window PC에 Docker, jenkins 설치, GitHub 연동하기 (2) | 난 삽질로 유학까지 다녀왔단 사실

https://everyday-spring.com/628 Window PC에 Docker, jenkins 설치, GitHub 연동하기 (1) | 난 대학시절 삽질을 전공했단 사실시작에 앞서....Docker를... AWS EC2에 설치 했어야 하는데별 의심없이 개인 pc에 설치했다..

everyday-spring.com

 

지난 글에서 로컬 윈도우 pc에 Docker와 Jenkins를 설치하여 테스트를 해보았다

이제 EC2에서 다시 시작해보자

 

AWS EC2 Instance 생성

 

EC2 권한이 있는 IAM 계정으로 로그인한다

 

 

EC2 서비스를 검색해서 들어간다

 

 

EC2 메인보드

지역을 서울로 설정하고 왼쪽 네비게이션의 Instances로 이동한다

서울 리전을 사용해야 더 빠른 연결과 비용절감을 할 수 있다

 

 

Launch instances를 클릭해 새로운 인스턴스를 생성할 수 있다

 

 

원하는 인스턴스 이름을 입력하고 OS를 선택해준다

정답은 없지만 나는 사용해본 ubuntu를 사용했다

(ubuntu가 많이 사용되어서 검색 레퍼런스도 많다)

 

 

중요합니다

프리티어 계정의 기본설정은 t2.micro 타입으로 지정되어있다

도커 젠킨스 설치에는 문제가 없으나

GitHub 프로젝트 빌드시에 리소스 부족으로 먹통이 될 수 있다!!!!

가격을 고려해 스팩업을 꼭 해주자

프로젝트에 따라 필요한 리소스가 다르기때문에 정답은 없지만

최소 2 vCPU 2 ~ 4 GiB Memory가 필요하다

 

ubuntu - t3.small type을 24시간 가동하였을때 천원정도 비용이 발생하는 수준

로컬에서 젠킨스를 테스트 해보고 별 생각없이 t2.micro로 진행했다가

처음부터 다시 설치했다 

 

 

키페어를 생성해준다 (pem키를 잘 가지고 있다면 있던거 써도 된다)

여기서 생성한 키페어는 window환경에서 Putty로 연결할때 사용하고,

Jenkins에서 credential로 등록해서 배포시에 사용한다

 

 

원하는 이름 지정 후 key pair 생성

자동 저장되는 .pem 파일은 곧 사용하니 경로를 잘 확인해두자

 

 

보안그룹은 원래 사용하던게 있다면 사용해도 된다

나는 깔끔하게 필요한 것만 사용하는게 편해서 새로 생성하는 편이다

 

 

스토리지 설정은 Free tier에서 사용가능한 30으로 변경한다

여기까지 하면 필요한 설정 완료

새로운 인스턴스를 생성해준다!

생성된 인스턴스는 자동으로 Runnig 상태로 실행된다

 

 

EC2 Instance 고정 IP 설정 (선택)

고정 IP가 선택인 이유는 돈이 나가니까!

근데 해두면 편하다...

네비게이션 메뉴에서 Elastic IPs를 클릭해 이동한다

 

 

별도의 설정없이 한화 이글스색 버튼을 순서대로 클릭만하면 IP가 생성된다

생성된 IP를 클릭하면 상세정보를 확인할 수 있다

 

 

생성된 IP 상세 페이지에서 Associate Elastic IP address 클릭

 

 

위에서 생성한 인스턴스를 선택하고

Associate를 클릭하면 선택한 인스턴스의 public IP가 변경된 것을 확인 할 수 있다

 

 

EC2 Instance port 설정

외부에서 접속할 수 있도록 필요한 포트들을 열어줘야한다

인스턴스 상세페이지로 이동해 하단의 Security메뉴를 클릭한다

빨간 밑줄부분에 있는 Security Groups을 클릭

 

 

Edit inbound rules 클릭

외부에서 EC2 내부로 들어오는 port에 대한 설정이다

 

 

ssh로 접속하는 22 포트가 기본으로 설정되어있고

두가지를 추가해줬다

하나는 SpringBoot 프로젝트가 배포될 9090,

하나는 Jenkins 접속을 위한 8080,

(Spring Boot의 기본 포트와 Jenkins의 기본 포트 모두 8080로 동일하니 적절히 변경해서 사용해야 한다)

필요한 포트를 등록하고 저장해준다

 

여기까지 하면 외부에서 접속하기 위한 포트 설정까지 완료!!!