Cloud Infra Architecture - cra16/overcast GitHub Wiki
ํด๋ผ์ฐ๋ ์ธํ๋ผ์ ์ผ๋ฐ์ ์ธ ๊ตฌ์กฐ๋ฅผ ๊ธฐ์ ํด ๋ณด๊ณ ์ ํ๋ค. ๋ค์ํ ๊ตฌ์กฐ๊ฐ ์์ ์ ์๊ฒ ์ผ๋ ํด๋ผ์ฐ๋์คํ์์ ๋ฌ์ฌํ ๊ตฌ์กฐ๋ก ์ดํด๋ณด๋ ค๊ณ ํ๋ค. ์ฆ zone, pod, cluster ๊ฑฐ๊ธฐ์ region๊น์ง ๋ํด์ ํด๋ผ์ฐ๋ ์ธํ๋ผ์ ๋ํด์ ์ดํด๋ณธ๋ค.
Region, Zone, Pod, Cluster
Zone, Pod, Cluster
Zone์ ๋ฐ์ดํฐ ์ผํฐ, pod์ rack์ ์๋ฏธํ๋ค. cluster๋ storage๋ฅผ ๊ณต์ ํ๋ ๋จ์๋ก ํ์ดํผ๋ฐ์ด์ ์ ๋ฐ๋ผ์ cluster ๊ตฌ์ฑ์ด ๋ฌ๋ผ์ง ์ ์๋ค. ํ๋์ zone์ ํ๋ ์ด์์ pod๋ก ๊ตฌ์ฑ๋๋ฉฐ, ํ๋์ pod๋ ํ๋ ์ด์์ cluster๋ก ๊ตฌ์ฑํ ์ ์๋ค.
๊ตณ์ด ํ๋์ pod๋ฅผ ํ๋ ์ด์์ cluster๋ก ๊ตฌ์ฑํ๋ ์ด์ ๋ ํ์ดํผ๋ฐ์ด์ ์ ํน์ฑ์ ๋ฐ๋ผ์ ํจ์จ์ ์ธ ๊ตฌ์ฑ์ด ๋ฌ๋ผ์ง๊ธฐ๋ ํ๊ธฐ ๋๋ฌธ์ด๋ค. ์๋ฅผ ๋ค์ด xenserver์ ๊ฒฝ์ฐ xen pool์ ๊ตฌ์ฑํ๊ณ , pool์ ์๋ ๋ ธ๋ ์ค ํ๋์ ๋ ธ๋๊ฐ master๊ฐ ๋์ด์ pool์ ๊ด๋ฆฌํ๊ฒ ๋๋ค. master๊ฐ ๊ด๋ฆฌํ๋ pool ํฌ๊ธฐ์ ๋ฐ๋ผ์ ์ด์ ์์ ์ฑ์ด๋ ํจ์จ๋ค์ด ๊ฒฐ์ ๋๊ธฐ๋ ํ๋๋ฐ, ์ผ๋ฐ์ ์ผ๋ก ํ๋์ master๊ฐ 8๋์ node๋ฅผ ๊ด๋ฆฌํ๋๊ฒ ํจ์จ์ ์ด๋ผ๊ณ ๋ณธ๋ค. ๊ทธ๋์ ๋ง์ฝ ํ๋์ pod๊ฐ 16๊ฐ์ node๋ก ๊ตฌ์ฑ๋์ด ์๋ค๋ฉด, ํ๋์ ํด๋ฌ์คํฐ๋ก ํ์ง ์๊ณ 8๊ฐ์ฉ์ node๋ฅผ ๊ด๋ฆฌํ๋ ๋๊ฐ์ ํด๋ฌ์คํฐ๋ก ๊ตฌ์ฑํ๋ค.
Region, Availability Zone
Region์ ๋ฌผ๋ฆฌ์ ์ธ ์ง์ญ์ ์๋ฏธํ๋ค. ํ๋์ region์ ์ฌ๋ฌ ๊ฐ์ zone์ ๊ฐ์ง๊ธฐ๋ ํ๋ค. ์ด๋ค zone์ ํ๋ํ๋๊ฐ ๋ ๋ฆฝ์ ์ธ ๋ฐ์ดํฐ ์ผํฐ๋ก์์ ์ญํ ์ ํ์ง๋ง ๊ฐ์ ์ง์ญ์ ์๊ธฐ ๋๋ฌธ์, ์์ ๊ณต์ ๊ฐ ๊ฐ๋ฅํ๋ค. ์๋ฅผ ๋ค์ด์ zone A์ zone B๋ก ์ด๋ฃจ์ด์ง seoul region์ด ์๋ค๋ฉด, seoul region์ ํฌํจ๋ Account A๋ zone A์ zone B ๋ชจ๋์ virtual machine์ ๋ง๋ค ์ ์๋ค. zone A์ VM์ zone B๋ก migrationํ ์๋ ์๋ค.
zone์ ํ๋์ ๋ฐ์ดํฐ ์ผํฐ๋ผ๊ณ ๋ ํ์ง๋ง ๋ณดํต์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๊ฐ์ ์ง์ญ์ ์์ผ๋ฉฐ, ๋ zone์ ๋คํธ์ํฌ๋ฅผ ๋ฌถ์ ์ ์๋ค. ํด๋ผ์ฐ๋ ์ธํ๋ผ๋ฅผ region๊น์ง ํ์ฅํ๋ฉด, region์ ๋ฐ์ดํฐ ์ผํฐ๋ก zone์ ๋ฐ์ดํฐ ์ผํฐ์ ๊ฐ ์ธต์ด๋ผ๊ณ ๊ตฌ๋ถํ๋ฉด ๋๋ค.
Region์ AWS์์ ์ฌ์ฉํ๋ ๊ฐ๋ ์ผ๋ก, ์ฌ๊ธฐ์์ availability zone์ด๋ผ๋ ๊ฐ๋ ์ด ๋์จ๋ค. zone์ ํ๋์ aggregation switch ๋ฐ์ ์์นํ๋๋ฐ, ์ด aggregation network์ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด zone์ ์๋ ๋ชจ๋ ์๋น์ค๊ฐ ์ค๋จ ๋ ๊ฒ์ด๋ค. ์ ์ ๊ฐ zone A์ zone B์ VM์ ๋๋ ์ ๋ฐฐ์นํ๋ฉด ๊ฐ์ฉ์ฑ์ ๋์ผ ์ ์์ ๊ฒ์ด๋ค.
Region์ ๋ค๋ฅธ Region๊ณผ ๋ ๋ฆฝ์ ์ผ๋ก ์๋ํ๋ค. ๋คํธ์ํฌ, VM ๋ชจ๋ ๊ฒ์ด ๋ ๋ฆฝ๋๋ค. ์๋ฅผ๋ค์ด Seoul region๊ณผ kwang-ju region์ด ์์ ํ ๋ ๋ฆฝ๋๋ค. ์ง๋ฆฌ์ ์ผ๋ก ๋ฉ๋ฆฌ ๋จ์ด์ ธ ์๊ธฐ ๋๋ฌธ์, ํ๋์ ๋คํธ์ํฌ๋ก ์ฐ๊ฒฐํด์ ๊ด๋ฆฌํ๊ธฐ๊ฐ ํ๋ค๋ค. ๊ทธ๋์ Region๊ฐ์ VM ๋ง์ด๊ทธ๋ ์ด์ ์ด๋, Account ์์ ๊ณต์ ๋ฑ์ ์ง์ํ์ง ์๋๋ค.
Pod์ ๋ฌผ๋ฆฌ์ ๊ตฌ์ฑ
Cloud ์ธํ๋ผ๋ ๋ฌผ๋ฆฌ์ ์ธ ์์์ ๋ฌผ๋ฆฌ์ ์ธ ์์๋ค์ ์ฐ๊ฒฐํ๊ธฐ ์ํ ๋คํธ์ํฌ์ ์ธ ์์๋ก ๊ตฌ์ฑ๋๋ค. ์ฌ๊ธฐ์์๋ pod์ ๋ฌผ๋ฆฌ์ ๊ตฌ์ฑ์ ์ดํด๋ณธ๋ค. zone๊ณผ region์ ๋ ผ๋ฆฌ์ ์ธ ๊ตฌ์ฑ์์๋ก ๋คํธ์ํฌ ๊ด์ ์์ ๋ฐ๋ผ๋ณด๋๊ฒ ์ผ๋ฐ์ ์ด๋ฏ๋ก ์ฌ๊ธฐ์์๋ ๋ค๋ฃจ์ง ์๋๋ค.
CNODE - Computing Node
ํด๋ผ์ฐ๋๋ ์คํ ๋ฆฌ์ง์ cpu, ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํตํฉํ๊ณ ์ ์ ์๊ฒ ํ์ํ ๋งํผ ๋์ฌํ๋ ์๋น์ค๋ผ๊ณ ๋ณผ ์ ์๋ค. cnode๋ cpu์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ๊ณตํ๋ ๋จ์ ์์๋ค. ํ์ดํผ๋ฐ์ด์ ๊ฐ ์ฌ๋ผ๊ฐ๋ ์ผ๋ฐ์ ์ธ ์๋ฒ ์ปดํจํฐ๋ผ๊ณ ๋ณด๋ฉด ๋๋ค. cnode์ cpu core์ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๊ฐ ๊ณง POD์์ ์ ๊ณตํ๋ cpu core์ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๊ฐ ๋๋ค. 6 core x 2 ์ 64Gbyte cnode 16๊ฐ๋ก ๊ตฌ์ฑ๋ POD๋ ๋ง์น 384 core์ 1024 G byte ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ์ง๋ ๋จ์ผ ์ปดํจํฐ ์ฒ๋ผ ์๋ํ๋ค.
- 2 ๊ฐ์ cpu ์ฌ๋กฏ์ ํ์ดํผ ์ค๋ ๋ฉ์ ์ง์ํ๋ 6 core cpu๊ฐ ์ฅ์ฐฉ๋ ๊ฒฝ์ฐ : (6 x 2 x 2) x 16 = 354
cnode์ core ๊ฐ์์ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ ์ด๋ ์ ๋๋ก ํ ์ง์ ๋ํด์๋ ๊ณ ๋ฏผ์ด ํ์ํ๋ค. ์น ์๋น์ค๋ฅผ ์ฃผ๋ก ํ ๊ฒฝ์ฐ 1 core์ 1G ์ ๋์ผํ ๋, core์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ 1:1๋ก ๊ฐ์ ธ๊ฐ๋ฉด ๋ ๊ฒ์ด๋ค. 6 core x 2, 32G๋ก ๊ตฌ์ฑ๋ POD๋ ์ฝ 350๊ฐ ์ ๋์ VM์ ๋ง๋ค ์ ์์ ๊ฒ์ด๋ค.
SNODE - Storage Node
cnode๊ฐ cpu์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ๊ณตํ๋ค๋ฉด, snode๋ ๋ณผ๋ฅจ์ ์ ๊ณตํ๋ค. ์ปค๋์ ํฌํจํ๋ Root disk๋ฅผ ๋ก์ปฌ๋์คํฌ์ ๋ณด๊ดํ์ง ์๊ณ ์๊ฒฉ ๋์คํฌ์ ๋ณด๊ดํ๋๋ฐ, ์ด ์๊ฒฉ ๋์คํฌ๋ฅผ ๊ด๋ฆฌํ๋ ๋ ธ๋๊ฐ snode๋ค.
snode๋ ๋ ๊ฐ์ง ํ์ ์ด ์๋ค. Root volume๊ณผ Data volume์ ์ ๊ณตํ๋ primary storage์ template์ snapshot์ ์ ์ฅํ๋ secondary storage๋ค. ์์ปจ๋ฐ Primary storage๋ ํ์ผ ์ ์ฅ์์ด๊ณ , Secondary storage๋ ์ค๋ธ์ ํธ ์ ์ฅ์์ด๋ค.
Primary Storage
Root volume๊ณผ Data volume์ ์ ๊ณตํ๋ snode๋ก ์ผ๋ฐ์ ์ผ๋ก iscsi๋ฅผ ์ด์ฉํด์ cnode์ ๋ณผ๋ฅจ์ ์๋น์ค ํ๋ค. JBOD์ ๊ฐ์ disk array ์ฅ์น๋ฅผ ์ด์ฉํด์ ๋์คํฌ๋ฅผ ์ง์คํด์ ๊ด๋ฆฌํ๋ค. ํ์ผ ์์คํ ์ software RAID์ LVM์ผ๋ก ๊ตฌ์ฑ์ ํ๋ค. Throughput์ด ์ค์ํ๋ค.
TOR
Top Of Rack์ ์ค์๋ง์ด๋ค. ๋ง๊ทธ๋๋ก Rack ์๋ถ๋ถ์ ์ถ๊ฐ๋๋ node๋ค. POD๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ์ํํธ์จ์ด๊ฐ ์ค์น๋๋ค. ๋ชจ๋ํฐ๋ง์ ์ํ ํด๋ค์ด ๊ทธ๊ฒ์ธ๋ฐ, ๊ฐ์ฅ ์ค์ํ ์ฉ๋๋ DHCP ์๋น์ค์ผ ๊ฒ์ด๋ค. DHCP๋ฅผ ์ด์ฉํด์ POD์ cnode ์ค์น๋ฅผ ์๋ํ ํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ๊ฐ๊ฐ์ POD๋ ์๋ก ๋ค๋ฅธ subnet์ ๊ฐ์ง๋๊ฒ ๋ณดํต์ด๋ฏ๋ก, POD network์์ DHCP ์๋ฒ๋ฅผ ๋ฌ์ผํ๋ค.
TOR ์๋น์ค๋ฅผ ๋๋ ๊ฒ์ ๋จ์ํ๊ธด ํ์ง๋ง, ๋ณ๋์ ๋น์ฉ์ด ์๋ชจ๋๋ค๋ ๋จ์ ์ด ์๋ค. pod์ DHCP๋ฅผ ์๋น์คํ๋๊ฒ ๋ชฉ์ ์ด๋ผ๋ฉด DHCP relay๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํด ๋ณผ ์๋ ์๋ค.
Secondary Storage
Template๊ณผ Snapshot ๊ฐ์ ์ ์ ์ธ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์คํ ๋ฆฌ์ง๋ค. NFS ํน์ iSCSI๋ก ์ ์ฅ๊ณต๊ฐ์ ๋ง์ดํธ ํด์ ์ฌ์ฉํ๋ค. ์์ฆ์๋ swift ๊ฐ์ ๋ถ์ฐ ํ์ผ ์์คํ ์ด ์ฃผ๋ชฉ๋ฐ๊ณ ์๋ค.
Network, network
๋ค์์ ์ผ๋ฐ์ ์ธ POD ๋คํธ์ํฌ ๊ตฌ์ฑ์ด๋ค.
- Storage network: cnode์ ๋ณผ๋ฅจ์ ์ ๊ณตํ๊ธฐ ์ํ ๋คํธ์ํฌ
- Mgmt network: cloud infra๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ๋คํธ์ํฌ
- Public network: ๊ฒ์คํธ VM์ด ์ธํฐ๋ท์ผ๋ก ๋๊ฐ๊ธฐ ์ํ ๋คํธ์ํฌ
Management Network
Cloud ์ธํ๋ผ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ํธ๋ํฝ์ด ํ๋ฅด๋ ๋คํธ์ํฌ๋ค. ํด๋ผ์ฐ๋์คํ๊ณผ ๊ฐ์ ํด๋ผ์ฐ๋ ๊ด๋ฆฌ ์ํํธ์จ์ด, ์๋ํ ์ํํธ์จ์ด, ๋ชจ๋ํฐ๋ง ์ํํธ์จ์ด๋ฑ์ ํธ๋ํฝ์ด ํ๋ฅธ๋ค. ์ด ์ธ์ ์ด์์ฒด์ ์ค์น๋ฅผ ์๋ํ ํ๊ธฐ ์ํ tftp ์๋ฒ, yum repository, kickstart ์๋ฒ, dhcp ์๋ฒ๋ฑ์ด ์ฌ์ฉํ๋ค.
์ด๋ค ํด๋ผ์ฐ๋ ๊ด๋ฆฌ ์ํํธ์จ์ด๋ค์ mnode์ ๋ฐ๋ก ์ง์คํด์ ๊ด๋ฆฌํ๋ค. mnode์ ์๋ snode๋ ํด๋ผ์ฐ๋์คํ์ secondary storage๋ก template๊ณผ snapshot์ ์ ์ฅํ๋ค.
์ฌ๊ธฐ์์ ์ ๊ฒฝ์จ์ผ ํ ๊ฒ์ pod ์๋ํ๋ฅผ ์ํ dhcp ์๋ฒ์ ์ด์ฉ์ด๋ค. pod ๊ด๋ฆฌ๋ฅผ ์ํ Mgmt๊ฐ 10.50.0.0/16์ ์ฌ์ฉํ๋ค๋ฉด, ๊ฐ pod๋ 24bit subnet์ ์ฌ์ฉํ๋ ์์ผ๋ก ๊ตฌ์ฑํ ๊ฒ์ด๋ค. ์ด๊ฒฝ์ฐ dhcp๋ ๊ฐ pod๋ง๋ค ์์ด์ผ ํ๋๋ฐ, ๊ทธ๋ด๋ ค๋ฉด pod ๋คํธ์ํฌ ๊ด๋ฆฌ๋ฅผ ์ํ ๋ณ๋์ node๊ฐ ์์ด์ผ ํ๋ค. ์ด node์ dhcp ์๋ฒ์ธ์ pod ๋ชจ๋ํฐ๋ง ์ํํธ์จ์ด ๋ฑ์ ๋ ์๋ ์๊ฒ ์ง๋ง ๋ญ๋น๋ผ๋ ์๊ฐ์ด ๋ ๋ค. dhcp relay๋ฅผ ๊ณ ๋ คํด ๋ณด๋ฉด ์ด๋จ๊น ์ถ๋ค.
Storage Network
๊ฐ pod ๋ง๋ค primary storage๋ฅผ ๋ ๊ฒ์ธ๊ฐ์ ๋ํด์๋ ๊ณ ๋ฏผ์ด ํ์ํ ๊ฒ ๊ฐ๋ค. ์๋์ ๊ฐ์ด EBS style์ storage๋ฅผ ๋ ์๋ ์๊ฒ ๋ค.
pod๋ง๋ค ๋๋๊ฒ ์ข์ ๊ฑด์ง ์๋๋ฉด ์ค์์ storage๋ฅผ ๋๋๊ฒ ์ข์์ง ์์ง์ ์ ๋ชจ๋ฅด๊ฒ ๋ค. ์ค์์ ๋๋ฉด ๊ฐ์ subnet์ storage๋ฅผ ๋ ์ ์์ผ๋, volume ๊ด๋ฆฌ์๋ ๋ถ๋ช ๋์์ด ๋ ๊ฑฐ ๊ฐ๋ค. ์์ปจ๋ฐ, pod ๋จ์๋ก storage๋ฅผ ๋๋ฉด storage ๊ณต๊ฐ์ ๋ญ๋นํ๋ pod๊ฐ ์์ ํ ๋ค. ๋ฐ๋๋ก ๊ณต๊ฐ์ด ๋ถ์กฑํ pod๋ ์์ ํ ๋ฐ, ๊ด๋ฆฌํ๊ธฐ๊ฐ ๋งค์ฐ ๊น๋ค๋ก์์ง๋ค. storage๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ค๋ฉด, storage๋ cloud ๊ตฌ์กฐ์ ๋ง๊ฒ ๊ตฌ์ฑํด์ผ ํ ํ์๊ฐ ์๋ค.
์ค์์ volume์ ์ง์คํ๊ธฐ ๋๋ฌธ์, ๋ค์ํ ํฌ๊ธฐ์ ๋ณผ๋ฅจ ์๋น์ค๋ ๊ฐ๋ฅํ๋ค. ์์ปจ๋ฐ 1G ๋ถํฐ 1T๊น์ง์ ์ ์ฐํ ๋ณผ๋ฅจ ์๋น์ค๋ฅผ ํ ์ ์๋ค.
ํจ์จ์ ์ธ EBS์ ๊ตฌ์ฑ์ ๋ํด์๋ ๋ฐ๋ก ๊ณ ๋ฏผ์ ํด์ผ ํ ๊ฒ ๊ฐ๋ค.
Guest Network
๊ฒ์คํธ vm์ ์ด ๋คํธ์ํฌ๋ฅผ ํตํด์ public network๋ก ๋๊ฐ๋ค.
16๊ฐ์ cnode๋ก ๊ตฌ์ฑ๋ pod์ด๋ผ๋ฉด guest network๋ 1G์ ๋๋ก ํ๋ฉด ์ถฉ๋ถํ ๊ฒ์ด๋ค. 10G๋ก ํ๋ฉด ์ฑ๋ฅ์ด ์ฌ๋ผ ๊ฐ ๊ฒ ๊ฐ์ง๋ง aggregation switch๊ฐ ์ฒ๋ฆฌํ์ง๋ ๋ชปํ ๋ฟ๋๋ฌ 30G ๋ฐฑ๋ณธ๋ง์ ๊ฐ์ง๊ณ ์๋ค๊ณ ํ๋๋ผ๋ ์ ํ ํ์ค์ฑ ์๋ ๊ณ ๋น์ฉ ๊ตฌ์ฑ์ด๋ค. 1G๋ก ํ๊ณ outlink port๋ง 10G๋ก ํด๋ ์ถฉ๋ถํ๋ค๊ณ ์๊ฐํ๋ค.