[AWS] ๐ VPC ๊ฐ๋ & ์ฌ์ฉ - ์ฌ์ค IP ํต์ ๋ง [NAT Gateway / Bastion Host]

VPC ์ฌ์ค๋ง ์ธ๋ถ ํต์
์์ ์ฐ๋ฆฌ๋ public ์๋ธ๋ท๊ณผ private ์๋ธ๋ท์ ๋๋ ๊ตฌ์ถํ์๋ค.
public ์๋ธ๋ท์ ์ธํฐ๋ท๊ณผ ์ฐ๊ฒฐํ์ฌ ์ธ๋ถ์์ ์ ๊ทผ์ด ๊ฐ๋ฅํ ์์ญ์ ๋งํ๋ค. ๋ฐ๋ผ์ public ์๋ธ๋ท๊ณผ ์ธํฐ๋ท ๊ฒ์ดํธ์จ์ด๋ฅผ ์ฐ๊ฒฐ์ํด์ผ๋ก์ ์ธ๋ถ ์ธํฐ๋ท๊ณผ ํต์ ์ด ๋๊ฒ ํ์๋ค.
private ์๋ธ๋ท์ ์ธ๋ถ ์ธํฐ๋ท์ ์ฐจ๋จํ๊ณ ๋ด๋ถ์์๋ง ์ฌ์ฉํ๊ธฐ ์ํด ๋ง๋ Subnet์ด๋ค. ์๋ฅผ ๋ค์ด Database Service์ธ RDS๋ฅผ ๋ฃ์ด๋๊ณ , RDS๋ ์ค์ํ ์ ๋ณด์ด๋ ์ธ๋ถ์์์ ์ ์์ ์ฐจ๋จํ๋ ํํ๋ก ์ด์ฉํ๋ค.
"๊ทธ๋ฐ๋ฐ ๋ง์ผ RDS๊ฐ ์ธ๋ถ ์ธํฐ๋ท์ ํตํด ์ ๋ฐ์ดํธ๋ฅผ ํด์ผ ํ ์ผ์ด ์๊ธด๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น?"
๊ณต์ธ IP๋ฅผ ์์ฑํด์ private ์๋ธ๋ท๋ Internet Gateway๋ฅผ ํตํด ์ฐ๊ฒฐํด์ค์ผํ ๊น?
๊ทธ๋ฌ๋ฉด ๊ทธ๊ฑด public ์๋ธ๋ท์ด์ง private๊ฐ ์๋๊ฒ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ธ๋ถ์์๋ ์นจ์
์ด ๊ฐ๋ฅํด์ ธ ๋ณด์์ด ๋ฌธ์ ๊ฐ ๋๋ค.
๋ฐ๋ก ์ด๋ฌํ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ ๊ฒ์ด NAT Gateway์ Bastion Host ๊ธฐ์ ์ด๋ค.
์ด ๋์ ์ฌ์ค๋ง์ ๊ตฌ์กฐ๋ฅผ ์ ์ง์์ผ์ฃผ๋ฉด์ ์ธ๋ถ์ ์กฐ๊ฑด์ ์ผ๋ก ๋ฐ์ดํฐ ํต์ ์ด ๊ฐ๋ฅํ๊ฒ ํด์ค๋ค.
NAT ๊ฒ์ดํธ์จ์ด (Network Address Translation)
๋คํธ์ํฌ ์ฃผ์ ๋ณํ(Network Address Translation, ์ค์ฌ์ NAT)์ IP ํจํท์ TCP/UDP ํฌํธ ์ซ์์ ์์ค ๋ฐ ๋ชฉ์ ์ง์ IP ์ฃผ์ ๋ฑ์ ์ฌ๊ธฐ๋กํ๋ฉด์ ๋ผ์ฐํฐ๋ฅผ ํตํด ๋คํธ์ํฌ ํธ๋ํฝ์ ์ฃผ๊ณ ๋ฐ๋ ๊ธฐ์ ์ ๋งํ๋ค.
๋ํ์ ์ผ๋ก ์ฌ์ค IP๋ฅผ ์ธ๋ถ ์ธํฐ๋ท๊ณผ ํต์ ํ๊ธฐ์ํด ์ฐ์ธ๋ค.
[WEB] ๐ NAT ์ด๋ ๋ฌด์์ธ๊ฐ?
NAT - Network Address Translation ๊ฐ๋ ๋คํธ์ํฌ ์ฃผ์ ๋ณํ(network address translation, ์ค์ฌ์ NAT)์ ์ปดํจํฐ ๋คํธ์ํน์์ ์ฐ์ด๋ ์ฉ์ด๋ก์, IPํจํท์ TCP/UDP ํฌํธ ์ซ์์ ์์ค ๋ฐ ๋ชฉ์ ์ง์ IP ์ฃผ์ ๋ฑ์..
inpa.tistory.com

NAT๋ฅผ ์ด์ฉํ๋ ์ด์ ๋ ๋๊ฐ ์ฌ์ค ๋คํธ์ํฌ์ ์ํ ์ฌ๋ฌ ๊ฐ์ ํธ์คํธ๊ฐ ํ๋์ ๊ณต์ธ IP ์ฃผ์๋ฅผ ์ฌ์ฉํ์ฌ ์ธํฐ๋ท์ ์ ์ํ๊ธฐ ์ํจ์ด๋ค.
Internet ์ ์์ด ๊ฐ๋ฅํ Public Subnet์ NAT Gateway๋ฅผ ์์ฑํด๋๊ณ , Private Subnet์ด ์ธ๋ถ ์ธํฐ๋ท์ผ๋ก ๋์๊ฐ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉํ๋๋ก ๋ผ์ฐํ ์ ์ถ๊ฐํด์ฃผ๋ ๊ฒ์ด๋ค.
public ์๋ธ๋ท๊ณผ private ์๋ธ๋ท์ ๊ฐ์ VPC์์ ์์ผ๋ฉด ์๋ก ํต์ ํ ์์๋ค๋ ์ ์ ์ด์ฉํ์ฌ, NAT ๊ฒ์ดํธ์จ์ด๋ฅผ ์์ฑํด์ฃผ๋ฉด ๋ง์น ๋๋ฆฌ๊ธฐ์ฌ ์ญํ ์ฒ๋ผ public ์๋ธ๋ท์ด ์ธ๋ถ ์ธํฐ๋ท ๋ฐ์ดํฐ๋ฅผ private ์๋ธ๋ท์๊ฒ ๋์ ์ ๋ฌํด์ฃผ๊ฒ ๋๋ค.
NAT Gateway๋ ๋ด๋ถ์์ ์ธ๋ถ๋ก์ ์ ์๋ง ๊ฐ๋ฅํ๋ฉฐ ์ธ๋ถ์์ NAT Gateway๋ฅผ ์ด์ฉํ์ฌ ์ ์ํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ค๋ ํน์ง์ ๊ฐ์ง๊ณ ์๋ค. ๋ฐ๋ผ์ NAT Gateway๋ฅผ ์ด์ฉํ๋ฉด ์ธ๋ถ ์ธํฐ๋ท ์ฐ๊ฒฐ์ ์ํ ๋ณด์ ๋ฌธ์ ๋ ์ผ์์ด์กฐ๋ก ํด๊ฒฐํ ์ ์๊ฒ ๋๋ค.

์์ ๋ฐฐ์ด ์ธํฐ๋ท ๊ฒ์ดํธ์จ์ด(IGW)์ ๋น๊ตํ์๋ฉด, IGW๋ NAT GW๋ฅผ ์์ฐ๋ฅด๋ ์์๊ฐ๋ ์ด๋ค.
์ฆ, NAT GW๋ IGW ์์ธ ๋์ํ ์ ์๋ ๊ฒ์ด๋ค.
๋ค๋ง NAT GW๋ Private Subnet์ ์์๋ ๋ฆฌ์์ค๋ค์ด ์ธ๋ถ ์ธํฐ๋ท ํต์ ์ ํด์ฃผ๊ฒ ํ๋ ํน์ง์ด ์๋ค๊ณ ๋ณด๋ฉด ๋๋ค.
NAT ๊ฒ์ดํธ์จ์ด ์๊ธ
๊ธฐ๋ณธ์ ์ผ๋ก VPC์ ๊ตฌ์ฑ์์๋ ์๋ธ๋ท, ๋ณด์๊ทธ๋ฃน, NACL, ์ธํฐ๋ท ๊ฒ์ดํธ์จ์ด ์ ๋ํด์๋ ๋ฐ๋ก ์ฌ์ฉ๋ฃ๊ฐ ์๋ค.
๋ค๋ง ์ ์ผํ๊ฒ NAT Gateway์ ๋ํ ์ฌ์ฉ๋ฃ๊ฐ ์กด์ฌํ๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ํธ๋ํฝ์ด ๋๊ฐ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์๊ธ์ด ๋ฐ์ํ๋ฉฐ, ๊ณ์ ๋๋ ค๋๊ณ ๋ง ์์ด๋ ์๊ฐ๋น ์๊ธ์ด ์ฒญ๊ตฌ๋๋ ๊ฝค ๊ฐ๋น์ผ ์๋น์ค์ด๋ค.
๋ง์ผ ์๊ธ์ ์๋ผ๊ณ ์ถ๋ค๋ฉด ๋ฐ๋ก ๋ค์์ ์๊ฐ๋ NAT Instance์ ๋ํด ์์๋๋๊ฑธ ๊ถ์ฅํ๋ค.
์ ํ | ์ ์ฑ |
NAT ๊ฒ์ดํธ์จ์ด | NAT ๊ฒ์ดํธ์จ์ด ์๊ฐ๋น ์๊ธ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์๊ธ โ NAT ๊ฒ์ดํธ์จ์ด๋ฅผ ํตํด ์ฒ๋ฆฌ๋ ๊ฐ ๊ธฐ๊ฐ๋ฐ์ดํธ์ ์ ์ฉ. ํ์ค AWS ๋ฐ์ดํฐ ์ ์ก ์๊ธ๋ ๋ฐ์ |
NAT Instance ๋?
NAT ๊ฒ์ดํธ์จ์ด๋ฅผ ๋ฐฐ์ฐ๋ค ๋ณด๋ฉด, NAT ์ธ์คํด์ค๋ผ๋๊ฑธ ๋ค์ด๋ณผ ๊ฒ์ด๋ค.
๊ฐ์ NAT์ธ๊ฐ? NAT ๊ฒ์ดํธ์จ์ด๊ฐ ์๋๋ฐ ์ธ์คํด์ค๋ ๋ ๋ญ์ผ? ๋ผ๊ณ ์๊ฐ๋ค ํ ๊ฒ์ด๋ค.
NAT ์ธ์คํด์ค๋ ๊ฐ์ NAT ์ญํ ์ ํ๋ ๋์ด๋ค.
๋ค๋ง NAT ๊ฒ์ดํธ์จ์ด์ ์ฐจ์ด์ ์, NAT ๊ฒ์ดํธ์จ์ด๋ AWS์์ ์ ๊ณตํ๋ ์ต์ ์ ์๋น์ค์ด๋ฉฐ, NAT ์ธ์คํด์ค๋ EC2๋ฅผ NAT๋ก ์ฌ์ฉํ๋ ๊ตฌ์ ๊ธฐ์ ์ด๋ค.
์์ ์ NAT ๊ฒ์ดํธ์จ์ด ์๋น์ค๊ฐ ๋์ค๊ธฐ ์ด์ EC2 ์ธ์คํด์ค๋ฅผ NAT ์ธ์คํด์ค๋ก ํ์ฉํ์ฌ NAT ํต์ ์ ํด์์๋ค.
๊ทธ๋ฌ๋ NAT ๊ฒ์ดํธ์จ์ด๊ฐ ์ถ์๋๋ฉด์ NAT ์ธ์คํด์ค ๋ฐฉ์์ ๊ตฌ์์ด ๋์์ผ๋ฉฐ ์ธ์ผ์ด ๊ฑฐ์ ์์ด์ก์ง๋ง, NAT ๊ฒ์ดํธ์จ์ด๋ NAT ์ธ์คํด์ค๋ณด๋ค ๊ฐ๊ฒฉ์ด 3๋ฐฐ ๊ฐ๊น์ด ๋๊ฐ๋ค๋ ์ ๋๋ฌธ์ NAT ์ธ์คํด์ค๋ฅผ ์ ์ฉํ๋ ๊ธฐ์
๋ ์๋ค.
์๊ทธ๋๋ VPC ๊ณต๋ถํ๋๋ฐ ์๋ ๋ง๊ณ ํ๋ค์ด์ฃฝ๊ฒ ๋๋ฐ ๊ตณ์ด ๋ฐฐ์์ผ ํ๋๊ฐ? ๋ผ๊ณ ๋ฌป๋๋ค๋ฉด ๊ฐ์ธ์ ์ผ๋ก ๋ฐฐ์ฐ๊ธธ ์ถ์ฒํ๋ ํธ์ด๋ค.
์์ ๋งํ๋ฏ์ด EC2๋ฅผ NAT์ฉ๋๋ก ์ฌ์ฉํ๋๊ฑฐ๋ผ, EC2๋ฅผ ๊ตฌ์ถํ ์ค๋ง ์๋ฉด, ๊ทธ๋ฅ ํด๋ฆญ ๋ช๋ฒ์ผ๋ก NAT์ ์ค์ ํ ์ ์์ด ๊ทธ๋ฆฌ ๊ตฌ์ถ ๊ณผ์ ์ด ์ด๋ ต์ง ์์ ๋ฟ ๋๋ฌ, ๋ฌด์๋ณด๋ค NAT ๊ฒ์ดํธ์จ์ด์ ์ ์ ๋๊ฐ ๋น์ฉ๋๋ฌธ์, ๋ง์ผ ๊ฐ์ธ ๊ณต๋ถ์ฉ์ด๋ ํฌํธํด๋ฆฌ์ค์ฉ์ผ๋ก AWS๋ฅผ ์ฌ์ฉํ๋ค๊ณ ํ๋ฉด ๊ฐ๋ ฅํ ์ถ์ฒํ๋ ๋ฐ๋ค.
NAT ๊ฒ์ดํธ์จ์ด๋ ์์ธ ์ง์ญ ๊ธฐ์ค์ผ๋ก ์๊ฐ๋น 0.059๋ฌ๋ฌ์ ๋น์ฉ์ด ๋ฐ์ํ๋๋ฐ, ์ด๊ฑธ 24์๊ฐ ๋ด๋ด ๊ฐ๋ํ๊ณ ์๋ค๊ณ ์๊ฐํ์. ๋ฉฐ์น ๋ง์ ์๊ธํตํญํ์ ๋ง๊ฒ ๋ ๊ฒ์ด๋ค. ์ด๋ฐ๊ฑด ํ์ฌ ์ค๋ฌด์์๋ ์ฐ์ด๋ ๊ฒ์ด๋ค.
๋ฐ๋ฉด NAT ์ธ์คํด์ค๋, ๋ง์ผ ํ๋ฆฌํฐ์ด EC2๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ๊ทธ๋๋ก ์๊ธ์ ๊ฐ ๋ฐ๋ผ๊ฐ ๋ฌด๋ฃ๋ก ์ฌ์ฉํ ์๋ ์๋ค!
๐ NAT ๊ฒ์ดํธ์จ์ด ๋์ NAT ์ธ์คํด์ค๋ก ๋น์ฉ์ ํ ์ค์ด์!
[AWS] ๐ NAT Gateway โ NAT Instance ๋์ฒดํด์ ๋น์ฉ ์ ์ฝํ๊ธฐ
NAT ์ธํ๋ผ AWS์์ ๋คํธ์ํฌ๋ฅผ ์ค๊ณํ ๋ NAT์ ์ฌ์ฉ์ ํ์์ ์ด๋ค. ๋ณด์์ ์๋ฒ๋ค์ ์ธ๋ถ์์ ์ ๊ทผํ ์ ์๊ณ ํ์ธํ ์ ์๋๋ก ํด์ผํ๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋์ VPC ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํ ๋ Public ์๋ธ๋ท๊ณผ P
inpa.tistory.com
๋ฐ๋ผ์ NAT ๊ฒ์ดํธ์จ์ด์ NAT ์ธ์คํด์ค๋ฅผ ์ ๋ฆฌํ์๋ฉด, ๋ค์๊ณผ ๊ฐ๋ค.

- NAT Instance : ๊ทธ๋ฅ EC2 ๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค. ํน๋ณํ AMI๋ฅผ ์ค์นํ EC2๋ผ๊ณ ๋ณด๋ฉด ๋๋ค. ๊ทธ๋์ ๊บผ์ง๋ฉด ์ฃฝ๋๋ค.
- NAT Gateway : aws์์ ์ ๊ณตํ๋ ํ๋์ ์๋น์ค์ด๋ค. ๊ณ ๊ฐ์ฉ์ฑ์ด ๋ณด์ฅ๋๊ณ ์์ด์ ์ฃฝ์ง๋ฅผ ์๋๋ค.
NAT Instance | NAT Gateway |
๋จ์ผ ์ธ์คํด์ค | AWS์์ ์ ๊ณตํ๋ ์๋น์ค |
= EC2 | = ์๋น์ค |
๊บผ์ง๋ฉด ์ฃฝ์ | ๊บผ์ ธ๋ ์ฃฝ์ง์์(๊ณ ๊ฐ์ฉ์ฑ ๋ณด์ฅ) |
๋ณด์๊ทธ๋ฃน ์ํฅ ๋ฐ์ | ๋ณด์๊ทธ๋ฃน ์ํฅ ๋ฐ์ง์์ |
์์ ์คํ์ผ | ์์ฆ ์คํ์ผ |
Source/Destination์ ํด์ ํด์ผ ํจ | |
Bastion์ ๊ฒธํ ์O | Bastion์ ๊ฒธํ ์X |
Public Subnet์ ์์ด์ผ ํจ | Public Subnet์ ์์ด์ผ ํจ |
NAT ๊ฒ์ดํธ์จ์ด ์ค์ ๊ตฌ์ถํ๊ธฐ
AWS Management Console์ ์ ์ํ์ฌ VPC ์๋น์ค์์ NAT ๊ฒ์ดํธ์จ์ด๋ฅผ ์ ํํ๋ค.

NAT ๊ฒ์ดํธ์จ์ด๋ Private Subnet๊ณผ ์ธ๋ถ์์ ํต์ ๋งค๊ฐ์ฒด ์ด๊ธฐ ๋๋ฌธ์, ์ธ๋ถ์ ์ ๊ทผํ ์ ์์ด์ผ ํ๊ธฐ ์ํด์ ์๋ธ๋ท์ ๊ผญ Public Subnet์ผ๋ก ํ ๋นํ์ฌ์ผ ํ๋ค.
์ ํํ ๋งํ์๋ฉด, NAT Gateway๋ ๋ฐ๋์ Internet Gateway๊ฐ ์๋ Public Subnet(10.0.1.0/24, 10.0.2.0/24)์ ์์ฑํด์ผ ํ๋ค.
๊ทธ๋ฆฌ๊ณ Elastic IP(ํ๋ ฅ์ IP ์ฃผ์)๋ฅผ ํ๋ ๋ง๋ค์ด NAT Gateway์ ํ ๋นํ์ฌ์ผ ํ๋ค.
[AWS] ๐ EIP(ํ๋ ฅ์ IP) ๊ฐ๋ & ์ฌ์ฉ ์ธํ ์ ๋ฆฌ
Elastic IP (ํ๋ ฅ์ IP) EIP(Elastic IP Address)๋ ์ธํฐ๋ท์ ํตํด ์ ์ํ ์ ์๋ ๊ณ ์ ์ ์ธ ๊ณต์ธ IP ์ฃผ์๋ฅผ ํ ๋นํ ์ ์๊ณ , ์ธ์คํด์ค์ ์ฐ๊ฒฐํ ์ ์๋ ์๋น์ค๋ค. ๋ชจ๋ ์ธ์คํด์ค ๋๋ ๋คํธ์ํฌ ์ธํฐํ์ด์ค
inpa.tistory.com
๊ทธ๋ฌ๋ฉด Private Subnet(10.0.3.0/25, 10.0.4.0/25)์ ์๋ ์ธ์คํด์ค๋ค์ ์ธ๋ถ ์ธํฐ๋ท์ผ๋ก ๋์๊ฐ ๋ Elastic IP(๊ณต์ธ IP)๋ก Source IP NAT๋์ด ๋๊ฐ๊ฒ ๋๋ค.
(EC2(10.0.3.x/24, Private Subnet) - > NAT Gateway - > Internet Gateway - > ์ธ๋ถ ์ธํฐ๋ท)

์ด์ฒ๋ผ ํด๋ฆญ ๋ช๋ฒ ๋ง์ผ๋ก NAT ๊ฒ์ดํธ์จ์ด๋ฅผ ๊ฐ๋จํ๊ฒ ์์ฑํ ์ ์๋ค.

ํ์ง๋ง NAT ๊ฒ์ดํธ์จ์ด๋ฅผ ์์ฑํ๋ค๊ณ , Private Subnet์์ ์ธ๋ถ๋ก ์ ๊ทผํ ์ ์๋ ๊ฒ์ ์๋๋ค.
์์์ ์ธํฐ๋ท ๊ฒ์ดํธ์จ์ด๋ฅผ public subnet ๋ผ์ฐํ ํ ์ด๋ธ์ ์ถ๊ฐํ๋ ๊ฒ ์ฒ๋ผ, ์ด๋ฒ์๋ ํผ๋ธ๋ฆญ์ด ์๋ private subnet์ ๋ผ์ฐํ ํ ์ด๋ธ์ ์ค์ ์ ๋ณ๊ฒฝํ๋ฉด ๋๋ค.
Private Subnet์ ๋ผ์ฐํ ํ ์ด๋ธ์ ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋ด๋ถ ํธ๋ํฝ์ ๋ํด์๋ง local๋ก ๋ณด๋ด๋ผ๋ ํ ์ด๋ธ๋ง ์ค์ ๋์ด ์์ ๊ฒ์ด๋ค.
๋ผ์ฐํ ํธ์ง์ ํตํด, 0.0.0.0/0 ์ฆ ๋ชจ๋ ํจํท์ nat๋ก ๋ณด๋ด๋ผ๋ ํ ์ด๋ธ์ ์ถ๊ฐํ๋ฉด ๋๋ค.
๊ณต์ธ ์ธํฐ๋ท(0.0.0.0)์ ๋ํด์๋ NAT Gateway๊ฐ ์๋ Public Subnet์ผ๋ก ์ด๋ํ์ฌ Elastic IP(๊ณต์ธ IP)๋ก ์ฃผ์๋ฅผ ๋ณํํ ํ Internet Gateway๋ฅผ ํตํด ๊ณต์ธ ์ธํฐ๋ท์ผ๋ก ๋์๊ฐ๊ฒ ๋๋ค.



์ง๊ธ๊น์ง์ ์ค์ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
- Internet Gateway๊ฐ ์๋ Public Subnet์ NAT Gateway ์์ฑํ๊ณ Elastic IP(๊ณต์ธ IP) ํ ๋น
- Private Subnet์ Routing table์ 0.0.0.0/0์ ๋ํ์ฌ NAT ๊ฒ์ดํธ์จ์ด(nat-id) ์ถ๊ฐ
์ด๋ฅผ ์ด๋ฏธ์ง๋ก ํํํ๋ฉด ์๋์ ๊ฐ๋ค. ์ด์ Private Subnet์ ์๋ ์๋น์ค๋ค์ ์ธํฐ๋ท ํต์ ์ด ๊ฐ๋ฅํ๊ฒ ๋์๋ค.

์ฐธ๊ณ ๋ก ์ฌ๋ฌ ๊ฐ์ฉ์์ญ์ NAT ๊ฒ์ดํธ์จ์ด๋ฅผ ํ๋๋ฅผ ๊ณต์ ํ๊ฒ ๋๋ฉด NAT ๊ฒ์ดํธ์จ์ด ๊ฐ์ฉ์์ญ์ด ๋ฌธ์ ๊ฐ ์๊ฒผ์ ๋ ๋ค๋ฅธ์ชฝ๋ ์ํฅ์ ๋ฐ๊ฒ ๋๋ค. ๋ฐ๋ผ์ ๊ฐ์ฉ์์ญ ๋น NAT ๊ฒ์ดํธ์จ์ด๋ฅผ ๋ง๋๋๊ฑธ ๊ถ์ฅ๋๋ ํธ์ด๋ค.
Bastion Host
์์ NAT Gateway๋ฅผ ํตํด private ์๋ธ๋ท๋ ์ธ๋ถ ์ธํฐ๋ท๊ณผ ๊ฐ์ ์ ์ผ๋ก ์ฐ๊ฒฐ๋ ์ ์์๋ค.
๋ค๋ง NAT Gateway๋ ์๋ธ๋ท์์ ์ธ๋ถ๋ก ๋๊ฐ์๋ ์์ด๋, ๊ฑฐ๊พธ๋ก ์ธ๋ถ์์ private ์๋ธ๋ท์ผ๋ก ์ ์์ ๋ชปํ๋ค.
๋ง์ผ ssh๋ก ์ธ๋ถ์์ ์ธ์คํด์ค์ ์ ์ํด ์กฐ์ ํ ์ผ์ด ์๋ค๋ฉด, private ์๋ธ๋ท์ ์ด๋ป๊ฒ ์ ์ํด์ ํด์ผํ ๊น?
์์ ์ธ๋ถ์์ private ์๋ธ๋ท์ผ๋ก๋ ์์ ์ ์์ ๋ชปํ๋ ๊ฒ์ผ๊น?
๊ฐ๋ฅํ๊ฒ ํด์ค ์ ์๋ค.
๋ฐ๋ก ์ด๋ฌํ ์ญํ ์ ํด์ฃผ๋๊ฒ Bastion Host์ด๋ค

Bastion Host๋ Public Subnet์ ์์นํ๋ฉฐ, Private Subnet๊ณผ์ ํต์ ์ ๋์์ฃผ๋ ๋๋ฆฌ์ธ์ด๋ผ๊ณ ํ ์ ์๋ค.
์ข ๋ ์ ๋ฌธ์ ์ผ๋ก ํํํ๋ฉด ๋ด๋ถ์ ์ธ๋ถ ๋คํธ์ํฌ ์ฌ์ด์์ ์ผ์ข ์ ๊ฒ์ดํธ ์ญํ ์ ์ํํ๋ ํธ์คํธ์ด๋ค.
๊ด๋ฆฌ์๊ฐ Bastion Host์ผ๋ก SSH ์ฐ๊ฒฐ์ ํ ํ Bastion Host์์ Private Subnet์ Host์ SSH ์ฐ๊ฒฐ์ ํ๋ ํํ๋ก Private Subnet์ ์ ๊ทผํ ์ ์๊ฒ ๋๋ค.
์ฌ๊ธฐ์ ํํ๋ค ์ฐฉ๊ฐํ๋๊ฒ ์๋๋ฐ Bastion Host๋ ์ธํฐ๋ท ๊ฒ์ดํธ์จ์ด๋ NAT ๊ฒ์ดํธ์จ์ด ๊ฐ์ด ์๋น์ค๋ฅผ ๋ง๋ค์ด ๋ฑ๋กํ๋ ๊ฒ ์๋๋ผ, ๊ทธ๋ฅ private ์๋ธ๋ท์ ์ฐ๊ฒฐ๋์ด ์ ์ํ ์์๋ public ์๋ธ๋ท์ ๊ทธ๋ฅ Bastion Host๋ผ๊ณ ์ผ์ปซ๋ ๊ฒ์ด๋ค.

์ ๋ฆฌํ์๋ฉด, NAT๊ฐ Private Subnet์์ ์ธ๋ถ์ ํต์ ํ๋ ์๋จ์ด๋ผ๋ฉด, Bastion Host๋ ์ธ๋ถ์์ Private Subnet๊ณผ ํต์ ํ๋ ์๋จ์ด๋ผ๊ณ ๋ณด๋ฉด ๋๋ค.
Bastion Host ์ค์ ๊ตฌ์ถํ๊ธฐ
Bastion Host๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ํ ๊ตฌ์ฑ ์์๋ ๋ค์๊ณผ ๊ฐ๋ค.
- VPC ๋ฐ Public/Private Subnet ๊ตฌ์ฑ
- Public EC2(Bastion Host) ์ธ์คํด์ค ์์ฑ
- Private EC2 ์ธ์คํด์ค ์์ฑ
- Bastion Host(public EC2)๋ฅผ ํตํด Private EC2 ์ ๊ทผ
์ค์ต์ ์ํด์ public ์ธ์คํด์ค์ private ์ธ์คํด์ค๋ฅผ ์๋ก ์์ฑํด์ ํ๋๋ก ํ๊ฒ ๋ค.
์์์ ap-northeast-2a ๊ฐ์ฉ์์ญ์ ์ธ์คํด์ค 2๊ฐ๋ฅผ ์์ฑํ์์ผ๋, ์ด๋ฒ์ ๋ค๋ฅธ ๊ฐ์ฉ์์ญ ap-northeast-2c์ ๋ง๋ค์ด๋ณด๋๋ก ํ๊ฒ ๋ค.
์ธ์คํด์ค ์ธ๋ถ์ ๋ณด ๋ฉ๋ด์์ ์ธ์คํด์ค โ VPC ์ฐ๊ฒฐ์ ๋ค์๊ณผ ๊ฐ์ด ์ธํ ํ๋ค.
AMI, EC2 ํ์ , ์คํ ๋ฆฌ์ง๋ ์์ ๋กญ๊ฒ ํด์ค๋ ๋๋ค. ๋จ, ํคํ์ด๋ ๋ณด๋ค ๋ณด์์ ์ธ ์ค๊ณ๋ฅผ ์ํด public์ฉ ํคํ์ด, private ํคํ์ด ๋์ ๋๋ ์ ๋ง๋ค์ด๋ณด๊ฒ ๋ค.
[ap-northeast-2c / public ์๋ธ๋ท ์ธ์คํด์ค ๋ง๋ค๊ธฐ]
ํผ๋ธ๋ฆญ IP ์๋ ํ ๋น์ ํ์ฑํ ํด์ฃผ๋๊ฑธ ์์ง๋ง์




[ap-northeast-2c / private ์๋ธ๋ท ์ธ์คํด์ค ๋ง๋ค๊ธฐ]


private ์๋ธ๋ท ์ธ์คํด์ค ๋ณด์ ๊ทธ๋ฃน ์ค์ ์์ ์ ์ํ ์ ์ด ์๋๋ฐ,
public ์๋ธ๋ท ์ธ์คํด์ค ๋ง๋ค๋, ์ ์ฒด ํธ๋ํฝ 0.0.0.0/0 ์ด๋ผ๊ณ ๋ช ์ํ ๊ฒ๊ณผ ๋ฌ๋ฆฌ, privte๋ ์ธ๋ถ์์ ์ฐ๊ฒฐ์ ์ฐจ๋จํ๊ณ public ์ธ์คํด์ค์์ ์จ๊ฒ๋ง ํ์ฉํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์, ์์ค์ ์์์ ๋ฑ๋กํ ํผ๋ธ๋ฆญ ๋ณด์๊ทธ๋ฃน์ธ my_Bation_SG๋ฅผ ๋ฑ๋กํด public ์๋ธ๋ท์์๋ง ์จ๊ฒ๋ง ํ์ฉํ ๊บผ๋ผ๊ณ ๋ช ์ํ๋ค.
์ด๊ฒ์ด Bastion Host๋ฑ๋ก์ ํ๊ฒ์ด๋ค.


public / private ์ธ์คํด์ค ์์ฑ์ ์๋ฃํ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑ๋์ด์ง ๊ฒ์ด๋ค.

Bastion Host ๋ก private EC2์ ์ ๊ทผํ๊ธฐ
public๊ณผ private ์๋ธ๋ท ์ธ์คํด์ค๋ฅผ ๋ง๋ค์๋ค๋ฉด, public ์ธ์คํด์ค์ ๋จผ์ ์ธ๋ถ์์ ssh ์ ์์ ํด๋ณด๋๋ก ํ๊ฒ ๋ค.
putty๋ก๋ ์ถฉ๋ถํ ๊ฐ๋ฅํ์ง๋ง, ์ด ๊ฐ์์์ mobaXterm์ ์ด์ฉํด๋ณด๋๋ก ํ๊ฒ ๋ค.
mobaXterm์ ๋ํ ํฌ์คํ ์ ๋ฐ๋ก ์ ๋ฆฌํ์๋ค.
์ ๋ง ์ ์ฉํ๊ณ ํธ๋ฆฌํ ํด์ด๋ ๊ฐ์ธ์ ์ผ๋ก ๋ฐ๋์ ์ต๋ํ๊ธธ ๊ถํ๋ ๋ฐ๋ค.
[MobaXterm] ๐ฝ ๋ชจ๋ฐ์์คํ ์ค์น & ์ฌ์ฉ & SSH ์ ์ ๋ฐฉ๋ฒ
MobaXterm ๋ฆฌ๋ ์ค์ Telnet, SSH ์ ์์ ์ํด Putty๋ XShell์ ๊น๊ณ , FTP/SFTP์ ์์ ์ํด FileZilla๋ฅผ ๊น๊ณ , ๊ทธ ์ธ ๋ค์ํ ์๊ฒฉ ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ณต์๊ฐ ์ค์นํ์ฌ ๊ด๋ฆฌํ๋ฉด ๋ง์ด ๋ณต์กํด์ง๊ณ ๋ฒ๊ฑฐ๋ก์ ์ง๋ค..
inpa.tistory.com
[AWS] ๐ EC2 ์ธ๋ถ ์ ์(SSH) 5๊ฐ์ง ๋ฐฉ๋ฒ - PuTTy / FileZilla / MobaXterm / CMDER / GIT BASH
EC2 ์ธ๋ถ ์ ์ํ๊ธฐ [PuTTy] ๊ฐ์ฅ ์ ๋ช ํ๊ณ ๋ง์ด ์ฌ์ฉํ๋ ๋ฆฌ๋ ์ค(SSH) ์ ์ ํด์ธ Putty๋ฅผ ์ด์ฉํด์ EC2 ์ธ์คํด์ค์ ์ ์ํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์. ํ์ํ ์ค๋น๋ฌผ์ Putty์ Puttygen ๋ ๊ฐ์ง์ด๋ค. Puttygen์ ์
inpa.tistory.com
์ค๋น๊ฐ ๋์์ผ๋ฉด, ๋ค์๊ณผ ๊ฐ์ด ์ค์ ํด์ค๋ค.


์ ์์ด ๋ฌธ์ ์์ด ๋์๋ค๋ฉด, ์ด์ public ์ธ์คํด์ค์์ private ์ธ์คํด์ค์๊ฒ ping์ ๋๋ ค๋ณด๋๋ก ํ๊ฒ ๋ค.
$ ping <private ์ธ์คํด์ค ์ฌ์คIP>
ping์ด๋ ๋ค๋ฅธ ํธ์คํธ (Host)์ IP ๋ฐ์ดํฐ๊ทธ๋จ์ด ์ ์์ ์ผ๋ก ๋๋ฌํ๋์ง ์ฌ๋ถ๋ฅผ ๊ฒ์ฌํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
ping์ ICMP echo request ๋ฉ์ธ์ง๋ฅผ ์ ์กํ์ฌ reply ๋ฉ์ธ์ง๋ฅผ ์์ ํ ๋ ๊น์ง ๋๊ธฐํ๋ค.


์ด์ private ์ธ์คํด์ค๋ก ssh๋ก ์ ์ํด๋ณด๋๋ก ํ์.
๋ค์ํ๋ฒ ๋งํ์ง๋ง private EC2 ์ธ์คํด์ค์ ์ ์ํ๊ธฐ ์ํด์ , Bastion Host๋ก SSH ์ ์์ ํ ํ ๋ค์ Bastion Host์์ Private EC2๋ก SSH ์ ์์ ํ๋ ์์ผ๋ก private ์ธ์คํด์ค ์ ์์ ํ๋ ๊ฒ์ด๋ค.
์๋ํ๋ฉด Private EC2์ ์ ๊ทผํ๊ณ ์ถ์ด๋ Public IP ์ฃผ์๊ฐ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ฐ๋ฆฌ๋ private ์ธ์คํด์ค๋ฅผ ์์ฑํ ๋ ๋ฐ๋ก private์ฉ ํคํ์ด๋ฅผ ์์ฑํ์๋ค.
๋ฐ๋ผ์ public ์ธ์คํด์ค(Bastion Host)์์ private ์ธ์คํด์ค์ ์ ์ํ๋ ค๋ฉด, ๋น์ฐํ private ํคํ์ด๊ฐ ํ์ํ๋ค.
๊ทธ๋ง์ ftp๋ฅผ ํตํด ํคํ์ด ํ์ผ์ public ์ธ์คํด์ค(Bastion Host)์ ์ฎ๊ฒจ์ผ ํ๋ค๋ ๋ง์ด๋ค.
putty๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ๋ฐ๋ก ftpํด(ํ์ผ์ง๋ผ)๋ฅผ ์ด์ฉํด์ ์ฎ๊ฒจ์ผ ๋๊ฒ ์ง๋ง mobaXterm์ ์ฌ์ฉํ๋ฉด ๋งค์ฐ ๊ฐํธํ๊ฒ ์ฎ๊ธธ์ ์๋ค.

๊ทธ ํ my_privatekeypair.pem ํ์ผ์ ๊ถํ์ 600์ผ๋ก ๋ฐ๊ฟ์ค๋ค. (๋ฐ๊พธ์ง ์์ผ๋ฉด ํคํ์ด์ ํผ๋ฏธ์
์ด ๋๋ฌด ๊ณต๊ฐ๋์ด ์๋ค๋ ์ค๋ฅ๊ฐ ๋ํ๋ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.)
$ chmod 600 my_private_keypair.pem

๊ทธ๋ฆฌ๊ณ ssh ๋ช ๋ น์ด๋ฅผ ํตํด private ์ธ์คํด์ค์ ์ ์ํด์ค๋ค.
$ ssh -i my_private_keypair.pem ec2-user@<private ์ธ์คํด์ค ์ฌ์คIP>

์ ์์ ์ผ๋ก ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ Bastion Host์์ Private EC2๋ก ์ ์๋์ด ํฐ๋ฏธ๋ ์์์ ๋ง์น Private EC2๋ก ์ง์ ์ฐ๊ฒฐ๋ ๊ฒ ์ฒ๋ผ ๋ณด์ด๊ฒ ๋ ๊ฒ์ด๋ค.
Host PC -> Bastion Host -> Private EC2๋ก SSH ์ฐ๊ฒฐ๋ ๊ฒ์ด์ง๋ง ํฐ๋ฏธ๋ ์์์๋ Private EC2์ Bash ์ถ๋ ฅ๋๊ธฐ ๋๋ฌธ์ ์ง์ ์ฐ๊ฒฐํ ๊ฒ ์ฒ๋ผ Private Subnet์ EC2๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
์ด์ฒ๋ผ Bastion Host๋ฅผ ์ด์ฉํ๋ฉด Private Subnet์ ์ธ์คํด์ค์ ๊ด๋ฆฌ์๊ฐ ์ ์ํจ์ผ๋ก์ ๋ณด์๊ณผ ์ธ๋ถ์ ์ ๋๋ง๋ฆฌ์ ํ ๋ผ๋ฅผ ์ก๋ ์์ผ๋ก ๊ตฌ์ฑ์ด ๊ฐ๋ฅํ๋ค.
MobaXterm์ผ๋ก ํธํ๊ฒ Bastion โ private ์ ๊ทผํ๊ธฐ
๊ทธ๋ฌ๋ Bastion ์ธ์คํด์ค์ ์ ์ํ๊ณ ์ผ์ผํ ssh ๋ช ๋ น์ด๋ฅผ ์น๊ธฐ ๋งค์ฐ ๊ท์ฐฎ๋ค.
ํด๋ฆญ ๋ช๋ฒ์ผ๋ก ํ๋ฐฉ์ private ์ธ์คํด์ค์ ์ ์ํ ์ ์๋ ๊ธฐ๋ฅ์ด ์์๊น?
๋คํํ mobaXterm์๋ SSH Gateway ๋ผ๋ ๋ ์ ์ ์ธ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
๋ง์น Bastion์ SSH ๊ฒ์ดํธ์จ์ด๋ก์ ์ค๊ฐ๋ค๋ฆฌ ์ญํ ์ํด์ ํ๋ฐฉ์ private ์ธ์คํด์ค๋ก ์ ์ํ ์ ์๊ฒ ํ๋ ๊ธฐ๋ฅ์ด๋ค.
๋จผ์ ํด์๋ฏ์ด Basic SSH ์ธํ ์ ๋ฑ๋กํ๋ค.
์ด๋ ๋ฑ๋กํ๋๊ฑด Bastion์ด ์๋ private ์ธ์คํด์ค์ IP๋ฅผ ๋ฑ๋กํด์ค๋ค.

๊ทธ๋ฆฌ๊ณ ์์ ํญ์์ Network settings ํญ์ผ๋ก ์ด๋ํ๊ณ SSH gateway (jump host) ๋ฒํผ์ ๋๋ฌ์ค๋ค.

๊ทธ๋ฌ๋ฉด SSH jump Host ๋ฅผ ๋ฑ๋กํ ์ ์๋๋ฐ, ์ฌ๊ธฐ๋ค๊ฐ Bastion ์ธ์คํด์ค์ IP๋ฅผ ๊ธฐ์ฌํด์ค๋ค.
์ด๋ ๊ฒ ํ๋ฉด ๋จ ํด๋ฆญ ํ๋ฐฉ์ผ๋ก Bastion IP๋ฅผ ์ ํํด์ ๋ฐ๋ก private IP๋ก ์ ์ํ ์ ์๊ฒ ๋๋ค!

private EC2์์ mysql ์ค์นํด๋ณด๊ธฐ
ssh ์ฐ๊ฒฐ์ ํ์ผ๋ฉด ์ด์ private EC2 ์์ mysql ์ค์น ๋ช ๋ น์ด๋ฅผ ์คํํด๋ณด์.
$ yum install mysql

๋ง์ผ ์์ฒ๋ผ ์ค์น๊ฐ ์๋๋ฉด public ์๋ธ๋ท์ NAT ๊ฒ์ดํธ์จ์ด๋ฅผ ๋ฑ๋ก์ ์ํด์ค ๊ฒ์ด๋ค.
์ด๋ ๋น์ฐํ๋ค. Bastion Host๋ ์ธ๋ถ์์ ๋ด๋ถ๋ก ์ ๊ทผํ๋ ํธ์คํธ์ด์ง ์ธ๋ถ ์ธํฐ๋ท์ผ๋ก ๋๊ฐ๋ ๊ฒ์ด ์๋๋ค.
๋ฐ๋ผ์ ์ธ๋ถ ์ธํฐ๋ท์ผ๋ก ์ ์ํ ์ ์๊ธฐ ๋๋ฌธ์ mysql ์ค์น๊ฐ ์๋๋ ๊ฒ์ด๋ค.
๋ฐ๋ก ์์์ ๋ฐฐ์ด NAT ๊ฒ์ดํธ์จ์ด๋ฅผ ๋ค์ํ๋ฒ ๋ฐฉ๊ธ ์์ฑํ private ์๋ธ๋ท ๋ผ์ฐํ ํ ์ด๋ธ์ ๋ฑ๋ก์ ํด์ฃผ๋ฉด, private EC2์์ ๋ง์น ์ธ๋ถ์ ์ธํฐ๋ท์ด ์ฐ๊ฒฐ๋ ๊ฒ์ฒ๋ผ yum install์ ํ ์ ์๊ฒ ๋๋ค.
๋ฐ๋ฉด ์์์ NAT ๊ฒ์ดํธ์จ์ด๋ฅผ ์ ์์ ์ผ๋ก ์ ๋ฑ๋กํด์ฃผ์๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๊น๋ํ๊ฒ ์ค์น๊ฐ ์งํ๋ ๊ฒ์ด๋ค.

# ์ฐธ๊ณ ์๋ฃ
https://www.youtube.com/@AWSClassroom
https://aws-hyoh.tistory.com/58
https://jesuisjavert.github.io/2021/01/26/aws-study5/
https://kimjingo.tistory.com/180