EC2 - Virtual Machin
Virtual Machin (Amazon EC2)
๊ฐ์ ์๋ฒ ์ธ์คํด์ค

๋ฐ์ดํฐ์ผํฐ ๋ฌผ๋ฆฌ ์๋ฒ ์์ ํ์ดํผ๋ฐ์ด์ ๋ฅผ ์ฌ๋ฆฌ๊ณ Guest OS๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฐ์๋จธ์ ์ ์ฌ๋ผ๊ฐ๊ฒ ๋๋๋ฐ VM Service๋ฅผ AWS๋ EC2(Elastic Cloud Compute)๋ผ ๋ถ๋ฆ
ํด๋ผ์ฐ๋๋ ๋ฒ์ธ์ผ๋จธ์ ์ ์ธ์คํด์ค๋ก ๋ถ๋ฅธ๋ค.
์๋ฒ์์ ํ์ํ ๋ ๋น ๋ฅด๊ฒ ๊ฐ์ ธ๋ค์ฐ๊ณ ๋ฒ๋ฆฌ๊ณ ์ฝ๊ฒ ์ด๋ฃจ์ด์ง๋๊ฒ์ ๊ฐ์กฐํ๊ธฐ ์ํด ์ธ์คํด์ค๋ผ ํํ
AMI (Amazon Machin Image)
AWS์์ ์ ๊ณตํ๋ ๊ฐ์๋จธ์ ํ ํ๋ฆฟ
OS, App, ์ค์ , ๋ฐ์ดํฐ ๋ฑ์ด ํฌํจ๋์ด์์
AMI๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ก์ด EC2 ์ธ์คํด์ค๋ฅผ ๋น ๋ฅด๊ฒ ์์ฑํ ์ ์์
๊ฐ์๋จธ์ ์๋ช
์ฃผ๊ธฐ

์คํ ์ค (Running)
์ ์ง๋จ (Stopped)
์ต๋ ์ ์ ๋ชจ๋ (Stopped - Hibernate)
ํน์ ํ OS ๊ธฐ๋ฐ ์ธ์คํด์ค ํ์ ๋ค์ ์ต๋ ์ ์ ๋ชจ๋๋ฅผ ์ง์ํจ
๋ ธํธ๋ถ์ ๋ซ์๋๋๊ฒ์ฒ๋ผ..?
์คํ์ค์ ๋นํด ์ปดํจํ ,๋ฉ๋ชจ๋ฆฌ ๋น์ฉ์ ๋ด์ง ์์๋ ๋๊ณ , ์ฌ์ฉํ ๋ ๋น ๋ฅด๊ฒ ๋ถํ ์ ํ๊ธฐ ์ํจ
์ข
๋ฃ๋จ (Terminate)
๋ง์ ์ฌ๋๋ค์ด ์ข ๋ฃ๊ฐ ๋๋๊ฑธ ์ ์ง๋๋๊ฑฐ๋ก ์ฐฉ๊ฐํ๊ณ Terminate๋ฅผ ์์ผฐ์
์ธ์คํด์ค๋ฅผ ์ข ๋ฃ์ํค๋ฉด ๋ณต๊ตฌ๊ฐ ๋ถ๊ฐ๋ฅ (๋์ดํฌ์ ์์ด ์ฃผ์ํด์ผํจ)
์ธ์คํด์ค ํ์
ex: c7gn.xlarge
c: Computed Optimize (Instance family)
7: instance generation
g: AWS Graviation processor (Processor family)
n: Network and EBS optimized (Adiitional Capability)
xlarge: Instance Size
ํด๋ผ์ฐ๋ ์ปดํจํ
์ต์
ํ ์คํธ ์ฉ๋์ ์ธ์คํด์ค๊ฐ ํ์ํ๋ค๋ฉด -> T ์๋ฆฌ์ฆ
๊ฐ์ฅ ๋ฒ์ฉ์ ์ธ ์ธ์คํด์ค๊ฐ ํ์ํ๋ค๋ฉด -> M ์๋ฆฌ์ฆ / C ์๋ฆฌ์ฆ (arm ํ๋ก์ธ์๊ฐ ์ฌ์ฉ๊ฐ๋ฅํ๋ค๋ฉด M7g, C7g)
HPC(๊ณ ์ฑ๋ฅ ์ปดํจํ ) ์ฉ๋์ ์ธ์คํด์ค๊ฐ ํ์ํ๋ค๋ฉด -> HPC ์๋ฆฌ์ฆ
ML์ ๋๋ฆฌ๊ธฐ ์ํ ์ธ์คํด์ค๊ฐ ํ์ํ๋ค๋ฉด -> G ์๋ฆฌ์ฆ / P ์๋ฆฌ์ฆ (FPGA๊ฐ ํ์ํ๋ค๋ฉด F ์๋ฆฌ์ฆ)
๋ก๋๋ฐธ๋ฐ์ฑ
์์ ๋ ํธ๋ํฝ ์์ฒญ์ EC2 Instance ๋๋ ์ปจํ ์ด๋, ํน์ IP์ฃผ์๋ก ๋ผ์ฐํ ํ๊ฒ ๋๋ ๋คํธ์ํฌ ์ค์์น
OSI 7 Layer ์ ์ก ๊ณ์ธต์์ ๋์ํ๊ฒ๋๋ ๋ก๋๋ฐธ๋ฐ์
ELB (Elastic Load Balanacer)
๊ธฐ๋ณธ์ ์ผ๋ก ํ๋์ End-point๋ฅผ ๊ฐ๊ณ ์์ง๋ง ์ฌ๋ฌ๊ฐ์ ๊ฐ์ฉ์์ญ์ผ๋ก ๊ณ ๊ฐ์ฉ์ฑ์ ํ๋ณดํ ์ ์๋๋ก ๋ด๋ถ์ ์ผ๋ก ๊ตฌํ๋์ด์์
๋ก๋๋ฐธ๋ฐ์ ์ต์
ALB: L7(Application ๋ ๋ฒจ) ๋ ์ด์ด์์ ๋์ํ๋ ์ค๋งํธ ๋ผ์ฐํฐ
Host Header, URI ๋ฑ์ ๊ธฐ๋ฐ์ผ๋ก Listener rule ์ง์ ๊ฐ๋ฅ
์ผ๋ฐ์ ์ผ๋ก ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๊ฒ๋จ
NLB: L4(๋คํธ์ํฌ) ๋ ์ด์ด ๋ก๋๋ฐธ๋ฐ์
์ด๋น ์์ฒ๋ง๊ฑด์ ํธ๋ํฝ์ ๊ฐ๋นํ ์ ์๋๋ก ์ต์ ํ๋ ์ฑ๋ฅ
์ํฌ๋ก๋ ์ฑ๊ฒฉ์ ๋ฐ๋ผ ALB ๋๋ NLB๋ฅผ ๋ง์ด ์ฌ์ฉํจ
CLB: ์ด์ ์ธ๋์ ํด๋์ ๋ก๋๋ฐธ๋ฐ์
์ฌ์ค์ deplicate๋ฅผ ์๋๊ณ ์์
GWLB: 3rd party ๋ฐฉํ๋ฒฝ ๋ฑ์ ๋คํธ์ํฌ applicance์ ํจ๊ป ์ฌ์ฉํ๋ ์ ์ฉ ๋ก๋๋ฐธ๋ฐ์
Gateway Load balancer
์ผ๋ฐ์ ์ธ ๋ชฉ์ ์ ๋ถํ๋ถ์ฐ ์ฉ๋๋ ์๋
ํน์ํ ๋ชฉ์ ์ฉ๋
Instance Customize
์ผ๋ฐ์ ์ผ๋ก staticํ ์ค์ (์ค๋๊ฑธ๋ฆฌ๋ ์ค์ )๋ค์ AMI์ ๋ง์๋ฃ๊ณ , ์ธ์คํด์ค๋ง๋ค ์ด๋์ ๊ฐ์ ธ์์ ์ค์ ํด์ผํ๋ ๊ตฌ์ฑ์ user data๋ฅผ ๊ฐ์ด ํ์ฉํ์ฌ ๋ถํ
AMI์ User Data ์ฌ์ด์ Sweet Spot์ ์ฐพ๋๊ฒ ํต์ฌ (ํจ์จ, ์๋, ์ต์ ํ)
Customized Image

์ธ์คํด์ค ์ปค์คํฐ๋ง์ด์ง - AMI
์ฒ์ ๋ถํ ๋ ๊นกํต(OS๋ง ๋ด๊ธด) ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ง๊ณ ๋ด๊ฐ ํ์ํ ์ํํธ์จ์ด๋ ๋ํ๋์, ํด์ ๋ชจ๋ ์ค์นํด์ ์ปค์คํฐ๋ง์ด์ฆ๋ EC2๋ฅผ ๋จผ์ ๋ง๋ฌ, ๊ทธ ํ ์ค๋ ์ท์ ์ฐ์ด์ ์ปค์คํฐ๋ง์ด์ฆ๋ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ฌ
base image (AMI) -> OS๋ง ๋ด๊ธด ๋น ๊นกํต
+ customizing
+ snapshot
= customized Image (AMI)
์ํฌ๋ก๋๋ฅผ ์ค์ ๋ก ๋๋ฆด ์ ์๋ AMI ์์ฑ!
User Data
์ธ์คํด์ค๊ฐ ์ต์ด ๋ถํ ํ ๋ ๋์๊ฐ๋ ์คํฌ๋ฆฝํธ

์ธ์คํด์ค๊ฐ ์ต์ด ๋ถํ ์ UserData๊ฐ ์ ์๋์ด์์ผ๋ฉด cloud-init ํ๋ก์ธ์ค๊ฐ ๋๋ฉด์ user-data์ ์ ์ํ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ์ฌ ์ธ์คํด์ค ๋ถํธ์คํฌ๋ํ
๋ถํธ์คํฌ๋ํ -> ์ค์ค๋ก๋ฅผ ์ด๊ธฐํํ๊ฑฐ๋ ์์ํ๋ ๊ณผ์ ์ ์๋ฏธ
์์ ์์์ ์์ ์ถ๋ฐํด ์ ์ ๋ ํฐ ์์คํ ์ ๋ง๋ค์ด๊ฐ๋ ๊ณผ์
๋น ๊นกํต์์ ์ ์ํ ์คํฌ๋ฆฝํธ๋ฅผ ์คํ*(์ค์น, ๋ฐ ์ค์ )ํ์ฌ ์ํฌ๋ก๋๋ฅผ ์คํํ ์ ์๋ EC2๋ก ์ค๋น๋จ
staticํ ์ค์ ๋ค์ด ๋๋ฌด ๋ง์ ๊ฒฝ์ฐ ๋ชจ๋ userData์ ๋ฃ๊ฒ๋๋ฉด ๋ถํ ํ๋๋ฐ ์๊ฐ์ด ์ค๋๊ฑธ๋ฆฌ๋ฏ๋ก ์คํ ์ค์ผ์ผ๋ง์ ๋์ํ๊ธฐ๊ฐ ๋นํจ์จ์ ์ผ๋ก ๋ณํ๋จ
์ปจํ ์ด๋ ๊ธฐ๋ฐ์ผ๋ก ์ํฌ๋ก๋๋ฅผ ๋ง๋ ๋ค๋ฉด, ์ด ์ปจํ ์ด๋๊ฐ ์ฟ ๋ฒ๋คํฐ์ค์ ๋๋ฆฌ๋๊ฒ์ผ๋ก ๊ตฌ์ฑํ๋ค๋ฉด ๊ธฐ๋ฐ AMI๊ฐ ์ค์ํ์ง ์๋ค.
์ด์ฐจํผ ํธ์คํธ๋ ๋ฒจ์ ๊นกํต์ผ๋ก ์ฐ๊ณ , ๊ทธ ์์ ์ปค์คํฐ๋ง์ด์ฆํ ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ง๊ณ ์ปจํ ์ด๋๋ฅผ ์ฌ๋ ค์ ์ฌ์ฉํ๋๊ฑฐ๊ธฐ ๋๋ฌธ์ ์ฌ์ค์ ์ธ์คํด์ค๋ ์ปจํ ์ด๋๋ฅผ ๋๋ฆด ์ ์๋ ํธ์คํธ ์ญํ ๋ง ํ๋ฉด ๋๋ค.
๊ทธ๋ฐ๊ฒ๋ค์ ์ด๋ฏธ AWS์์ ๊ธฐ๋ณธ AMI๋ก ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฐ ๊ฒฝ์ฐ AMI์ userData๋ฅผ ์ ์ํ ์ผ์ ๋ณ๋ก ์๊ธดํจ, (But EC2 ์์ฃผ์ ์ํฌ๋ก๋๋ผ๋ฉด ์์ฃผ ์ฌ์ฉํจ)
๊ฐ์๋จธ์ ์ ์
Mac OS์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ํฐ๋ฏธ๋์ ์ ๊ณตํ์ฌ ์ฌ์ฉ
Winodw๋ ์๋ ๊ฐ์ ํ๋ก๊ทธ๋จ์ ์ค์นํด์ SSH ์ ์ํ๊ฑฐ๋, Remote Desktop์ ์ด์ฉํด์ window RDP ์ ์ ๋ฑ
ํด๋ผ์ฐ๋๊ฐ ๋ฐ์ ํ๋ฉด์ ์ ์ ์ํ๋ ๋ฐฉ์์ ์ฌ๋ฏธ์๊ฒ ๋ณ๊ฒฝ์ํด
SSH/RDP Client
์ฌ์ ํ SSH/RDP ํด๋ผ์ด์ธํธ๋ก ์ ์ํ๋๊ฑด ์ ํจํ ๋ฐฉ๋ฒ์ด์ง๋ง ๊ทธ๋ ๊ฒ ํ๊ธฐ ์ํด์ 22(SSH) PORT, 3380(RDP)๋ฅผ EC2 Security Group์์ ์ด์ด์ค์ผํ๋ ๋ถ๊ฐ ์์ ์ด ํ์ํจ
Browser Session
์์ฆ์ ํด๋ผ์ฐ๋์์ ๋ธ๋ผ์ฐ์ ์ธ์ ์ ์ ๊ณต์ํจ
๋ธ๋ผ์ฐ์ ๋ฐฉ์์ผ๋ก ํด๋ผ์ฐ๋ WEB UI์์ ์คํธ๋ฆฌ๋ฐ ๋๋ ์ธ์ ์ ์ด์ด์ค
๋คํธ์ํฌ๋ฐฉ์์ผ๋ก ์ ์ํ๋๊ฒ์ด ์๋ API ๋ฐฉ์์ผ๋ก ์ ์ํ๋๊ฒ์ด๋ผ ์ทจ์ฝํ ํฌํธ๋ฅผ ์ด์ด์ค ํ์์์
๋์ ํด๋ผ์ฐ๋์์ ๊ธฐ๋ณธ์ ์ผ๋ก ํต์ฉ๋๋ ๊ถํ์ฒด๊ณ(AWS IAM) ๊ถํ, ์ฆ ๋ธ๋ผ์ฐ์ ์ธ์ ์ ์คํํ ์ ์๋ ๊ถํ์ ์ ์ ๋ ROLE์ด ๊ฐ๊ณ ์์ด์ผํจ
์๋ฒ ์ ์๋ง์ ๋ ํตํฉํด์ ๊ด๋ฆฌํ ์ ์์ด ์ด์์ธก๋ฉด์์ ํธ๋ฆฌํจ
์ทจ์ฝํ ํฌํธ๋ฅผ ์ด์ง ์์๋ ๋์ ๋ณด์์ ์ธ ์ธก๋ฉด์๋ ์ข๋ค.
Last updated