๋ฉ์ถฐ๋ฒ๋ฆฐ EC2
Spring Boot ํ๋ก์ ํธ๋ฅผ ๊ฐ์ ธ์์ Docker Compose๋ฅผ ํ๋ ค๊ณ ํ๋๊น ๊ฐ์๊ธฐ ๋น๋ ๋์ค์ EC2๊ฐ ์์ ๋ฉ์ถฐ๋ฒ๋ ธ๋ค. ์ง๋๋ฒ์๋ Docker๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๊ทธ๋ฅ ๋ฐ๋ก Spring Application์ ์คํํ๋๊น CPU ์ฌ์ฉ๋์ด ์ต๋์น๋ฅผ ์ด๊ณผํ์ฌ ๋ฉ์ถ ์ ์ ์์ง๋ง ๋น๋ ๊ณผ์ ์์๋ ์ฒ์์ด๋ค.

EC2 ์ธ์คํด์ค ๋ชจ๋ํฐ๋ง์ ๋ณด๋ ์์ง ๋ชจ๋ ์ต๋์น๋ ๋๋ฌํ์ง ์์์ง๋ง ๋น์ทํ ์ด์ ๋ก ์ธ์คํด์ค๊ฐ ๋ฉ์ถ ๊ฒ ๊ฐ๋ค. ๊ฐ์ฅ ํฐ ์ด์ ๋ OOM(Out of Memory)์ธ๋ฐ, AWS EC2 t2.micro์ ๊ธฐ๋ณธ ๋ฉ๋ชจ๋ฆฌ๋ 1GB๋ฐ์ ๋์ง ์๊ธฐ ๋๋ฌธ์ด๋ค.
Swap ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ง๋ค์
์ด์์ฒด์ ์์ ์์ XV6 ๊ณผ์ ์ค์ Memory Swap์ ์ง์ ๊ตฌํํ๋ ๊ธฐ์ต์ด ๋๋ค. ๋น ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๋นํธ๊ฐ์ผ๋ก ๊ด๋ฆฌํ๊ณ , ์ด ๋นํธ๋งต์์ ์ฐ์์ /๋น์ฐ์์ ์ผ๋ก ๋น์ด์๋ ์์ญ์ ์ฐพ์ ํด๋น ์์ญ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋ ๊ฒ ๊ฐ๋ค. ๊ฑฐ๊ธฐ์ Atomicity๋ฅผ ์ํ Lock๊น์งโฆ
XV6 ์ด์ผ๊ธฐ๋ ์ฌ๊ธฐ๊น์ง ํ๊ณ ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ง๋ค์ด๋ณด์.
์ฐ์ dd command๋ฅผ ์ฌ์ฉํด์ ๋์คํฌ ์ฉ๋์ ํ์ผ์ฒ๋ผ ๋ค๋ฃจ๋ฉด ๋๋ค. Input File๋ก /dev/zero๋ฅผ ์ฌ์ฉํ๋๋ฐ, /dev/null์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ฝ์ด์ค๋ ๋์ , ๋ชจ๋ 0์ผ๋ก ์ด๊ธฐํํ์ฌ ์ฝ์ด์จ๋ค. ์ด ์ฐ์์ ์ธ 0 ์คํธ๋ฆผ์์, 128MB์ง๋ฆฌ Block์ 16๊ฐ, ์ฆ 2048MB ํฌ๊ธฐ์ ํ์ผ์ /swapfile ์ด๋ผ๋ Output File๋ก ๋ง๋ ๋ค.
์ด Swap File์ด ๋ง๋ค์ด์ง๋ฉด, ์ ์ ํ ๊ถํ์ ๋ถ์ฌํ๊ณ , /swapfile ํ์ผ์ Swap ๋ฉ๋ชจ๋ฆฌ๋ก ํฌ๋งทํ๋ค. ๋ง์ง๋ง์ผ๋ก ์ด Swap ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ์ฑํ์์ผ์ฃผ๋ฉด ๋๋ค.
์ฌ๋ถํ
์์๋ ์ด Swap ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ ์ง๋ ์ ์๋๋ก ํด์ฃผ๊ณ , ๋ง์ง๋ง์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ํ์ธํด๋ณด๋ฉด 2GB ํฌ๊ธฐ์ Swap ๋ฉ๋ชจ๋ฆฌ ์์ญ์ด ์ฑ๊ณต์ ์ผ๋ก ์๊ธด ๊ฒ์ ์ ์ ์๋ค.
์ ์๋ํ๋ EC2
