사용자 도구

사이트 도구


ci:jenkins:aws_plugin

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
ci:jenkins:aws_plugin [2022/01/14 17:30]
kwon37xi [ElasticBeansTalk Deployment]
ci:jenkins:aws_plugin [2022/07/07 10:38] (현재)
kwon37xi [EC2 Fleet]
줄 8: 줄 8:
   * https://github.com/jenkinsci/aws-credentials-plugin   * https://github.com/jenkinsci/aws-credentials-plugin
   * AWS Credential 환경변수 자동 주입.   * AWS Credential 환경변수 자동 주입.
- 
  
 ===== EC2 Fleet ===== ===== EC2 Fleet =====
줄 14: 줄 13:
   * [[ci:jenkins:agent|Jenkins Agent ( slave )]] 자동 확장.    * [[ci:jenkins:agent|Jenkins Agent ( slave )]] 자동 확장. 
   * [[https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet.html|AWS Spot Fleet]] 혹은 [[https://docs.aws.amazon.com/ko_kr/autoscaling/ec2/userguide/AutoScalingGroup.html|Auto Scaling Group]] 사용 가능.   * [[https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet.html|AWS Spot Fleet]] 혹은 [[https://docs.aws.amazon.com/ko_kr/autoscaling/ec2/userguide/AutoScalingGroup.html|Auto Scaling Group]] 사용 가능.
-  * Autoscaling Group이나, Spot Request 자체에 EC2 인스턴스의 각종 설정을 미리 넣어둘 수 있어서 Jenkins 쪽에서 불필요한 Role을 가질 필요가 없음.+  * **Autoscaling Group이나, Spot Request 자체에 EC2 인스턴스의 각종 설정을 미리 넣어둘 수 있어서 Jenkins 쪽에서 불필요한 Role을 가질 필요가 없음.** 
 +  * **Spot Instance를 사용하지 말 것** : Job 실행중에 갑자기 종료될 수 있음.
   * [[https://aws.amazon.com/ko/blogs/compute/cost-optimize-your-jenkins-ci-cd-pipelines-using-ec2-spot-instances/|Cost Optimize your Jenkins CI/CD pipelines using EC2 Spot Instances | AWS Compute Blog]]   * [[https://aws.amazon.com/ko/blogs/compute/cost-optimize-your-jenkins-ci-cd-pipelines-using-ec2-spot-instances/|Cost Optimize your Jenkins CI/CD pipelines using EC2 Spot Instances | AWS Compute Blog]]
   * [[https://www.youtube.com/watch?v=8gGItacZjps|Did You Know That There Is an Amazon EC2 Spot Fleet Plugin for Jenkins? - YouTube]]   * [[https://www.youtube.com/watch?v=8gGItacZjps|Did You Know That There Is an Amazon EC2 Spot Fleet Plugin for Jenkins? - YouTube]]
-  * **Role** : ''AmazonEC2SpotFleetTaggingRole'', ''AmazonEC2ReadOnlyAccess''+  * **Required Role** : ''AmazonEC2SpotFleetTaggingRole''(Spot Request 사용시에만), ''AmazonEC2ReadOnlyAccess''
  
  
-===== ElasticBeansTalk Deployment ===== 
-  * [[aws:elasticbeanstalk|AWS ElasticBeansTalk]] 
-  * [[https://plugins.jenkins.io/aws-beanstalk-publisher-plugin|AWS BeansTalk Publisher Plugin]] : 이미 배포됐던 것을 다른 환경에 재배포하거나, Workspace에 있는 압축 파일을 S3 에 업로드하고 ElasticBeansTalk 배포를 자동으로 호출함. 이게 더 나은 듯. 
  
 ===== ECS/Fargate ===== ===== ECS/Fargate =====
줄 32: 줄 29:
   * [[https://aws.amazon.com/ko/blogs/devops/building-a-serverless-jenkins-environment-on-aws-fargate/|Building a serverless Jenkins environment on AWS Fargate | AWS DevOps Blog]]   * [[https://aws.amazon.com/ko/blogs/devops/building-a-serverless-jenkins-environment-on-aws-fargate/|Building a serverless Jenkins environment on AWS Fargate | AWS DevOps Blog]]
     * [[https://github.com/aws-samples/serverless-jenkins-on-aws-fargate/tree/main/docs|aws-samples/serverless-jenkins-on-aws-fargate]]     * [[https://github.com/aws-samples/serverless-jenkins-on-aws-fargate/tree/main/docs|aws-samples/serverless-jenkins-on-aws-fargate]]
-  * [[https://plugins.jenkins.io/awseb-deployment-plugin|AWS Elastic Beanstalk Deployment]] : Workspace에 있는 파일을 압축하여 (혹은 압축된 파일을) S3 에 버전 붙여 업로드하고 ElasticBeansTalk 배포를 자동으로 호출하는 것까지 됨. 
   * [[https://hub.docker.com/r/jenkins/inbound-agent/|Docker jenkins/inbound-agent]] : java 버전별로 찾을 수 있다. docker & fargate 용. 이 이미지를 기준으로 fargate task 생성. 이 이미지를 확장하여 자신만의 slave agent docker  image 를 만들것.   * [[https://hub.docker.com/r/jenkins/inbound-agent/|Docker jenkins/inbound-agent]] : java 버전별로 찾을 수 있다. docker & fargate 용. 이 이미지를 기준으로 fargate task 생성. 이 이미지를 확장하여 자신만의 slave agent docker  image 를 만들것.
-  * Fargate 가 생각보다 빠르지 못하다.+  * Fargate docker 이미지를 private repo 에서 가져올 수 있는 권한 설정 필요. 
 +    * [[https://docs.aws.amazon.com/ko_kr/AmazonECS/latest/developerguide/private-auth.html|태스크에 대한 프라이빗 레지스트리 인증 - Amazon Elastic Container Service]] 
 +    * [[https://docs.aws.amazon.com/AmazonECR/latest/userguide/ECR_on_ECS.html|Using Amazon ECR images with Amazon ECS - Amazon ECR]] 
 +  * Fargate 태스크에 AWS Role 을 지정할 수 있는 Role 필요. 
 +    * [[https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html|IAM Roles for Tasks - Amazon ECS]] 
 +  * Fargate 가 생각보다 빠르지 못한듯 하다. (TODO: 혹시 docker image를 외부에서 끌어올 경우? 내부로 변경하면?
 +  * [[https://tomgregory.com/jenkins-jobs-in-aws-ecs-with-slave-agents/|Running Jenkins jobs in AWS ECS with slave agents – Tom Gregory]]
  
 ===== ec2 plugin ===== ===== ec2 plugin =====
줄 77: 줄 79:
  
  
 +===== ElasticBeansTalk Deployment =====
 +  * [[aws:elasticbeanstalk|AWS ElasticBeansTalk]]
 +  * [[https://plugins.jenkins.io/aws-beanstalk-publisher-plugin|AWS BeansTalk Publisher Plugin]] : 이미 배포됐던 것을 다른 환경에 재배포하거나, Workspace에 있는 압축 파일을 S3 에 업로드하고 ElasticBeansTalk 배포를 자동으로 호출함. 이게 더 나은 듯.
 +  * [[https://plugins.jenkins.io/awseb-deployment-plugin|AWS Elastic Beanstalk Deployment]] : Workspace에 있는 파일을 압축하여 (혹은 압축된 파일을) S3 에 버전 붙여 업로드하고 ElasticBeansTalk 배포를 자동으로 호출하는 것까지 됨.
 ===== 참조 ===== ===== 참조 =====
   * [[https://www.youtube.com/watch?v=iiF2iQV-3eM|How to Integrate Jenkins With AWS - YouTube]]   * [[https://www.youtube.com/watch?v=iiF2iQV-3eM|How to Integrate Jenkins With AWS - YouTube]]
  
ci/jenkins/aws_plugin.1642149042.txt.gz · 마지막으로 수정됨: 2022/01/14 17:30 저자 kwon37xi