티스토리 뷰

젠킨스가 여러가지 프로젝트의 배포를 담당하는 상태에서 한곳에 배포를 한곳에서 처리하는 것은 

성능저하 문제도 있고 여러 요청이 한번에 들어왔을 때 부담이 있다. 따라서 Jenkins 는 요청을 받기만 하고 실제로 처리하는 것은 다른 인스턴스로 요청을 보내서 처리하게 만들려고 하였다. 이때의 문제는 인스턴스를 유지하면 돈이 많이든다는 것..

따라서 비용절감을 할 수 있도록 Aws Spot 기능을 사용하기로 결정하였다.

 

용어가 바뀌었나보다. 내가할땐 Fleet이었는데 스팟이라고.. 한두번이니 얘들.. 

https://aws.amazon.com/ko/about-aws/whats-new/2018/04/introducing-amazon-ec2-fleet/

 

Amazon EC2 플릿 소개

Amazon EC2 플릿은 여러 Amazon EC2 인스턴스 유형과 가용 영역 간에, 그리고 온디멘드 구매 모델, Amazon EC2 예약 인스턴스(RI) 구매 모델 및 Amazon EC2 Spot 구매 모델에 걸쳐 Amazon EC2 용량을 간편하게 프로�

aws.amazon.com

Fleet 을 설정하려면 우선 이미지가 필요하다. AMI라고 하는데 리눅스 인스턴스같은 것을 말한다.

https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/AMIs.html

 

Amazon 머신 이미지(AMI) - Amazon Elastic Compute Cloud

Amazon 머신 이미지(AMI) Amazon 머신 이미지(AMI)는 인스턴스를 시작하는 데 필요한 정보를 제공합니다. 인스턴스를 시작할 때 AMI를 지정해야 합니다. 동일한 구성의 인스턴스가 여러 개 필요할 때는

docs.aws.amazon.com

Jenkins가 설치되어 있는 인스턴스는 이미 떠 있다고 가정하겠다.

Jenkins가 도커 이미지 생성 && kubernates 배포를 하기위한 Fleet 인스턴스가 2가지가 필요했다.

정책이 좀 바뀌어서 Ami를 만든 후 그것을 템플릿으로 등록해야 한다.

 

1. EC2 에 인스턴스를 하나 만든다(난 ubunutu로 진행하였다) . micro로 무료로 만든다. 우린 가난하니까. 회사는 부자인디..

2. 자 이제 내가 Spot 인스턴스에서 동작할 프로그램을 설치하면 된다. 도커 이미지 생성이 필요하니 docker 를 설치하였고

aws ecr 에 이미지를 푸쉬해야하니  aws cli 를 설치해준다. 그리고 java 1.8버전 이상 꼭 깔아줘라. jenkins 에서 fleet 접속할 때 필요하다.  ( aws linux를 설치하면 자동으로 설치가 되어있다고 한다)

* 중요 IAM권한으로 진행이 안될거다.  후에 사용할 kubectl 커맨드가 그러하다. 꼭 aws cli를 설치하고 aws configure에 계정정보를 셋팅한 후에 진행하도록 하자.

 

2-1 . Jenkins에 플러그인으로 (hpi) 로 aws의 것들을 사용할 수 있으면 그 설정을 찾아서 쓰는게 좋다. 난 전부 전부 실패하였기 때문에 command line으로 처리를 해야 했기 때문에 해당 프로그램을 설치 한 후 ami를 만드는 것이다. aws가 아닌 다른것들은 잘 플러그인을 찾고 예제를 찾아보면 나올 것이다.

 

3. Fleet 에서 사용할 프로그램들을 전부 다 설치 했으면 이미지를 중지한다

4. 이후 이미지를 만든다.

5. 이후 템플릿을 생성한다.

6. 이후 ami 정보에 위에서 만든 이미지를 찾아서 선택한 후 템플릿을 만든다.

난 서버 정보 , iam 및 보안그룹 설정은 하지 않았다. 필요에 따라 진행해도 아무런 문제가 없다.

 

7. 이제 Spot 을 만들어 비용절감을 시작하자

여기서 상태가 fulfilled, 지속성이 maintain 로 설정하는게 중요하다. 요청이 들어올때 마다 인스턴트를 띄우는건 즉각적인 배포가 이루어 지지 않기 때문에 즉시즉시 동작해야 해서 항상 유지하는 걸로 설정을 하였다. 

 

8. 이부분이 중요하다. 우리가 ami을 만들어서 템플릿을 만든 이유이다.

템플릿에서 선택했을 경우

템플릿을 만들지 않으면 저 옵션 온디멘드 부분을 설정 할 수가 없다. 아주 뭐같게..

목표용량 유지 버튼도 활성화가 되지 않아서 아주 골머리를 후...

AMi에서 이미지를 선택했을 경우

자 이렇게 되면 

다음과 같이 플릿이 인스턴트가 떠있는 것을 확인할 수 있다.

 

해당 플릿을 가지고 젠킨스에서 빌드 명령을 내리는 것은 다음 포스트에서...

jenkins에 EC2 Fleet 라이브러리를 설치하고 다음으로 넘어가겠다.

https://plugins.jenkins.io/ec2-fleet/

 

EC2 Fleet

Use EC2 SpotFleet to launch builders

plugins.jenkins.io

 

'AWS' 카테고리의 다른 글

Aws Ecr Eks Jenkins - 3 (Jenkins Spot 설정)  (0) 2020.06.07
Aws Ecr Eks Jenkins - 1 (개요)  (0) 2020.05.29
Aws ECR EKS 간단정리  (1) 2020.04.21
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함