AWS FIS๋ฅผ ์ฌ์ฉํ ์นด์ค์ค ์์ง๋์ด๋ง
- 2023๋ 7์ 29์ผ
- 3๋ถ ๋ถ๋
AWS Hands-on Lab #5 : AWS FIS๋ฅผ ์ฌ์ฉํ ์นด์ค์ค ์์ง๋์ด๋ง(Chaos Engineering)

Written by Minhyeok Cha
์ค๋์ AWS ์๋น์ค ์ค ๊ฐ๋จํ๊ฒ ์๋ฒ์ ์คํธ๋ ์ค ํ ์คํธ ์งํ์ ํ๋ ์๋น์ค์ธ FIS(Fault Injection Simulator)๋ฅผ ํ์ธํ๋ ค๊ณ ํฉ๋๋ค.
AWS FIS๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ด๋ถ์์ ๊ฐ์ ๋ก ์ฅ์ ๋ฅผ ์ฃผ์ ํ์ฌ ์๋ฎฌ๋ ์ด์ ํ ์์คํ ์ ๊ฐ๊ฑด์ฑ(robustness)๊ณผ ์ ๋ขฐ์ฑ์ ํฅ์ํ๋ ๋ฐ ๋์์ ์ฃผ๋ ์๋น์ค์ ๋๋ค. ํด๋ผ์ฐ๋ ํ๊ฒฝ์์์ ์ฅ์ ์ํฉ์ ๋๋นํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฅ์ ๋ฅผ ์๋ณํ๊ณ ํ๋ ฅ์ฑ์ ์คํํ๊ธฐ ์ํด์๋ ๊ผญ ํ์ํ ์นด์ค์ค ์์ง๋์ด๋ง ๋๊ตฌ์ ๋๋ค.
์นด์ค์ค ์์ง๋์ด๋ง(Chaos Engineering)์ด๋?
์๋น์ค๊ฐ ๋ค์ด๋๊ธฐ ์ ์ ์ฅ์ ๋ฅผ ์๋ณํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก, ์คํธ๋ ์ค ํ ์คํธ๋ฅผ ์งํํ๋ฉฐ ์์คํ ์ด ์ด๋ป๊ฒ ๋ฐ์ํ๋์ง ์ฌ์ ์ ํ ์คํธ๋ฅผ ์งํํด ์ค๋ฅ๋ฅผ ์๋ณํ์ฌ prod์ ์ฌ๋ผ๊ฐ๊ธฐ ์ ์๋น์ค๋ฅผ ์์ ํ ์ ์์ต๋๋ค.
์นด์ค์ค์์ง๋์ด๋ง์ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์๊ฐ ์๊ฐํ ๋๋น ๊ฒฐ๊ณผ(์: 50๋ช ์ ๋์ ์ ์์ - 3์ด ์์ ์ ๊ทผ, ์ด๋ฅผ ํตํ ์๋ต ์๊ฐ, ํต๊ณผ/์คํจ ํธ๋์ญ์ ์, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ฅ ๋ฑ)์ ์์คํ ์์ ์ค์ ๋ก ๋ฐ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ๋น๊ตํ ์ ์์ต๋๋ค.
์ด๋ฌํ ์์น๋ฅผ ์ป๊ธฐ ์ํด ์ผ๋ถ๋ฌ ์๋ฒ์ ๋ฐ๋ฏธ์ง๋ฅผ ๊ฐํ๋ ๋ฐฉ๋ฒ์ด ์นด์ค์ค ์์ง๋์ด๋ง์ ๋๋ค.
์นด์ค์ค ์์ง๋์ด๋ง์ Prod์ ๋ง์ถฐ ์ฌ์ฉํ๊ธฐ
๊ทธ๋ ๋ค๋ฉด AWS ์์์์ ์นด์ค์ค ์์ง๋์ด๋ง์ ๋ค๋ฃจ๊ธฐ ์ํด์๋ ์ด๋ป๊ฒ ํด์ผ ํ ๊น์?
์ค์ ๋ก ์นด์ค์ค์์ง๋์ด๋ง ํ๋ก์ธ์ค๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.

์ฅ์ ๊ฐ์ค ์์ ์์คํ ๋ด๋ถ์ ์ ์ฌ์ ์ธ ์ฝ์ ์ด๋ ๋ฌธ์ ๋ฅผ ์์ธกํฉ๋๋ค. ์นด์ค์ค์์ง๋์ด๋ง ์คํ์ ์ค์ํ ๋ชฉํ๋ฅผ ์ค์ ํ๋ ์ฒซ ๋ฒ์งธ ๋จ๊ณ์ด๋ฉฐ ์ด๋ค ์ข ๋ฅ์ ์ฅ์ ์๋๋ฆฌ์ค๋ฅผ ์๋ฎฌ๋ ์ด์ ํ ์ง ๊ฒฐ์ ํฉ๋๋ค.
ํ ์คํธ ์์์ ์์ฑ๋ ๊ฐ์ค ํ ํ๋ฆฟ์ ๋ฐํ์ผ๋ก ํ ์คํธ ํ๊ฒฝ์ ๊ตฌ์ฑํฉ๋๋ค. (์๋ฒ ์ค๋จ, ๋คํธ์ํฌ ๋ถํ ๊ฐ์ ์ฃผ์ ๋ฑ)
๊ฒฐ๊ณผ ํ์ธ ํ ์คํธ ๋ ์์คํ ์ ๋์๊ณผ ์ฑ๋ฅ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํฉ๋๋ค. (๋ฌธ์ ๋ฅผ ์ธ์งํ ์๊ฐ๊ณผ ์๋ฆผ ์๊ฐ, ์๋ ๋กค๋ฐฑ ์์ , ์ ์ฒด ๋ณต๊ตฌ ๋ฐ ์์ ํ ์๊ฐ ๋ฑ
์์ ๋ฐ ํด๊ฒฐ ๊ฒฐ๊ณผ ๊ฐ์ ๊ฐ๊ณ ์๋ณํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ๊ฐ์ ํ๊ธฐ ์ํ ์กฐ์น๋ฅผ ์ทจํฉ๋๋ค.
AWS FIS๋?

์ฅ์ ๋ฅผ ๊ฐ์ ๋ก ์ฃผ์ ํ ๋ ๊ฐ ๋ฆฌ์์ค ๋จ์๋ถํฐ ๋คํธ์ํฌ, ๊ฐ์ฉ ์์ญ์ผ๋ก ํ ์คํธ๋ฅผ ๋ํ๊ฐ๋๋ค.
๊ทธ๋ฆฌ๊ณ ํด๋น ์ฅ์ ๋ฅผ ๋๋นํ๋ ๋กค๋ฐฑ ๊ณํ๊น์ง๋ ๊ตฌ์ฑํด์ผ ํ๋ ๊ฒ์ด AWS FIS ํ ํ๋ฆฟ ์์ฑ์ ํต์ฌ์ ๋๋ค.
์์ ์ค์
๋์ ๋ฆฌ์์ค์ ์ค๋ฅ๋ฅผ ๊ฐ์ ๋ก ์ฃผ์ ํ ํ๋์ ์ค์ ํฉ๋๋ค. AWS FIS์์๋ ๋ค์ํ ์คํ ํ ํ๋ฆฟ์ด ์์ผ๋ฉฐ ๊ฐ๋จํ๊ฒ ๊ธฐ์กด ์๋ฒ๋ฅผ ํ๊ฒ ์ธ์คํด์ค๋ฅผ ๋ค์ด์์ผ Scaleout ๊ธฐ๋ฅ ์๋ ํ์ธ๋ถํฐ ์๋ฒ ์์ฑ (CPU, disk, memory), ๋คํธ์ํฌ ๊ด๋ จ ํจํท ์์ค, ๊ฐ์ ์ง์ฐ ๋ฐ ๋๋ฝ ๋ฑ ๋ค์ํ ์์ ์ ํ๋ค์ด ์์ต๋๋ค.

๐ก AWS FIS์์ ์ฌ์ฉ ๊ฐ๋ฅํ SSM๋ฌธ์๋ฅผ ํ์ธํ ์ ์์ผ๋ฉฐ ๋ฟ๋ง ์๋๋ผ ECS, ESK, RDS ๋ฑ ๋ค์ํ ํ
ํ๋ฆฟ์ด ์์ต๋๋ค.
ํ๋์ ํ ํ๋ฆฟ์ ์ฌ๋ฌ ์์ ์ ๊ฒน์ณ์ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ฉฐ ์ฌ์ฉ๋ ์์ ์ ํ์ด SSM์ ๋ฌธ์๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ FIS ๋์์ด ๋ ์๋ฒ๋ SSM Agent๊ฐ ์ค์น๋์ด ์์ด์ผ ํฉ๋๋ค.

๐ก ํ์ฌ ์ฌ์ฉ๋ ์์
์ ํ์ธํ๋ฉด Disk์ Memory๊ฐ ์์ต๋๋ค. ์ด๋ ๊ธฐ์กด CloudWatch์์ ํ์ธ์ด ์ ๋๊ธฐ ๋๋ฌธ์ CloudWatch ์์ด์ ํธ๋ฅผ ๋ณ๋๋ก ์ค์นํด์ผ ๋ชจ๋ํฐ๋ง(์ค์ง ์กฐ๊ฑด)์ด ๊ฐ๋ฅํฉ๋๋ค.
์ฌ์ฉ๋ FIS - SSM ๋ฌธ์
์์ ํ๋ก์ธ์ค๋ ์์์ ์ฌ์ฉ๋ SSM์์ ์ง๊ธ๋๋ ๋ฌธ์๋ฅผ ํ์ธํ์ต๋๋ค. ์ด 4๊ฐ๋ฅผ ์ฌ์ฉํ์ผ๋ฉฐ ๊ทธ์ค ๋ํ๋ก Memory ๊ด๋ จ ์ค๋ช ์ ํ์ธํ์๊ณ ๋ด์ฉ์ ํด๋น ์คํธ๋ ์ค ํ ์คํธ ํด์ โstress-ngโ๋ผ๋ ํด์ ์ฌ์ฉํ๋ค๋ ๊ฒ๊ณผ ํ์ํ ๋ณ์ ๊ธฐ์ ์ด ์๋ค๋ ๊ฒ์ ํ์ธํ์ต๋๋ค.

์ค์ง ์กฐ๊ฑด
์์ ์ค์ ์ด ๋๋๋ฉด ์คํ์ ์์ ํ๊ฒ ์คํํ๊ธฐ ์ํ ์ค์ง ์กฐ๊ฑด์ ์ ํํฉ๋๋ค. ์ด๋ CloudWatch ๊ฒฝ๋ณด์์ ๋ฏธ๋ฆฌ ์ ์๋ ์๊ณ๊ฐ์ ๋๋ฌํ๋ฉด ์คํ์ ์ข ๋ฃํ๋๋ก ์ ํ์ ์ค์ ํฉ๋๋ค.
์๊ณ๊ฐ์ ๋๋ฌํ๋ฉด ์คํ ์์ฒด๊ฐ ์ทจ์๋๊ณ ์๋น์ค๊ฐ ์ฆ์ ๋ค์ ์์๋ฉ๋๋ค.


์ง์ ์ฌ์ฉ ํ ๋๋ ์
FIS ํ์๋ผ์ธ
ํ๋์ ํ ํ๋ฆฟ์ ๋จ์ผ ๋ฆฌ์์ค๋ฅผ ๋์์ผ๋ก ์ฌ๋ฌ ์์ ์ ์ ์ฉํ ๋ ๋์์ ๋๋ฆฌ๋ฉด ๋ฐ๋ก ์คํจ๊ฐ ๋ฉ๋๋ค.

๐ก ๋ฐ๋ผ์ ์์
๋ง๋ค ๋ค์ ์ฌ์ง๊ณผ ๊ฐ์ด ์ด์ ์์
์ ์ ํ ํ ์์
์ด ์งํ๋๋๋ก ์กฐ์จํด์ผ ํฉ๋๋ค.
๋ณ์ ๊ธฐ์
๋จ์ํ SSM ๋ฐ๋ถ์ผ๋ก ์ฌ์ฉ ์ค์ ๊ธฐ์ ํ๊ธฐ ํธํ ์ํ๋ก ์ถ๋ ฅ๋์ง๋ง, FIS๋ก ์ฌ์ฉํ๋ฉด ์ง์ ๋งค๊ฐ๋ณ์๋ฅผ JSON ํ์์ผ๋ก ๋ฃ์ด์ผ ํ๋ฏ๋ก ๋ฒ๊ฑฐ๋ก์์ด ์์ต๋๋ค.

๋ง๋ฌด๋ฆฌ
์ด ๋ธ๋ก๊ทธ์์๋ ๊ฐ๋จํ๊ฒ ์นด์ค์ค ์์ง๋์ด๋ง์ด๋ ๋ฌด์์ธ์ง์ AWS์์ ์ฝ๊ฒ ์นด์ค์ค์์ง๋์ด๋ง์ ๊ตฌ์ฌํ ์ ์๋ AWS FIS๋ฅผ ์์๋ณด์์ต๋๋ค. ์คํธ๋ ์ค ์ํฉ์์ ์์คํ ์ด ์ด๋ป๊ฒ ๋ฐ์ํ๋์ง ์ฌ์ ์ ํ ์คํธํจ์ผ๋ก์จ ์ค๋ฅ๋ฅผ ์๋ณํ๊ณ ์์ ํ ์ ์์ต๋๋ค.
AWS FIS๋ ๊ฐ๋จํ ๊ฐ์ฉ์ฑ ํ ์คํธ ๋ฟ๋ง ์๋๋ผ EC2, ECS, EKS, RDS ์๋น์ค ์ฅ์ ์ฃผ์ ๋ฐ API ์ค๋ฅ, ๋จ์ผ ์๋ฒ ์ฅ์ ๋ฑ์ ๋ค์ํ ์์ ๊ณผ ๋ชจ๋ํฐ๋ง, ์คํ ๊ฒฐ๊ณผ ๊ณต์ ๋ฑ์ด ๊ฐ๋ฅํฉ๋๋ค.
์ถ๊ฐ๋ก JSON/YAML ๊ธฐ๋ฐ ์คํ ํ ํ๋ฆฟ๊ณผ SSM๋ฅผ ์ฌ์ฉํ์ฌ ๋ ๋ณต์กํ ์นด์ค์ค ์์ง๋์ด๋ง์ ์ค๊ณํ ์ ์์ต๋๋ค.





