๐ AWS์ ๋ ๊ฐ์ง ๊ถ์ฅ์ฌํญ
-
Lambda๋ฅผ ํตํด ์ธ๋ถ ์ธํฐ๋ท์ ์ ๊ทผํ๊ณ ์ถ์ ๊ฒฝ์ฐ Lambda๋ฅผ public subnet์ ๋๋ ๋ฐฉ์์ด ์๋ private subnet + NAT ๋ฐฉ์์ผ๋ก ์ฐ๊ฒฐํด์ผ ํ๋ค.
-
AWS๋ Lambda์ RDS๋ฅผ ์ฐ๋ํ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋ก์๋ฅผ ์ด์ฉํ๋ ๊ฒ์ ๊ถ์ฅํ๊ณ ์๋ค.
- ์ปค๋ฅ์
๊ด๋ฆฌ์ ์ด์
๐ Lambda โ๏ธ RDS
Lambda์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋ก์๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด Lambda๊ฐ VPC์ ์ฐ๊ฒฐ๋์ด ์์ด์ผ ํ๋ค.
๐ Lambda โ๏ธ NAT โ๏ธ ์ธํฐ๋ท(์ธ๋ถ๋ง)
AWS์ ๊ถ์ฅ์ฌํญ ๋๋ก Lambda๊ฐ VPC์ private subnet์ ์ฐ๊ฒฐ๋๋ฉด ์์๋ฐ์ด๋๋ก ๊ฐ๋ ํธ๋ํฝ์ ๋ชจ๋ ์ฐจ๋จ๋๋ค.
์ฆ, ์ธ๋ถ ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ์ ์ฌ์ฉํ ์ ์๋ค.
์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด NAT ๊ฒ์ดํธ์จ์ด๋ฅผ ์ด์ฉํด์ ํ์ฌ VPC์ private ์์ญ์ ์๋ Lambda์ ์์๋ฐ์ด๋๋ฅผ NAT ๊ฒ์ดํธ์จ์ด๊ฐ ์๋ public ์์ญ์ผ๋ก ์ฐ๊ฒฐํด์ค์ผ ํ๋ค.
๐ Lambda์ VPC ์ค์ ํ๋ ๋ฒ
- private subnet ์์ญ ์์ฑ? ํ ๋น? ์ถ๊ฐ?
- ์ฒ์ VPC์ ๊ธฐ๋ณธ ๋ผ์ฐํ
ํ
์ด๋ธ์ 4๊ฐ ์๋ธ๋ท์ด ํ ๋น๋์ด ์๋ค.
- ๊ธฐ๋ณธ ๋ผ์ฐํ
ํ
์ด๋ธ์ ์ธํฐ๋ท ๊ฒ์ดํธ์จ์ด(igw)์ ์ฐ๊ฒฐ๋์ด ์์ผ๋ฏ๋ก ๊ธฐ๋ณธ ๋ผ์ฐํ
ํ
์ด๋ธ์ 4๊ฐ ์๋ธ๋ท์ ๋ชจ๋ Public Subnet ์ด๋ค.
- ๋ผ์ฐํ
ํ
์ด๋ธ ์์ฑ ํ ์๋ธ๋ท ํ๋๋ฅผ ํ ๋น
๊ทธ๋ฅ ๋ผ์ฐํ
ํ
์ด๋ธ์ ์์ฑํ๋ฉด ์ธํฐ๋ท ๊ฒ์ดํธ์จ์ด๊ฐ ๋ถ์ด์์ง ์์ผ๋ฏ๋ก ์ฌ๊ธฐ์ ํ ๋น๋๋ ์๋ธ๋ท์ ๋ชจ๋ Private Subnet ์ด๋ค.
- ์ธ๋ถ ํต์ ์ ์ํ NAT ๊ฒ์ดํธ์จ์ด ์์ฑ (์ด๊ฑฐ ๋น์ธ๋ฐ์ ใ
)
- ์๋ธ๋ท์ public subnet์ ์ง์ ํด์ค์ผ ํ๋ค.
Lambda๋ฅผ ๋์ ? ํด์ ์ธ๋ถ์ ํต์ ์ ํด์ค์ผ ํ๋ public์ ์์ด์ผ ํฉ๋๋ค.
- ์ฐ๊ฒฐ์ ํ: ํผ๋ธ๋ฆญ
- ํ๋ ฅ์ IP ํ ๋น
- ์์ฑํ NAT ๊ฒ์ดํธ์จ์ด๋ฅผ private subnet์ด ํ ๋น๋ ๋ผ์ฐํ
ํ
์ด๋ธ์ ์ค์
- ๋ผ์ฐํ
ํธ์ง
- 0.0.0.0/0
- ์์ฑํ NAT ๊ฒ์ดํธ์จ์ด ์ง์
- Lambda๋ฅผ ์ํ ๋ณด์๊ทธ๋ฃน ์์ฑ
- EC2 -> ๋ณด์๊ทธ๋ฃน
- ์์๋ฐ์ด๋๋ง 0.0.0.0/0 (๋ชจ๋ ํธ๋ํฝ)์ผ๋ก ์ค์
- ์ด ๋ถ๋ถ์ด ์ ํ์ํ์ง ๋ด๊ฐ ์ ์ดํดํ ๊ฒ์ธ์ง ์ ๋ชจ๋ฅด๊ฒ ๋ค.. (๋ง๋์ง ๋ชจ๋ฅด๊ฒ ๋ค..)
- Lambda์ ์์๋ฐ์ด๋ ์ชฝ์ ์๋ NAT ๊ฒ์ดํธ์จ์ด๋ก ํธ๋ํฝ์ ๋ณด๋ด๊ธฐ ์ํด์ ?
- Lambda์ VPC ์ค์
- ์์ ์์ฑํ ์๋ธ๋ท(private subnet), ๋ณด์๊ทธ๋ฃน ์ค์
- Lambda์ VPC ๊ถํ ์ถ๊ฐ (AmazonVPCFullAccess)
- ์ด์ RDS ์ฐ๊ฒฐํด์ ์ฐ๋ฉด ๋๋ค.
๋คํธ์ํฌ ์ง์์ด ๋ถ์กฑํ ํ์ธ์ง ์ ์ดํด๊ฐ ๋์ง ์๋ ๋ถ๋ถ์ด์๋ค.
๊ณ์ ์ญ์ , ์์ฑ์ ๋ฐ๋ณตํ๋ ์ ์ด๋ ์ต์ํด์ง๊ธด ํ ๊ฒ ๊ฐ๋ค.