AWS EC2 ์๋ฒ์ docker๋ฅผ ํตํด jenkins ์ค์น๊น์ง ์๋ฃํ์๊ณ gitHub webhook์ ์ด์ฉํด push๋ฅผ ๊ฐ์งํ์ฌ ๋น๋๊น์ง ๊ตฌํํด๋จ๋ค.
ํ์ง๋ง AWS EC2 free tier์ ๋ฉ๋ชจ๋ฆฌ๊ฐ 1GB์ด๊ธฐ ๋๋ฌธ์ ๋น๋๋ฅผ ํ๋ค๊ฐ EC2 ์๋ฒ๊ฐ ์ฃฝ์ด๋ฒ๋ฆฌ๋ ํ์์ด ์๊ฒผ๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ Swap memory๋ฅผ ์ด์ฉํด ํด๊ฒฐํ์๋ค.
Swap ๋ฉ๋ชจ๋ฆฌ๋ ์ด์ ์ฒด์ ์์ ๋ถ์กฑํ ๋ฌผ๋ฆฌ์ ์ธ RAM์ ๋ณด์ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ด๋ค. ์์คํ ์ RAM์ด ๋ชจ๋ ์ฌ์ฉ๋๋ฉด, ์ด์ ์ฒด์ ๋ ์ผ๋ถ ๋ฐ์ดํฐ๋ฅผ ํ๋ ๋์คํฌ์ ์๋ Swap ์์ญ์ผ๋ก ์ด๋์ํจ๋ค. ์ด๋ฅผ ํตํด ์ถ๊ฐ์ ์ธ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ๋ณดํ์ฌ ์๋ก์ด ๋ฐ์ดํฐ๋ ํ๋ก๊ทธ๋จ์ ๋ก๋ํ ์ ์๊ฒ ๋๋ค. Swap ์์ญ์ ํ๋ ๋์คํฌ์ ์ผ๋ถ ๊ณต๊ฐ์ผ๋ก ํ ๋น๋๋ฉฐ, ์ฃผ๋ก ์์๋ก ์ฌ์ฉ๋๊ฑฐ๋ ์ต๊ทผ์ ์ ๊ทผํ์ง ์์ ํ์ด์ง๋ฅผ ๋ณด๊ด๋๋ค. ๊ทธ๋ฌ๋ Swap ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ง๋์น๊ฒ ๋ง์ด ์ฌ์ฉํ๋ฉด ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ ์ ์์ผ๋ฏ๋ก ์ค์ RAM์ ์ต๋ํ ํ๋ณดํ๋ ๊ฒ์ด ์ค์ํ๋ค.
๋ฐ๋ผ์ Swap Memory ์ค์ ์ ํตํด RAM์ด ๋ถ์กฑํ ํ์์ ํด๊ฒฐํ ๊ฒ์ด๋ค.
AWS EC2 free tier๋ ๊ธฐ๋ณธ์ ์ผ๋ก 8GB์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ๊ณตํ๋ค. (์ต๋ 30GB๊น์ง ์ฌ์ฉํ ์ ์๋ค.)
ํ์๋ 25GB์ ๋ฉ๋ชจ๋ฆฌ๋ก ์ค์ ํด๋๊ณ Swap memory ์ค์ ์ ํ์๋ค.
df -h #Linux ๋ฐ Unix ๊ธฐ๋ฐ ์์คํ
์์ ์ฌ์ฉ๋๋ ๋์คํฌ ์ฌ์ ๊ณต๊ฐ์ ๋ณด๊ณ ํ๋ ๋ช
๋ น์ด
25GB ์ ๋๋ก ๋์ด์๋๊ฑธ ํ์ธํ๋ค.
sudo dd if=/dev/zero of=/swapfile bs=128M count=16
sudo
: ์ํผ์ ์ (root) ๊ถํ์ผ๋ก ๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค. ์ด๋ ์์คํ
๊ด๋ฆฌ ์์
์ ์ํํ๊ธฐ ์ํด ํ์ํ ๊ถํ์ ์ป๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.dd
: ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌํ๊ฑฐ๋ ๋ณํํ๋ ์ ํธ๋ฆฌํฐ์ด๋ค.if=/dev/zero
: ์
๋ ฅ ํ์ผ(input file)๋ก /dev/zero
๋ฅผ ์ฌ์ฉํ๋ค. /dev/zero
๋ null ๋ฌธ์(0x00)๋ก ๊ตฌ์ฑ๋ ๋ฌดํ๋์ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๋ ํน์ ์ฅ์น์ด๋ค.of=/swapfile
: ์ถ๋ ฅ ํ์ผ(output file)๋ก /swapfile
์ ์ฌ์ฉํ๋ค. ์ฌ๊ธฐ์ /swapfile
์ ์์ฑ๋ Swap ํ์ผ์ ๊ฒฝ๋ก์ ์ด๋ฆ์ด๋ค.bs=128M
: ํ ๋ฒ์ ์ฝ๊ฑฐ๋ ์ธ ๋ฐ์ดํฐ ๋ธ๋ก ํฌ๊ธฐ(block size)๋ฅผ 128MB๋ก ์ค์ ํ๋ค. ์ด ๊ฐ์ ํ์์ ๋ฐ๋ผ ์กฐ์ ํ ์ ์๋ค.count=16
: ์
๋ ฅ ํ์ผ์์ ์ฝ์ ๋ฐ์ดํฐ ๋ธ๋ก(block)์ ๊ฐ์๋ฅผ 16๊ฐ๋ก ์ค์ ํ๋ค. ์ฆ, ์ด 16 * 128MB = 2GB์ ๋ฐ์ดํฐ๊ฐ ์์ฑ๋๋ค.์ด ๋ช
๋ น์ด๋ /dev/zero
์์ ๊ฐ์ ธ์จ null ๋ฌธ์์ด ๋ฐ์ดํฐ๋ฅผ /swapfile
์ ์ง์ ๋ ๊ฒฝ๋ก์ ์ด๋ฆ์ผ๋ก ์ถ๋ ฅํ์ฌ Swap ํ์ผ์ ์์ฑํ๋ค. Swap ํ์ผ์ ์ถ๊ฐ์ ์ธ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ผ๋ก ์ฌ์ฉ๋๋ฉฐ, ์ฃผ๋ก ์์คํ
์ RAM์ด ๋ถ์กฑํ ๋ ์ฌ์ฉ๋๋ค.
Swap ํ์ผ์ด ์ฑ๊ณต์ ์ผ๋ก ์์ฑ๋๋ฉด, ํด๋น ํ์ผ์ Swap ์์ญ์ผ๋ก ์ฌ์ฉ๋๋๋ก ์ค์ ๋์ด์ผ ํ๋ค. ์ด๋ ๋ณดํต swapon
๋ช
๋ น์ด๋ /etc/fstab
์ค์ ์ ํตํด ์๋์ผ๋ก ๊ตฌ์ฑํ ์ ์๋ค.
sudo chmod 600 /swapfile # Swap ํ์ผ ์ฝ๊ธฐ, ์ฐ๊ธฐ ๊ถํ ๋ถ์ฌ
sudo mkswap /swapfile # Swap ํ์ผ์ ์ด๊ธฐํ
sudo swapon /swapfile # ํด๋น Swap ์์ญ์ ํ์ฑํ
sudo swapon -s # ์ ์์ ์ผ๋ก ์ค์ ๋์๋์ง ํ์ธ
2GB๊ฐ ํ ๋น๋๊ฒ์ ํ์ธํ ์ ์๋ค.
๋ง์ง๋ง์ผ๋ก ์ค์ ํ์ผ์ EC2 ์ธ์คํด์ค ๋ถํ ์ ์๋์ผ๋ก ์คํํ ์ ์๊ฒ ์ค์ ํด์ผ ํ๋ค.
sudo vi /etc/fstab
์๋์ ์ฝ๋๋ฅผ ์์ ๊ฐ์ด ์ถ๊ฐํด์ค๋ค.
/swapfile swap swap defaults 0 0 # `/etc/fstab` ํ์ผ์ Swap ํ์ผ์ ์๋์ผ๋ก ๋ง์ดํธํ๊ธฐ ์ํ ์ค์
์ด๋ ๊ฒ ๋น๋๋ฅผ ์ค์ ์ ํ๊ณ jenkins๋ก ๋น๋๋ฅผ ํ๋ฉด ์์ฃผ ์ ์คํ์ด ๋ฉ๋๋ค!
AWS EC2๋ฅผ ์ด์ฉํด ๋ฐฐํฌํด๋ณด์ (6) - Swap area ์ค์ ํ๊ธฐ