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 ์‹œ๋ฆฌ์ฆˆ)

FPGA(Field-Programmable Gate Array) - ํ•˜๋“œ์›จ์–ด์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์†Œํ”„ํŠธ์›จ์–ด์ฒ˜๋Ÿผ ์„ค๊ณ„ ๊ฐ€๋Šฅํ•œ ์นฉ

๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ

์ˆ˜์‹ ๋œ ํŠธ๋ž˜ํ”ฝ ์š”์ฒญ์„ 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์— ๋„ฃ๊ฒŒ๋˜๋ฉด ๋ถ€ํŒ…ํ•˜๋Š”๋ฐ ์‹œ๊ฐ„์ด ์˜ค๋ž˜๊ฑธ๋ฆฌ๋ฏ€๋กœ ์˜คํ† ์Šค์ผ€์ผ๋ง์— ๋Œ€์‘ํ•˜๊ธฐ๊ฐ€ ๋น„ํšจ์œจ์ ์œผ๋กœ ๋ณ€ํ™”๋จ

๊ฐ€์ƒ๋จธ์‹  ์ ‘์†

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