Bibi's DevLog ๐ค๐
VPC ๋ฐ ์๋ธ๋ท ์์ฑ (private์ธ์คํด์ค์ public์ธ์คํด์ค ๋ถ๋ฆฌ ์์ฑํ๊ธฐ) ๋ณธ๋ฌธ
VPC ๋ฐ ์๋ธ๋ท ์์ฑ (private์ธ์คํด์ค์ public์ธ์คํด์ค ๋ถ๋ฆฌ ์์ฑํ๊ธฐ)
๋น๋น bibi 2021. 6. 11. 23:21VPC ๋ฐ ์๋ธ๋ท ์์ฑ (private์ธ์คํด์ค์ public์ธ์คํด์ค ๋ถ๋ฆฌ ์์ฑํ๊ธฐ)
์ถ์ฒ : ์ฐ๋์ ํ๊ธฐ๋ ธํธ & ๊ฐ๋ฅด์นจ ๐โโ๏ธ
์ ๊ธ์ ๋จผ์ ์ฝ์ด๋ณด๊ณ ์์ํ์.
- VPC : virtual private cloud ๊ฐ์ ์ฌ์ค๋ง(์ฌ์ค๋คํธ์ํฌ).
- VPC ์ ๋ง๋๋๊ฐ?
- ์๋น์ค์ ๊ฐ๋ฐ๋ง์ ๋ถ๋ฆฌํ๋ ๋ฑ '๋ง ๋ถ๋ฆฌ'๋ฅผ ์ํด VPC๋ฅผ ์์ฑํ๋ค.
- ๊ธฐ๋ฅ์ ๋ฐ๋ผ VPC๋ฅผ ํตํด ๋คํธ์ํฌ๋ฅผ ๋ถ๋ฆฌํ๋ฉด ๋ณด์์, ๊ด๋ฆฌ์ ์ด์ ์ด ์๊ธฐ ๋๋ฌธ์ ์ฌ์ฉํ๋ค.
- ์๋ฅผ ๋ค์ด ๊ฐ๋ฐ/ํ๋ก๋์ /๋ฒ ํํ ์คํธ/์๋น์ค ... ๋ฑ ํ๊ฒฝ์ด ์กฐ๊ธ์ฉ ๋ฌ๋ผ์ผ ํ๋ฏ๋ก VPC๋ฅผ ์ฌ์ฉํ๋ค.
- VPC์ IPv4 CIDR๋ ์ฌ์คIP์ด๋ฏ๋ก ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ฐ๋ IP์ ๊ฒน์น์ง ์๋๋ค. ํ์ง๋ง reserved ip(private address space)๋ฅผ ํผํด
10.0.0.0/16
,172.16.0.0/16
,192.168.0.0/16
๋ฒ์ ๋ด์์๋ง ์ฌ์ฉํ์. ๋, ๊ด์ต์ ์ผ๋ก ์ฌ์ค๋ง์ 10๋ฒ๋๋ก ์ฌ์ฉํ๋ค.
1. VPC ๋ง๋ค๊ธฐ
aws ์ ์ - ์๋น์ค - [VPC] - [VPC์์ฑ]
์ด๋ฆ ์ค์
IPv4 CIDR๋ธ๋ก ์ค์
ํน๋ณํ ์ด์ ๊ฐ ์๋ค๋ฉด ์๋ ๋ฒ์์์ ์ค์ ํ๋ค. (์ฐธ๊ณ - IPv4 CIDR ์ฝ๋ ๋ฒ)
// Private Address Space 10.0.0.0 - 10.255.255.255 (10/8 prefix) 172.16.0.0 - 172.31.255.255 (172.16/12 prefix) 192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
10 / 172 / 192 ๋ก ์์ํ๋ฉฐ, ์ต์ํ ๋ค์ ๋ ์๋ฆฌ๋ ์ฌ์ฉํ ์ ์๋๋ก prefix๋ฅผ
/16
์ผ๋ก ์ค์ ํ๋ค. (prefix๋ /28 ๋ถํฐ /16๊น์ง ์ค์ ํ ์ ์๋ค)์๋ฅผ ๋ค์ด
10.10.0.0/16
์ผ๋ก ์ค์ ์,10.10.0.0
~10.10.255.255
๊น์ง ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
๋๋จธ์ง ์ต์ ์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋ ๋ค ์์ฑํ๋ค.
VPC๊ฐ ์์ฑ๋๋ฉด, ์๋์ผ๋ก ๊ธฐ๋ณธ ๋ผ์ฐํ ํ ์ด๋ธ์ด 1๊ฐ ์์ฑ๋๋ค.
2. ์๋ธ๋ท ๋ง๋ค๊ธฐ
private, public ์ธ์คํด์ค๋ฅผ ๋ด์ ์๋ธ๋ท์ ๊ฐ๊ฐ ์์ฑํ๋ค.
์๋ธ๋ท์ 1.์์ ์์ฑํ VPC์ ํฌํจ๋๋ค. (VPC โ ์๋ธ๋ท)
- ๋ ์๋ธ๋ท์ ๋ค๋ฅธ AZ์ฌ๋ ์๊ด์๋ค
- ๋จ, ์๋ธ๋ท์ด ํฌํจ๋ VPC ๋ด๋ถ ๋ฒ์์์๋ง IPv4 CIDR๋ฅผ ์ค์ ํ ์ ์๋ค.
- ์๋ธ๋ท๋ผ๋ฆฌ๋ IPv4 ๋ฒ์๊ฐ ๊ฒน์ณ์๋ ์ ๋๋ค.
- [VPC] - [์๋ธ๋ท] - [์๋ธ๋ท ์์ฑ]
- VPC : 1.์์ ์์ฑํ VPC๋ก ์ ํ.
- ๋งจ ์๋์ [์ ์๋ธ๋ท ์ถ๊ฐ]๋ฅผ ๋๋ฌ ์ด 2๊ฐ์ ์๋ธ๋ท์ ์์ฑํ ๊ฒ์ด๋ค.
- ์๋ธ๋ท ์ด๋ฆ : ์ ๋นํ ์ค์ ํ๋ ํ๋๋ private, ํ๋๋ public์ด๋ผ๊ณ ์ค์
- ๊ฐ์ฉ ์์ญ : ๊ฐ์ ๊ฐ์ฉ ์์ญ์ผ๋ก ์ค์ ํด๋ ๊ด์ฐฎ๋ค.
- IPv4 CIDR ๋ธ๋ก : VPC IPv4์ ๋ฒ์์ ํฌํจ๋์ด์ผ ํจ & ์๋ธ๋ท๋ผ๋ฆฌ ๋ฒ์๊ฐ ๊ฒน์ณ์ ์ ๋จ.
- ์๋ฅผ ๋ค์ด public์ธ์คํด์ค๋ฅผ ์ํ ์๋ธ๋ท์
10.10.1.0/24
๋ก, private์ธ์คํด์ค๋ฅผ ์ํ ์๋ธ๋ท์10.10.2.0/24
๋ก ์ค์ ํ๋ค.
- ์๋ฅผ ๋ค์ด public์ธ์คํด์ค๋ฅผ ์ํ ์๋ธ๋ท์
3. ๋ผ์ฐํ ํ ์ด๋ธ ๋ง๋ค๊ธฐ
VPC์ ์๋ธ๋ท์ ๋ฐ๋์ ๋ผ์ฐํ ํ ์ด๋ธ๊ณผ ์ฐ๊ฒฐ๋์ด ์์ด์ผ ํ๋ค.
private, public ์ธ์คํด์ค์ ์ฐ๊ฒฐํ ๋ผ์ฐํ ํ ์ด๋ธ์ ๊ฐ๊ฐ ๋ง๋ ๋ค.
์ฃผ์ : ์ธํฐ๋ท์ public ๋ผ์ฐํ ํ ์ด๋ธ์๋ง ์ฐ๊ฒฐ๋์ด์ผ ํ๋ค. private ๋ผ์ฐํ ํ ์ด๋ธ์๋ ์ธํฐ๋ท ์ฐ๊ฒฐ์ด ์์ด์ผ ํ๋ค.
- VPC์์ฑ์ ํตํด ๊ธฐ๋ณธ์ผ๋ก ๋ง๋ค์ด์ง ๋ผ์ฐํ
ํ
์ด๋ธ์ private์ธ์คํด์ค์ ์ฌ์ฉ๋ ์์ . ์ธํฐ๋ท ์ฐ๊ฒฐ์ด ์๋์ง ํ์ธํ๋ค. (๋ผ์ฐํ
๋ชฉ๋ก์ด local๋ฟ์ด์ด์ผ ํจ)
- ๋ค๋ฅธ ๋ผ์ฐํ ๋ชฉ๋ก์ด ์๋ค๋ฉด [๋ผ์ฐํ ํธ์ง]์ ๋๋ฌ ์ญ์ ํ๋ค.
- public์ธ์คํด์ค๊ฐ ์ฌ์ฉํ , ์ธํฐ๋ท์ด ์ฐ๊ฒฐ๋ ๋ผ์ฐํ
ํ
์ด๋ธ์ ์๋ก ์์ฑํ๋ค.
- [๋ผ์ฐํ ํ ์ด๋ธ ์์ฑ] - ์ด๋ฆ ์ค์
- VPC ์ ํ - 1.์์ ์์ฑํ VPC๋ก ์ ํํ๋ค.
- ๊ฐ ๋ผ์ฐํ ํ ์ด๋ธ์ ๋ง๋ค๊ณ ๋์, [์๋ธ๋ท ์ฐ๊ฒฐ] - [์๋ธ๋ท ์ฐ๊ฒฐ ํธ์ง]์ ํตํด private๋ผ์ฐํ ํ ์ด๋ธ - private ์๋ธ๋ท, public ๋ผ์ฐํ ํ ์ด๋ธ - public ์๋ธ๋ท ๋ผ๋ฆฌ ์ฐ๊ฒฐํ๋ค.
4. ์ธํฐ๋ท ๊ฒ์ดํธ์จ์ด ๋ง๋ค๊ธฐ
VPC๊ฐ ์ฌ์ฉํ ์ธํฐ๋ท ๊ฒ์ดํธ์จ์ด๋ฅผ ๋ง๋ค์ด ์ฃผ์ด์ผ ํ๋ค.
- [VPC] - [์ธํฐ๋ท ๊ฒ์ดํธ์จ์ด] - [์ธํฐ๋ท ๊ฒ์ดํธ์จ์ด ์์ฑ]
- ์ด๋ฆ๋ง ์ค์ ํ ๋ค ์์ฑํ๊ธฐ.
- [์์ ] - [VPC์ ์ฐ๊ฒฐ] - 1.์์ ์์ฑํ VPC์ ์ฐ๊ฒฐํด ์ค๋ค.
5. private ์ธ์คํด์ค, public ์ธ์คํด์ค ๋ง๋ค๊ธฐ
DB๋ฅผ ๊ตฌ์ถํ private์ธ์คํด์ค์, ์๋ฒ๋ฅผ ๊ตฌ์ถํ public์ธ์คํด์ค๋ฅผ ๊ฐ๊ฐ ์์ฑํ๋ค.
[EC2] - [์ธ์คํด์ค ์์]
- AMI : ํน๋ณํ ์ด์ ๊ฐ ์๋ค๋ฉด Ubuntu Server 64๋นํธ(x86) ์ ํ
- ์ธ์คํด์ค ์ ํ : ํ๋ฆฌํฐ์ด ์ฌ์ฉ์ค์ด๋ผ๋ฉด ํ๋ฆฌํฐ์ด ์ฌ์ฉ ๊ฐ๋ฅํ ์ ํ ์ ํ
- ์ธ์คํด์ค ์ธ๋ถ ์ ๋ณด ๊ตฌ์ฑ :
- ๋คํธ์ํฌ : 1.์์ ์์ฑํ VPC๋ก ์ ํ
- ์๋ธ๋ท : private ์ธ์คํด์ค ์์ฑ ์์๋ private ์๋ธ๋ท์ผ๋ก, public ์ธ์คํด์ค ์์ฑ ์์๋ public ์๋ธ๋ท์ผ๋ก ์ ํํ๋ค
- ํผ๋ธ๋ฆญIP ์๋ ํ ๋น : public ์ธ์คํด์ค ์์ฑ ์์๋ [ํ์ฑํ], private ์ธ์คํด์ค ์์ฑ ์์๋ [๋นํ์ฑํ]๋ฅผ ์ ํํ๋ค.
- ๋ค๋ฅธ ํญ๋ชฉ๋ค์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋๋ค.
- ์คํ ๋ฆฌ์ง ์ถ๊ฐ : ํน๋ณํ ์ด์ ๊ฐ ์๋ค๋ฉด ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋๊ณ ๋ค์ ์ ํ
- ํ๊ทธ ์ถ๊ฐ : ์ ๋นํ
Name
ํ๊ทธ๋ฅผ ์ถ๊ฐํด ์ธ์คํด์ค ์ด๋ฆ์ ์ ์ด ์ค - ๋ณด์ ๊ทธ๋ฃน : ์ ๋ณด์ ๊ทธ๋ฃน ์ ํ. ๋ณด์ ๊ทธ๋ฃน ์ด๋ฆ์ ์ ๋นํ ์ง๋ private์ public์ด ๊ตฌ๋ถ๋๊ฒ ํจ
- private ์ธ์คํด์ค ์์ฑ ์, ํฌํธ๋ก 22๋ฒ(SSH), 3306(MySQLํฌํธ) ์ ๊ฐ๋ฐฉํจ (๋ค๋ฅธ DB ์ฌ์ฉ ์ ํด๋น DB๊ฐ ์ฌ์ฉํ๋ ํฌํธ ์ด๊ธฐ). ์์ค๋ 22, 3306 ๋ ๋ค public์๋ธ๋ท์๋ง ์ด๋ ค ์์ด์ผ ํ๋ค. public์ธ์คํด์ค์ ip์ฃผ์๋ฅผ ์ ๊ฑฐ๋,
sg
๋ฅผ ์ ๋ ฅํด ์๋์์ฑ๋๋ public์๋ธ๋ท์ ์ ํํด ์์ฑํ๋ค. - public ์ธ์คํด์ค ์์ฑ ์, ํฌํธ๋ก 22๋ฒ(SSH), 8080(์คํ๋ง ์ฑ), 80(HTTP) ์ ๊ฐ๋ฐฉํจ (์๋ฒ์์ ์คํํ ์ ํ๋ฆฌ์ผ์ด์
์ด ๋์ํ๋ ํฌํธ ๊ฐ๋ฐฉ). ์์ค๋
0.0.0.0/0
๋ฐ::/0
์ผ๋ก ์ค์
- private ์ธ์คํด์ค ์์ฑ ์, ํฌํธ๋ก 22๋ฒ(SSH), 3306(MySQLํฌํธ) ์ ๊ฐ๋ฐฉํจ (๋ค๋ฅธ DB ์ฌ์ฉ ์ ํด๋น DB๊ฐ ์ฌ์ฉํ๋ ํฌํธ ์ด๊ธฐ). ์์ค๋ 22, 3306 ๋ ๋ค public์๋ธ๋ท์๋ง ์ด๋ ค ์์ด์ผ ํ๋ค. public์ธ์คํด์ค์ ip์ฃผ์๋ฅผ ์ ๊ฑฐ๋,
6. private ์ธ์คํด์ค์ ์ธํฐ๋ท ์ฐ๊ฒฐ (DB์ค์น๋ฅผ ์ํด)
(๋์ ๊ฒฝ์ฐ MySQL์ ์ค์นํ๋ค)
private์ธ์คํด์ค์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ธํฐ๋ท ์ฐ๊ฒฐ์ด ๋์ง ์์ผ๋ฉฐ ๋์ด์๋ ์ ๋๋ค. ๊ทธ๋ฌ๋ DB ์ค์น ์์ ์ ์ํด ์ ์ ๋์ ์ธํฐ๋ท ์ฐ๊ฒฐ์ ํด ์ค๋ค.
- ๋ผ์ฐํ ํ ์ด๋ธ - public ๋ผ์ฐํ ํ ์ด๋ธ ์ ํ - ์๋ธ๋ท ์ฐ๊ฒฐ - ๋ช ์์ ์๋ธ๋ท ์ฐ๊ฒฐ์ [์๋ธ๋ท ์ฐ๊ฒฐ ํธ์ง]
- ์ ํ๋ public์ธ์ private ์๋ธ๋ท๊น์ง ์ ํ ํ ์ ์ฅ
(๋๋ ์๋ธ๋ท - private ์๋ธ๋ท ์ ํ - ๋ผ์ฐํ ํ ์ด๋ธ - [๋ผ์ฐํ ํ ์ด๋ธ ์ฐ๊ฒฐ ํธ์ง] - ๋ผ์ฐํ ํ ์ด๋ธ ID๋ฅผ public์ผ๋ก ์ค์ ํ๋ค.)
์ด์ private ์ธ์คํด์ค๊ฐ ์ธํฐ๋ท์ด ๊ฐ๋ฅํ ์ํ๊ฐ ๋์์ง๋ง, ์ธํฐ๋ท ์ฐ๊ฒฐ์ ์ํด ip์ฃผ์๊ฐ ํ์ํ๋ค. ์ ์ ๋์ private์ธ์คํด์ค์ ํ๋ ฅ์ IP๋ฅผ ์ฐ๊ฒฐํด ์ค๋ค.
- ํ๋ ฅ์ IP - [ํ๋ ฅ์ IP ์ฃผ์ ํ ๋น] - ๊ธฐ๋ณธ ์ต์ ๊ทธ๋๋ก [ํ ๋น] ๋๋ฅด๊ธฐ
- ์์ฑ๋ ํ๋ ฅ์ IP ์ ํ - [ํ๋ ฅ์ IP์ฃผ์ ์ฐ๊ฒฐ]
- ๋ฆฌ์์ค ์ ํ : ์ธ์คํด์ค, ์ธ์คํด์ค : private ์ ํ ํ ์ ์ฅ
์ด์ private์ธ์คํด์ค๊ฐ ์ธํฐ๋ท ์ฌ์ฉ ๊ฐ๋ฅํ ์ํ๊ฐ ๋์์ผ๋ฏ๋ก, public์ธ์คํด์ค๋ฅผ ํตํด private์ธ์คํด์ค๋ก ์ ์ํด DB๋ฅผ ์ค์นํ๋ค.
(์ธํฐ๋ท ์ฐ๊ฒฐ ์ํ ํ์ธ ๋ช
๋ น์ด : ping ietf.org
)
DB ์ค์น ์๋ฃ ํ์๋ ๋ค์ private์ธ์คํด์ค์ ์ธํฐ๋ท ์ฐ๊ฒฐ์ ๋์ด์ผ ํ๋ค.
(โ ํ๋ ฅ์ IP๋ ์์ฑ ํ ์๋ฌด ์ธ์คํด์ค์๋ ์ฐ๊ฒฐ๋์ด ์์ง ์์ ์ ๊ณผ๊ธ์ด ์์๋จ)
- ํ๋ ฅ์ IP - ์์ฑํ IP ์ ํ - [์์ ] - [ํ๋ ฅ์ IP์ฃผ์ ์ฐ๊ฒฐ ํด์ ]
- ๋ค์ ์์ฑํ IP์ ํ - [์์ ] - [ํ๋ ฅ์ IP์ฃผ์ ๋ฆด๋ฆฌ์ค] (=์ญ์ )
- private ์๋ธ๋ท - ๋ผ์ฐํ ํ ์ด๋ธ - [๋ผ์ฐํ ํ ์ด๋ธ ์ฐ๊ฒฐ ํธ์ง] - public ์ธ์ ๊ธฐ๋ณธ ๋ผ์ฐํ ํ ์ด๋ธ๋ก ์ค์
์ด์ DB์ธ์คํด์ค๋ private์ผ๋ก, ์๋ฒ ์ธ์คํด์ค๋ public์ผ๋ก ์์ ํ๊ฒ ๋ถ๋ฆฌํด ์ฌ์ฉํ ์ ์๋ค!
(DB์ ์ ์์๋ public์ธ์คํด์ค๋ฅผ ํตํด private์ธ์คํด์ค๋ก ์ ์ํด์ผ ํจ)