Jenkins Master 에대한 IAM Role : EC2FullAccess
가 있어야 Slave Agent EC2를 생성할 수 있다. 또한, iam:PassRole
도 필요한데, 아래부분 참조.
Security Group, Subnet : Slave EC2에 지정할 SG, Subnet. 이름이 아니라 ID로 입력해야한다. 쉼표로 구분. 당연히 Master 에서 SSH 접근 가능한 SG와 Subnet 이어야 한다.
EC2 Key Pair's Private Key(Agent EC2 접속 SSH Private Key): AWS 에 등록된 pem private Key 를 Jenkins Credential 로 등록하면, master 가 agent EC2 생성시 자동으로 private key 에 맞는 키로 등록해준다.
Agent 용 AMI 는 JDK 가 깔려있고 PATH가 걸려있는게 좋다. 안그러면 JDK 설치까지도 EC2 Plugin 이 수행한다.
Remote FS root : Amazon Linux 는 /home/ec2-user
. 배포판마다 적절히 지정
Remote user : Amazon linux 는 ec2-user
. 배포판마다 적절히 지정.
Minimum number of instances : 최소 유지 agent 갯수
Minimum number of spare instances : 사용중인 agent 들에 더해서 추가로 상시 유지할 인스턴스. 즉 최소유지가 1개이고 최소 spare가 2개이면 첫번째 agent 노드에 job 이돌면 spare 2개가 더 뜨게된다.
Instance Cap : 최대 Agent 인스턴스 갯수. 무한정 agent 가 늘어나는 것을 방지. 지정 AMI에만 해당하는 설정임.
Launch Timeout in seconds : SSH 접속 최대 대기시간(초), 빈값,0 이면 무한정 대기
Host Key Verification Strategy : off
면 no
. 신규 AMI들은 check-new-hard
로 하는게 좋음(신규 AMI는 콘솔에 host key를 출력함). 단, check-new-hard
, check-new-soft
는 EC2 인스턴스의 콘솔이 뜨면 콘솔에 뜬 값과 SSH키 값을 대조한다고 함. 그래서 콘솔 뜨기까지 launch timeout 을 길게 잡아야 한다. 뜨는데 오래걸림.
IAM Instance Profile : Slave Agent EC2 인스턴스에 IAM Role을 지정하려면 IAM instance profile ARN을 지정해줘야한다.