Post

[AWS] EC2์™€ Cloud9์ƒ์„ฑ

๐Ÿ“Œ ๋“ค์–ด๊ฐ€๋ฉฐ

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” AWS์˜ VPC ๋„คํŠธ์›Œํฌ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ง์ ‘ ์„ค๊ณ„ํ•˜๊ณ , ์„œ๋กœ ๋‹ค๋ฅธ ๋ฆฌ์ „์˜ VPC๋ฅผ ๋‚ด๋ถ€๋ง์œผ๋กœ ์ž‡๋Š” VPC ํ”ผ์–ด๋ง(Peering)๊นŒ์ง€ ์‹ค์Šตํ•œ๋‹ค. ๋จผ์ € VPC๋ฅผ ์ด๋ฃจ๋Š” ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ •๋ฆฌํ•œ ๋’ค, ๋‚˜๋งŒ์˜ ๋„คํŠธ์›Œํฌ๋ฅผ ๋งŒ๋“ค๊ณ  ์„œ์šธโ†”๋„์ฟ„ ๋ฆฌ์ „์„ ์—ฐ๊ฒฐํ•œ๋‹ค.

VPC๋ž€? ์‚ฌ์šฉ์ž์˜ AWS ๊ณ„์ • ์ „์šฉ ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ. ์ž์ฒด ๋ฐ์ดํ„ฐ์„ผํ„ฐ์˜ ๋„คํŠธ์›Œํฌ์™€ ๋งค์šฐ ์œ ์‚ฌํ•˜๊ฒŒ, AWS์˜ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์ธํ”„๋ผ ์œ„์— ๊ฒฉ๋ฆฌ๋œ ๋‚˜๋งŒ์˜ ๋„คํŠธ์›Œํฌ ๊ณต๊ฐ„์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.


1. VPC ๊ตฌ์„ฑ ์š”์†Œ

VPC๋Š” ์—ฌ๋Ÿฌ ์š”์†Œ๊ฐ€ ๊ณ„์ธต์ ์œผ๋กœ(๋ฆฌ์ „ โ†’ AZ โ†’ ์„œ๋ธŒ๋„ท โ†’ ์ธ์Šคํ„ด์Šค) ๋งž๋ฌผ๋ ค ๋™์ž‘ํ•œ๋‹ค.

๊ตฌ์„ฑ ์š”์†Œ์—ญํ• ๋‹จ์œ„
VPC๊ณ„์ • ์ „์šฉ ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ๋ฆฌ์ „
SubnetVPC๋ฅผ ์ชผ๊ฐ  IP ๋ฒ”์œ„(AZ์— ๋ฐฐ์น˜)AZ
Routing TableํŠธ๋ž˜ํ”ฝ์„ ์–ด๋””๋กœ ๋ณด๋‚ผ์ง€ ๊ฒฐ์ •์„œ๋ธŒ๋„ท
Internet GatewayVPC โ†” ์ธํ„ฐ๋„ท ํ†ต์‹  ํ™œ์„ฑํ™”VPC
Network ACL์„œ๋ธŒ๋„ท ๊ฒฝ๊ณ„ ๋ฐฉํ™”๋ฒฝ(ํ—ˆ์šฉ/๊ฑฐ๋ถ€)์„œ๋ธŒ๋„ท
Security Group์ธ์Šคํ„ด์Šค ๊ฒฝ๊ณ„ ๋ฐฉํ™”๋ฒฝ์ธ์Šคํ„ด์Šค

๐Ÿ’ก NACL vs ๋ณด์•ˆ ๊ทธ๋ฃน โ€” ๊ธฐ๋ณธ๊ฐ’์ด ์ •๋ฐ˜๋Œ€๋‹ค. NACL์€ ์ธ๋ฐ”์šด๋“œ/์•„์›ƒ๋ฐ”์šด๋“œ๋ฅผ ๊ธฐ๋ณธ ํ—ˆ์šฉํ•˜๊ณ , ๋ณด์•ˆ ๊ทธ๋ฃน์€ ์ธ๋ฐ”์šด๋“œ๋ฅผ ๊ธฐ๋ณธ ๊ฑฐ๋ถ€ยท์•„์›ƒ๋ฐ”์šด๋“œ๋ฅผ ํ—ˆ์šฉํ•œ๋‹ค. ์„œ๋ธŒ๋„ท์€ ๋„“๊ฒŒ, ์ธ์Šคํ„ด์Šค๋Š” ์ข๊ฒŒ ํ†ต์ œํ•˜๋Š” ๊ตฌ์กฐ๋‹ค.


2. ๋‚˜๋งŒ์˜ ๋„คํŠธ์›Œํฌ ์•„ํ‚คํ…์ฒ˜

my-vpc๋ฅผ 10.0.0.0/16(์•ฝ 65,536๊ฐœ IP)์œผ๋กœ ์žก๊ณ , 4๊ฐœ์˜ AZ์— /20 ์„œ๋ธŒ๋„ท์„ ๋ฐฐ์น˜ํ•œ๋‹ค.

1
2
3
4
5
my-vpc  10.0.0.0/16  (10.0.0.0 ~ 10.0.255.255)
โ”œโ”€ my-pub-2a  10.0.0.0/20   (10.0.0.0 ~ 10.0.15.255)
โ”œโ”€ my-pub-2b  10.0.16.0/20  (10.0.16.0 ~ 10.0.31.255)
โ”œโ”€ my-pub-2c  10.0.32.0/20  (10.0.32.0 ~ 10.0.47.255)
โ””โ”€ my-pub-2d  10.0.48.0/20  (10.0.48.0 ~ 10.0.63.255)

โš ๏ธ ๊ฐ ์„œ๋ธŒ๋„ท์˜ /20์€ 4,096๊ฐœ IP์ง€๋งŒ, AWS๊ฐ€ ์ฒ˜์Œ 4๊ฐœ(๋„คํŠธ์›ŒํฌยทVPC ๋ผ์šฐํ„ฐยทDNSยทํ–ฅํ›„ ์˜ˆ์•ฝ)์™€ ๋งˆ์ง€๋ง‰ 1๊ฐœ(๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ)๋ฅผ ์˜ˆ์•ฝํ•˜๋ฏ€๋กœ ์‹ค์ œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ IP๋Š” 4,091๊ฐœ๋‹ค. ์„œ๋ธŒ๋„ท ํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•  ๋•Œ ์ด 5๊ฐœ๋ฅผ ๋นผ์•ผ ํ•œ๋‹ค.


3. VPC Peering์ด๋ž€?

VPC ํ”ผ์–ด๋ง์€ ์„œ๋กœ ๋‹ค๋ฅธ VPC๋ฅผ ์™ธ๋ถ€ ์ธํ„ฐ๋„ท์ด ์•„๋‹Œ ๋‚ด๋ถ€๋ง์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ์„œ์šธ ๋ฆฌ์ „ โ†” ๋„์ฟ„ ๋ฆฌ์ „์˜ VPC๋ฅผ ์ž‡๋Š”๋‹ค.

flowchart LR
    subgraph Seoul["๐Ÿ‡ฐ๐Ÿ‡ท ์„œ์šธ ๋ฆฌ์ „"]
        S_EC2["๐Ÿ’ป EC2<br/>(private IP)"]
    end
    subgraph Tokyo["๐Ÿ‡ฏ๐Ÿ‡ต ๋„์ฟ„ ๋ฆฌ์ „"]
        T_EC2["๐Ÿ’ป EC2<br/>(private IP)"]
    end
    S_EC2 <-- "VPC Peering<br/>(๋‚ด๋ถ€ private ํ†ต์‹ )" --> T_EC2

4. ํ”ผ์–ด๋ง ์—ฐ๊ฒฐ ์ƒ์„ฑ

๋„์ฟ„ ๋ฆฌ์ „์—์„œ ๊ธฐ๋ณธ VPC ID๋ฅผ ๋ณต์‚ฌํ•œ๋‹ค.

Untitled

์„œ์šธ ๋ฆฌ์ „์œผ๋กœ ๋Œ์•„์™€ ํ”ผ์–ด๋ง ์—ฐ๊ฒฐ ์ƒ์„ฑ์„ ๋ˆ„๋ฅธ๋‹ค. ์š”์ฒญ์ž๋Š” ๋‚ด VPC, ์ˆ˜๋ฝ์ž๋Š” ๋‚ด ๊ณ„์ • โ†’ ๋‹ค๋ฅธ ๋ฆฌ์ „(๋„์ฟ„)์„ ์„ ํƒํ•˜๊ณ  ๋ณต์‚ฌํ•œ ๋„์ฟ„ VPC ID๋ฅผ ๋ถ™์—ฌ๋„ฃ๋Š”๋‹ค.

Untitled

๋„์ฟ„ ๋ฆฌ์ „์˜ ํ”ผ์–ด๋ง ์—ฐ๊ฒฐ ํƒญ์— ์ˆ˜๋ฝ ๋Œ€๊ธฐ ์ค‘์ด ๋œจ๋ฉด, ์ž‘์—… โ†’ ์š”์ฒญ ์ˆ˜๋ฝ์„ ๋ˆ„๋ฅธ๋‹ค.

Untitled


5. ์ƒ๋Œ€ ๋ฆฌ์ „์— EC2 ์ƒ์„ฑ (์•ฝ์‹)

๋„์ฟ„ ๋ฆฌ์ „์— ํ™•์ธ์šฉ EC2๋ฅผ ๋งŒ๋“ ๋‹ค. ํ‚คํŽ˜์–ด ์—†์ด, HTTP ํŠธ๋ž˜ํ”ฝ ํ—ˆ์šฉ์„ ์ฒดํฌํ•˜๊ณ , ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋กœ ์ดˆ๊ธฐ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋„ฃ์–ด SSH ์—†์ด ๋ฐ”๋กœ ํ™•์ธ๋งŒ ํ•œ๋‹ค.

Untitled

Untitled


6. ๋ผ์šฐํŒ… ์ถ”๊ฐ€ & ํ”„๋ผ์ด๋น— ํ†ต์‹  ํ™•์ธ

ํ”ผ์–ด๋ง๋งŒ์œผ๋กœ๋Š” ํ†ต์‹ ์ด ์•ˆ ๋˜๊ณ , ์–‘์ชฝ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์— ์ƒ๋Œ€ ๋ฆฌ์ „์˜ IP ๋Œ€์—ญ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค. ๋„์ฟ„์—๋Š” ์„œ์šธ private IP, ์„œ์šธ์—๋Š” ๋„์ฟ„ private IP๋ฅผ ๋ผ์šฐํŒ…ํ•œ๋‹ค.

Untitled

์ด์ œ ์„œ์šธ EC2์—์„œ curl๋กœ ๋„์ฟ„ ๋ฆฌ์ „ ์ธ์Šคํ„ด์Šค์— ํ”„๋ผ์ด๋น— IP๋กœ ์ ‘์†๋œ๋‹ค.

Untitled

๐Ÿ’ก VPC ํ”ผ์–ด๋ง์€ ์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ + ์–‘๋ฐฉํ–ฅ ๋ผ์šฐํŒ…์ด ์„ธํŠธ๋‹ค. ํ•œ์ชฝ ๋ผ์šฐํŒ…๋งŒ ๋„ฃ์œผ๋ฉด ์š”์ฒญ์€ ๊ฐ€๋„ ์‘๋‹ต์ด ๋ชป ๋Œ์•„์˜จ๋‹ค. ๋ฐ˜๋“œ์‹œ ์–‘์ชฝ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ” ๋ชจ๋‘์— ์ƒ๋Œ€ ๋Œ€์—ญ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค.


๐Ÿ“ ์ •๋ฆฌ

1
2
3
4
5
VPC ๋„คํŠธ์›Œํฌ
โ”œโ”€ ๊ตฌ์„ฑ   VPC / Subnet / Routing / IGW / NACL / SG
โ”œโ”€ ์„ค๊ณ„   my-vpc 10.0.0.0/16 โ†’ /20 ์„œ๋ธŒ๋„ท 4๊ฐœ(AZ)
โ”œโ”€ IP     /20 = 4096๊ฐœ, ์˜ˆ์•ฝ 5๊ฐœ ๋นผ๋ฉด 4091๊ฐœ ์‚ฌ์šฉ
โ””โ”€ ํ”ผ์–ด๋ง ๋ฆฌ์ „ ๊ฐ„ ๋‚ด๋ถ€ ์—ฐ๊ฒฐ + ์–‘์ชฝ ๋ผ์šฐํŒ… ์ถ”๊ฐ€
๊ฐœ๋…ํ•œ ์ค„ ์ •์˜
VPC๊ณ„์ • ์ „์šฉ ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ
SubnetAZ์— ๋ฐฐ์น˜๋œ VPC์˜ IP ๋ฒ”์œ„
VPC PeeringVPC ๊ฐ„ ๋‚ด๋ถ€(private) ์—ฐ๊ฒฐ

VPC ์„ค๊ณ„์˜ ํ•ต์‹ฌ์€ CIDR๋กœ IP ๋Œ€์—ญ์„ ๋‚˜๋ˆ„๊ณ , ์„œ๋ธŒ๋„ท์„ AZ์— ๋ฐฐ์น˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ํ”ผ์–ด๋ง์€ ๋ฆฌ์ „์„ ๋„˜์–ด ๋‚ด๋ถ€๋ง์„ ์ž‡์ง€๋งŒ, ์–‘์ชฝ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ” ๋“ฑ๋ก์„ ๋น ๋œจ๋ฆฌ๋ฉด ํ†ต์‹ ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์„ ๊ผญ ๊ธฐ์–ตํ•˜์ž.

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.