Jenkins란?
- 지속적 통합(CI)
- Polling 기법 혹은 Webhooks 방법으로 동작한다.
- Webhooks: 이벤트 전달 , Polling: request 요청(10초에 한 번씩)
젠키스 접속을 위한 aws 설정
Jenkins에 접속하기 위해 ALB 필요가 필요하여 구축이 필요하다.
1. 젠키스 ec2 생성
2. 로드밸런서 구성
dev-jenkins-alb
internet-facing
3. ALB의 DNS 주소로 접속
1. 젠티스 ec2 생성
보안 그룹 구성
- jenkins ec2 보안그룹(dev-jenkins-ec2) 인바인드 규칙
2. 로드밸런서 구성
- 대상그룹 생성
대상은 인스턴스로 설정하고 젠킨스가 위치한 ec2를 선택해주었다.
로드밸런서 생성을 누르고 ALB를 선택
이렇게 설정해주고 아래에서도 vpc랑 public subnet을 선택해준다.
- 리스너 및 규칙
리스너는 HTTP:80으로 하고 대상그룹은 위에서 만든 대상그룹으로 선택
- 인바인드 규칙
- 라우팅 구성 (대상 그룹)
가용영역을 2개 선택해야했다 a에만 있고, c는 임의여서 타켓그룹을 지정해주었다.
3. ALB의 DNS 주소로 접속
로드밸런서의 DNS이름:8080 으로 jenkins를 연결한다.
참고) 설정이 잘 되었는데 안된다면 이럴땐 캐시 목록을 삭제해주세요.
애플리케이션의 성능을 높이고 싶을때 자주 액세스하는 데이터를 캐시에 저장해서 사용한다던데 캐시 때문에 동작을 안하기 합니다.
깃허브 세팅하기
깃허브 토큰으로 후크를 설정
젠킨스 관리 >Credentials에서 해당 토큰을 등록한다.
이제 새 item을 눌러서 파이프라인을 생성하고 설정을 해줄 것이다.
general에서 Github project를 체크하고 url에다가 레포 주소를 입력한다.
트리거는 GitHub hook trigger for GITScm polling 선택한다.
깃허브 웹훅 설정하기
브런치 설정은 가지고 싶은 브런치 입력한다. 우리팀은 main 브랜치에서 가져와 빌드한다.
script path는 Jenkinsfile이 위치한 루트에 맞춰서 작성한다.
PATLOAD URL: http://ALB주소/github-webhook/
참고) 만약 /github-webhook/을 추가하지 않는다면 Webhooks 에러가 발생한다.
- Last delivery was not successful. Invalid HTTP Response: 403
구축은 완료되었지만 Jenkins응답 속도가 지나치게 느리다.
실무에서 프라이빗 서브넷으로 운영하지만 , 운영 환경에서는 Jenkins 직접 접근할 필요가 없어 온프레미스에서만 사용한다고 한다.
속도가 느려 진행에 어려움이 있어 퍼플릭 서브넷으로 돌아간다.....
'IT > cloud' 카테고리의 다른 글
서브도메인을 사용하기 위해 Route 53, CloudFront, S3, ACM 설정하기 (0) | 2025.02.17 |
---|---|
Jenkins을 이용하여 Docker Image를 ECR로 올리기 with Github, 퍼블릭 서브넷 (0) | 2025.02.14 |
[Ansible] lac를 통한 클라우드 인프라 구축-2 (0) | 2025.02.13 |
[Ansible] lac를 통한 클라우드 인프라 구축-1 (0) | 2025.02.13 |
[AWS] 비용 관리 실패? AWS 200만원 과금, 전액 환불 후기 (0) | 2025.02.13 |