Terraform-aws-github-runner: ๋Œ€์ฒด ์ธ์Šคํ„ด์Šค ์œ ํ˜•

์— ๋งŒ๋“  2021๋…„ 02์›” 16์ผ  ยท  6์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: philips-labs/terraform-aws-github-runner

๊ธฐ๋Šฅ ์š”์ฒญ: "์š”์ฒญ๊ณผ ์ผ์น˜ํ•˜๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ŠคํŒŸ ์šฉ๋Ÿ‰์ด ์—†์Šต๋‹ˆ๋‹ค", ์ฝ”๋“œ: 'InsufficientInstanceCapacity' ์˜ค๋ฅ˜์˜ ๊ฒฝ์šฐ ๋ณด์กฐ ์ธ์Šคํ„ด์Šค ์œ ํ˜•์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

AWS๊ฐ€ 'InsufficientInstanceCapacity' ์˜ค๋ฅ˜๋กœ ์‘๋‹ตํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค ์œ ํ˜•์œผ๋กœ ๋Œ€์ฒด ์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ํ˜„์žฌ ์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ์—์„œ InstanceType ๋ฅผ ๋ฎ์–ด์“ธ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋ฌธ์„œ์— ๋”ฐ๋ฅด๋ฉด -
"LaunchTemplate โ€” (์ง€๋„) -
์ธ์Šคํ„ด์Šค๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ์ž…๋‹ˆ๋‹ค. RunInstances์—์„œ ์ง€์ •ํ•˜๋Š” ๋ชจ๋“  ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ์˜ ๋™์ผํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค."
๋”ฐ๋ผ์„œ ์ด๋Ÿฐ ์‹์œผ๋กœ ์ž‘๋™ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‘ ๋ฒˆ์งธ ์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ๋„ ์ž˜ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์ŠคํŒŸ ํ”Œ๋ฆฟ ์š”์ฒญ์ด ์žˆ๋Š” ๋ณด๋‹ค ๊ฐ•๋ ฅํ•œ ์†”๋ฃจ์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋งŽ์€ ๋ณ€ํ™”๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  6 ๋Œ“๊ธ€

์˜ˆ, ์šฐ๋ฆฌ๋Š” ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ๊ณ  ์šฐ๋ฆฌ์˜ ์•„์ด๋””์–ด๋Š” ๋˜‘๊ฐ™์ด ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ ์ž‘์—… ์ค‘์ธ ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋‹ค์Œ์€ ์ด ์•„์ด๋””์–ด์— ๋Œ€ํ•œ WIP์ž…๋‹ˆ๋‹ค. - https://github.com/Kostiantyn-Vorobiov/terraform-aws-github-runner/pull/1 (์‹ค์ œ ํ™˜๊ฒฝ์—์„œ ํ…Œ์ŠคํŠธ๋˜์ง€ ์•Š์Œ)
์ด๊ฒฌ์žˆ๋Š” ์‚ฌ๋žŒ? ๋‚˜๋Š” TS ์‚ฌ๋žŒ์ด ์•„๋‹™๋‹ˆ๋‹ค @gertjanmaas , @npalm

์•ˆ๋…•ํ•˜์„ธ์š” @Kostiantyn-Vorobiov์ž…๋‹ˆ๋‹ค.

์•„์ด๋””์–ด๊ฐ€ ์ •๋ง ๋งˆ์Œ์— ๋“ญ๋‹ˆ๋‹ค. EC2 ์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌํ˜„์ด ์ž‘๋™ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์•„๋Š” ํ•œ ์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ ์˜ต์…˜๊ณผ ์ธ์Šคํ„ด์Šค ์œ ํ˜• ์˜ต์…˜์€ runInstances ํ˜ธ์ถœ์—์„œ ํ˜ผํ•ฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ธ์Šคํ„ด์Šค ์œ ํ˜•์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋Œ€์‹  Terraform์—์„œ ๋‘ ๋ฒˆ์งธ ์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ์„ ๋งŒ๋“ค๊ณ  InsufficientInstanceCapacity ์˜ค๋ฅ˜ ์‹œ launchTemplateName ๋ฐ launchTemplateVersion ๋ฅผ ๋ณด์กฐ ํ…œํ”Œ๋ฆฟ์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ terraform ์ฝ”๋“œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค: https://github.com/philips-labs/terraform-aws-github-runner/blob/8ed8a8491298d5023f37b207e432e92129183adc/modules/runners/main.tf#L36

@npalm ์ด๊ฒŒ ์–ด๋–ป๊ฒŒ ๋“ค๋ฆฌ๋‚˜์š”?

๋ฌธ์„œ์— ๋”ฐ๋ฅด๋ฉด -
"LaunchTemplate โ€” (์ง€๋„) -
์ธ์Šคํ„ด์Šค๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ์ž…๋‹ˆ๋‹ค. RunInstances์—์„œ ์ง€์ •ํ•˜๋Š” ๋ชจ๋“  ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ์˜ ๋™์ผํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค."
๋”ฐ๋ผ์„œ ์ด๋Ÿฐ ์‹์œผ๋กœ ์ž‘๋™ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‘ ๋ฒˆ์งธ ์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ๋„ ์ž˜ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์ŠคํŒŸ ํ”Œ๋ฆฟ ์š”์ฒญ์ด ์žˆ๋Š” ๋ณด๋‹ค ๊ฐ•๋ ฅํ•œ ์†”๋ฃจ์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋งŽ์€ ๋ณ€ํ™”๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ฒฝ์šฐ ๋ฎ์–ด ์“ฐ๊ธฐ๊ฐ€ ์•ž์œผ๋กœ ๋‚˜์•„๊ฐ€์•ผํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์„œ ๋งํฌ: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html

@Kostiantyn-Vorobiov ์ž์œ ๋กญ๊ฒŒ ์ดˆ์•ˆ(WIP) PR์„ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰