์๊ฐ
์ผ๋ฐ์ ์ผ๋ก ์ฐ๊ฒฐ ๋ฌธ์ ๋ ๋ค์ ์ธ ๊ฐ์ง ์์ญ ์ค ํ๋์ ํด๋นํฉ๋๋ค.
- ์ฐ๊ฒฐ - ๋คํธ์ํฌ๋ฅผ ํตํด ์ธ์คํด์ค์ ์ฐ๊ฒฐํ ์ ์๋์?
- ์น์ธ - ์ธ์คํด์ค์ ์ฐ๊ฒฐํ ๊ถํ์ด ์๋์?
- ์ธ์ฆ - ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ฌ์ฉ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ๋ฐ์๋ค์ด๋์?
์ด๋ฌํ ๊ฐ ์์ญ์ ์กฐ์ฌ๋ฅผ ์ํด ๋ ๋ค์ํ ๊ฒฝ๋ก๋ก ์ธ๋ถํ ์ ์์ต๋๋ค. ๋ค์ ์น์ ์๋ ๋ฌธ์ ๋ฅผ ๋ ๊ตฌ์ฒด์ ์ผ๋ก ํ์ ํ๊ธฐ ์ํด ์ค์ค๋ก ๋ฌผ์ด๋ณผ ์ ์๋ ์ง๋ฌธ์ ์์๊ฐ ์์ต๋๋ค.
์ฐ๊ฒฐ ๋ฌธ์ ์ฒดํฌ๋ฆฌ์คํธ
- ์ฐ๊ฒฐ ์ค
- ๋น๊ณต๊ฐ IP
- ํ๋ก์ ํธ์
Service Networking API
๋ฅผ ์ฌ์ฉ ์ค์ ํ๋์? - ๊ณต์ VPC๋ฅผ ์ฌ์ฉํ๊ณ ์๋์?
- ์ฌ์ฉ์ ๊ณ์ ๋๋ ์๋น์ค ๊ณ์ ์ ๋น๊ณต๊ฐ ์๋น์ค ์ก์ธ์ค ์ฐ๊ฒฐ์ ๊ด๋ฆฌํ๋ ๋ฐ ํ์ํ IAM ๊ถํ์ด ์๋์?
- ํ๋ก์ ํธ์ ๋น๊ณต๊ฐ ์๋น์ค ์ก์ธ์ค ์ฐ๊ฒฐ์ด ๊ตฌ์ฑ๋์ด ์๋์?
- ๋น๊ณต๊ฐ ์ฐ๊ฒฐ์ IP ์ฃผ์ ๋ฒ์๋ฅผ ํ ๋นํ๋์?
- ํ ๋น๋ IP ์ฃผ์ ๋ฒ์์ postgres ์ธ์คํด์ค๋ฅผ ๋ง๋ค๋ ค๋ ๋ชจ๋ ๋ฆฌ์ ์ ๋ํด /24 ๊ณต๊ฐ์ด ํ๋ ์ด์ ํฌํจ๋์๋์?
- postgres ์ธ์คํด์ค์ ๋ํด ํ ๋น๋ IP ์ฃผ์ ๋ฒ์๋ฅผ ์ง์ ํ๋ ๊ฒฝ์ฐ ์ด ๋ฒ์์์ postgres ์ธ์คํด์ค๋ฅผ ๋ง๋ค๋ ค๋ ๋ชจ๋ ๋ฒ์์ ๋ํด /24 ๊ณต๊ฐ์ด ํ๋ ์ด์ ๋ฒ์์ ํฌํจ๋๋์?
- ๋น๊ณต๊ฐ ์ฐ๊ฒฐ์ด ๋ง๋ค์ด์ก๋์?
- ๋น๊ณต๊ฐ ์ฐ๊ฒฐ์ด ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ vpc-peerings๊ฐ ์ ๋ฐ์ดํธ๋์๋์?
- VPC ๋ก๊ทธ์ ์ค๋ฅ๊ฐ ํ์๋๋์?
- ์์ค ๋จธ์ ์ IP๊ฐ RFC 1918 ์ด์ธ์ ์ฃผ์์ธ๊ฐ์?
- ๊ณต๊ฐ IP
- ์์ค IP๊ฐ ์น์ธ๋ ๋คํธ์ํฌ๋ก ๋ฑ๋ก๋์๋์?
- SSL/TLS ์ธ์ฆ์๊ฐ ์๊ตฌ๋๋์?
- ์ฌ์ฉ์ ๊ณ์ ๋๋ ์๋น์ค ๊ณ์ ์ Cloud SQL ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๋ ๋ฐ ํ์ํ IAM ๊ถํ์ด ์๋์?
- ์น์ธ
- Cloud SQL ์ธ์ฆ ํ๋ก์
- Cloud SQL ์ธ์ฆ ํ๋ก์๊ฐ ์ต์ ์ํ์ธ๊ฐ์?
- Cloud SQL ์ธ์ฆ ํ๋ก์๊ฐ ์คํ ์ค์ธ๊ฐ์?
- ์ธ์คํด์ค ์ฐ๊ฒฐ ์ด๋ฆ์ด Cloud SQL ์ธ์ฆ ํ๋ก์ ์ฐ๊ฒฐ ๋ช ๋ น์ด์ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋์ด ์๋์?
- Cloud SQL ์ธ์ฆ ํ๋ก์ ์ถ๋ ฅ์ ํ์ธํ์ จ๋์? ์ถ๋ ฅ์ ํ์ผ๋ก ๋ณด๋ด๊ฑฐ๋ Cloud SQL ์ธ์ฆ ํ๋ก์๋ฅผ ์์ํ Cloud Shell ํฐ๋ฏธ๋์ ํ์ธํ์ธ์.
- ์ฌ์ฉ์ ๊ณ์ ๋๋ ์๋น์ค ๊ณ์ ์ Cloud SQL ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๋ ๋ฐ ํ์ํ IAM ๊ถํ์ด ์๋์?
- ํ๋ก์ ํธ์
Cloud SQL Admin API
๋ฅผ ์ฌ์ฉ ์ค์ ํ๋์? - ์์๋ฐ์ด๋ ๋ฐฉํ๋ฒฝ ์ ์ฑ ์ด ์์ผ๋ฉด ๋์ Cloud SQL ์ธ์คํด์ค์์ ํฌํธ 3307์ ์ฐ๊ฒฐํ ์ ์๋์ง ํ์ธํฉ๋๋ค.
- UNIX ๋๋ฉ์ธ ์์ผ์ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐํ๋ ๊ฒฝ์ฐ์๋ Cloud SQL ์ธ์ฆ ํ๋ก์๋ฅผ ์์ํ ๋ -dir๋ก ์ง์ ๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋์ดํ์ฌ ์์ผ์ด ์์ฑ๋์๋์ง ํ์ธํ์ธ์.
- Cloud SQL ์ปค๋ฅํฐ ๋ฐ ์ธ์ด๋ณ ์ฝ๋
- ์ฐ๊ฒฐ ๋ฌธ์์ด์ด ์ฌ๋ฐ๋ฅด๊ฒ ์์ฑ๋์๋์?
- ์ฌ์ฉ ์ค์ธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ํ ์ฝ๋์ ์ฝ๋๋ฅผ ๋น๊ตํด ๋ณด์๋์?
- ์ํ ์ฝ๋๊ฐ ์๋ ๋ฐํ์ ๋๋ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๊ณ ์๋์?
- ๊ทธ๋ ๋ค๋ฉด ์ปค๋ฎค๋ํฐ์์ ๊ด๋ จ ์ฐธ๊ณ ์๋ฃ๋ฅผ ์ฐพ์๋ณด์๋์?
- ์์ฒด ๊ด๋ฆฌํ SSL/TLS ์ธ์ฆ์
- ํด๋ผ์ด์ธํธ ์ธ์ฆ์๊ฐ ์์ค ๋จธ์ ์ ์ค์น๋์ด ์๋์?
- ํด๋ผ์ด์ธํธ ์ธ์ฆ์๊ฐ ์ฐ๊ฒฐ ์ธ์์ ์ฌ๋ฐ๋ฅด๊ฒ ์ ๋ ฅ๋์๋์?
- ํด๋ผ์ด์ธํธ ์ธ์ฆ์๊ฐ ์ฌ์ ํ ์ ํจํ๊ฐ์?
- SSL์ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐํ ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋์?
- ์๋ฒ ์ธ์ฆ์๊ฐ ์ฌ์ ํ ์ ํจํ๊ฐ์?
- ์น์ธ๋ ๋คํธ์ํฌ
- ์์ค IP ์ฃผ์๊ฐ ํฌํจ๋์ด ์๋์?
- RFC 1918 ์ด์ธ์ IP ์ฃผ์๋ฅผ ์ฌ์ฉํ๊ณ ์๋์?
- ์ง์๋์ง ์๋ IP ์ฃผ์๋ฅผ ์ฌ์ฉํ๊ณ ์๋์?
- ์ฐ๊ฒฐ ์คํจ
- ์ฐ๊ฒฐ ๊ถํ์ด ์๋์?
- ์ฐ๊ฒฐ ํ๋ ์ค๋ฅ๊ฐ ํ์๋๋์?
- ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ฐ๊ฒฐ์ ์ข ๋ฃํ๋์?
- ์ธ์ฆํ๋ ์ค
- ๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์ฆ(์ฌ์ฉ์ ์ด๋ฆ/๋น๋ฐ๋ฒํธ)
access denied
์ค๋ฅ๊ฐ ํ์๋๋์?- ์ฌ์ฉ์ ์ด๋ฆ ๋ฐ ๋น๋ฐ๋ฒํธ๊ฐ ์ ํํ๊ฐ์?
- IAM ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์ฆ
- ์ธ์คํด์ค์
cloudsql.iam_authentication
ํ๋๊ทธ๋ฅผ ์ฌ์ฉ ์ค์ ํ๋์? - ๊ณ์ ์ ์ ์ฑ binding์ ์ถ๊ฐํ๋์?
-enable_iam_login
๋๋ Oauth 2.0 ํ ํฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋น๋ฐ๋ฒํธ๋ก ์ฌ์ฉํ์ฌ Cloud SQL ์ธ์ฆ ํ๋ก์๋ฅผ ์ฌ์ฉํ๊ณ ์๋์?- ์๋น์ค ๊ณ์ ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋จ์ถํ ์ด๋ฉ์ผ ์ด๋ฆ์ ์ฌ์ฉํ๊ณ ์๋์?
- PostgreSQL์ IAM ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์ฆ์ ๋ํด ์์ธํ ์์๋ณด์ธ์.
์ค๋ฅ ๋ฉ์์ง
ํน์ API ์ค๋ฅ ๋ฉ์์ง๋ ์ค๋ฅ ๋ฉ์์ง ์ฐธ์กฐ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
์ถ๊ฐ ์ฐ๊ฒฐ ๋ฌธ์ ํด๊ฒฐ
๋ค๋ฅธ ์ฐ๊ฒฐ ๋ฌธ์ ๋ ๋ฌธ์ ํด๊ฒฐ ํ์ด์ง์ ์ฐ๊ฒฐ ์น์ ์ ์ฐธ์กฐํ์ธ์.
์ผ๋ฐ์ ์ธ ์ฐ๊ฒฐ ๋ฌธ์
์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฐ๊ฒฐ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ข ๋ฃํ๋์ง ํ์ธ
'Aborted connection nnnn to db:
'๊ฐ ํฌํจ๋ ์ค๋ฅ๊ฐ ํ์๋๋ ๊ฒฝ์ฐ ์ด๋ ์ผ๋ฐ์ ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์
์ด ์ฐ๊ฒฐ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ค์งํ์ง ์์์์ ์๋ฏธํฉ๋๋ค. ๋คํธ์ํฌ ๋ฌธ์ ๋ก ์ธํด ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ ์๋ ์์ต๋๋ค. ์ด ์ค๋ฅ๋ Cloud SQL ์ธ์คํด์ค์ ๋ฌธ์ ๊ฐ ์์์ ์๋ฏธํ์ง ์์ต๋๋ค. ๋ํ ๋ฌธ์ ์ ์์ธ์ ์ถ์ ํ๊ธฐ ์ํด ํจํท์ ๊ฒ์ฌํ๋ ค๋ฉด tcpdump
๋ฅผ ์คํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ฐ๊ฒฐ ๊ด๋ฆฌ ๊ถ์ฅ์ฌํญ์ ์์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ๊ด๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ธ์ฆ์๊ฐ ๋ง๋ฃ๋์๋์ง ํ์ธ
์ธ์คํด์ค๊ฐ SSL์ ์ฌ์ฉํ๋๋ก ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ Google Cloud ์ฝ์์ Cloud SQL ์ธ์คํด์ค ํ์ด์ง๋ก ์ด๋ํ์ฌ ์ธ์คํด์ค๋ฅผ ์ฝ๋๋ค. ์ธ์คํด์ค์ ์ฐ๊ฒฐ ํ์ด์ง๋ฅผ ์ด๊ณ ๋ณด์ ํญ์ ์ ํํ ํ ์๋ฒ ์ธ์ฆ์๊ฐ ์ ํจํ์ง ํ์ธํฉ๋๋ค. ๋ง๋ฃ๋ ๊ฒฝ์ฐ ์ ์ธ์ฆ์๋ฅผ ์ถ๊ฐํ๊ณ ์ ์ธ์ฆ์๋ก ์ํ์์ผ์ผ ํฉ๋๋ค.
์ฐ๊ฒฐ ๊ถํ์ด ์๋์ง ํ์ธ
์ฐ๊ฒฐ์ ์คํจํ๋ฉด ์ฐ๊ฒฐ ๊ถํ์ด ์๋์ง ํ์ธํด์ผ ํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด ๋ด๋ถ ํ๊ฒฝ์์ psql ํด๋ผ์ด์ธํธ๋ฅผ ์ฌ์ฉํด ์ฐ๊ฒฐํ๋ ๋ฑ IP ์ฃผ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ์ฐ๊ฒฐํ๋ ค๋ IP ์ฃผ์๊ฐ Cloud SQL ์ธ์คํด์ค๋ก ์ฐ๊ฒฐํ ๊ถํ์ด ์๋์ง ํ์ธํฉ๋๋ค.
๋น๊ณต๊ฐ IP ์ฃผ์๋ฅผ ์ฌ์ฉํ๋ Cloud SQL ์ธ์คํด์ค์ ๋ํ ์ฐ๊ฒฐ์ RFC 1918 ์ฃผ์ ๋ฒ์์์ ์๋์ผ๋ก ์น์ธ๋ฉ๋๋ค. ์ด์ ๋ฐ๋ผ ๋ชจ๋ ๋น๊ณต๊ฐ ํด๋ผ์ด์ธํธ๊ฐ Cloud SQL ์ธ์ฆ ํ๋ก์๋ฅผ ํตํ์ง ์๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ก์ธ์คํ ์ ์์ต๋๋ค. RFC 1918 ์ด์ธ์ ์ฃผ์ ๋ฒ์๋ ์น์ธ๋ ๋คํธ์ํฌ๋ก ๊ตฌ์ฑํด์ผ ํฉ๋๋ค.
Cloud SQL์ ๊ธฐ๋ณธ์ ์ผ๋ก VPC์์ RFC 1918 ์ด์ธ์ ์๋ธ๋ท ๊ฒฝ๋ก๋ฅผ ํ์ตํ์ง ์์ต๋๋ค. RFC 1918 ์ด์ธ์ ๊ฒฝ๋ก๋ฅผ ๋ด๋ณด๋ด๋ ค๋ฉด ๋คํธ์ํฌ ํผ์ด๋ง์ Cloud SQL๋ก ์ ๋ฐ์ดํธํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
gcloud compute networks peerings update cloudsql-postgres-googleapis-com \ --network=NETWORK \ --export-subnet-routes-with-public-ip \ --project=PROJECT_ID
gcloud sql connect
๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์คํด์ค์ ์ฐ๊ฒฐํฉ๋๋ค. ์ด ๋ช ๋ น์ด๋ ์ ์ ๋์ IP ์ฃผ์๋ฅผ ์น์ธํฉ๋๋ค. gcloud CLI์ psql ํด๋ผ์ด์ธํธ๊ฐ ์ค์น๋ ํ๊ฒฝ์์ ์ด ๋ช ๋ น์ด๋ฅผ ์คํํ ์ ์์ต๋๋ค. Cloud Shell์์๋ ์ด ๋ช ๋ น์ด๋ฅผ ์คํํ ์ ์์ต๋๋ค. Cloud Shell์Google Cloud ์ฝ์์์ ์ ๊ณต๋๋ฉฐ gcloud CLI์ psql ํด๋ผ์ด์ธํธ๊ฐ ์ฌ์ ์ค์น๋์ด ์์ต๋๋ค. Cloud Shell์์๋ Cloud SQL์ ์ฐ๊ฒฐํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ Compute Engine ์ธ์คํด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.0.0.0.0/0
์ ์ธ์ฆํ์ฌ ์ผ์์ ์ผ๋ก ๋ชจ๋ IP ์ฃผ์๋ฅผ ์ธ์คํด์ค์ ์ฐ๊ฒฐํฉ๋๋ค.
์ฐ๊ฒฐ ๋ฐฉ๋ฒ ํ์ธ
์ฐ๊ฒฐ ์ ๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ ๋ฉ์์ง๊ฐ ํ์๋๋ ๊ฒฝ์ฐFATAL: database `user` does not exist.
gcloud sql connect --user
๋ช
๋ น์ด๋ ๊ธฐ๋ณธ ์ฌ์ฉ์(postgres
)์ ๊ฒฝ์ฐ์๋ง ์๋ํฉ๋๋ค. ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ธฐ๋ณธ ์ฌ์ฉ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐํ ๋ค์ "\c"
psql ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ์ฌ์ฉ์๋ก ๋ค์ ์ฐ๊ฒฐํ๋ ๊ฒ์
๋๋ค.
์ฐ๊ฒฐ ์์ ๋ฐฉ๋ฒ ๊ฒฐ์
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํ๊ณ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํ์ฌ ํ์ฌ์ ์ฐ๊ฒฐ์ ๋ํ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
SELECT * from pg_stat_activity ;
1.2.3.4
์ ๊ฐ์ IP ์ฃผ์๊ฐ ํ์๋ ์ฐ๊ฒฐ์ IP๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐ๋ฉ๋๋ค.
cloudsqlproxy~1.2.3.4
๊ฐ ํ์๋ ์ฐ๊ฒฐ์ Cloud SQL ์ธ์ฆ ํ๋ก์๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ App Engine์์ ์์๋ ๊ฒ์
๋๋ค. localhost
์์์ ์ฐ๊ฒฐ์ ์ผ๋ถ ๋ด๋ถ Cloud SQL ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ฐ๊ฒฐ ํ๋
Cloud SQL ์ธ์คํด์ค์ ๋ํ QPS ํ๋๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๊ฒฐ, ํฌ๊ธฐ, App Engine๋ณ ํ๋๊ฐ ์ค์ ๋์ด ์์ต๋๋ค. ํ ๋น๋ ๋ฐ ํ๋๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ์ ์๋ฒ ๋ฐ ์ฐ๊ฒฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํฉ๋๋ค. ํญ์ ์ฐ๊ฒฐ ๊ด๋ฆฌ ๊ถ์ฅ์ฌํญ์ ์ฐธ๊ณ ํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ ๊ณต๊ฐ์ ์ต์ํํ๊ณ Cloud SQL ์ฐ๊ฒฐ ํ๋๋ฅผ ์ด๊ณผํ ๊ฐ๋ฅ์ฑ์ ์ค์ด์ธ์. ์์ธํ ๋ด์ฉ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ๊ด๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ฐ๊ฒฐ ๋ฐ ์ค๋ ๋ ํ์
๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์คํ ์ค์ธ ํ๋ก์ธ์ค๋ฅผ ๋ณด๋ ค๋ฉด pg_stat_activity ํ ์ด๋ธ์ ์ฌ์ฉํ์ธ์.
select * from pg_stat_activity;
์ฐ๊ฒฐ ์๊ฐ ์ด๊ณผ(Compute Engine์์)
Compute Engine ์ธ์คํด์ค์์ ์ฐ๊ฒฐ์ 10๋ถ ๋์ ๋นํ์ฑ ์ํ์ด๋ฉด ์๊ฐ ์ด๊ณผ๋์ด Compute Engine ์ธ์คํด์ค์ Cloud SQL ์ธ์คํด์ค ๊ฐ์ ์ค๋ซ๋์ ์ฌ์ฉ๋์ง ์์ ์ฐ๊ฒฐ์ ์ํฅ์ ์ค ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ Compute Engine ๋ฌธ์์ ๋คํธ์ํน ๋ฐ ๋ฐฉํ๋ฒฝ์ ์ฐธ์กฐํ์ธ์.
์ค๋ซ๋์ ์ฌ์ฉ๋์ง ์์ ์ฐ๊ฒฐ์ ์ ์งํ๋ ค๋ฉด TCP ์ฐ๊ฒฐ ์ ์ง๋ฅผ ์ค์ ํ๋ฉด ๋ฉ๋๋ค. ๋ค์ ๋ช ๋ น์ด๋ TCP ์ฐ๊ฒฐ ์ ์ง ๊ฐ์ 1๋ถ์ผ๋ก ์ค์ ํ๊ณ ์ธ์คํด์ค ์ฌ๋ถํ ์ ๊ตฌ์ฑ์ ์๊ตฌ ์ ์งํฉ๋๋ค.
ํ์ฌ tcp_keepalive_time ๊ฐ์ ํ์ํฉ๋๋ค.
cat /proc/sys/net/ipv4/tcp_keepalive_time
tcp_keepalive_time์ 60์ด๋ก ์ค์ ํ๊ณ ์ฌ๋ถํ ํ ๋๋ ์๊ตฌ์ ์ด๊ฒ ์ค์ ํฉ๋๋ค.
echo 'net.ipv4.tcp_keepalive_time = 60' | sudo tee -a /etc/sysctl.conf
๋ณ๊ฒฝ์ฌํญ์ ์ ์ฉํฉ๋๋ค.
sudo /sbin/sysctl --load=/etc/sysctl.conf
tcp_keepalive_time ๊ฐ์ ํ์ํ์ฌ ๋ณ๊ฒฝ์ฌํญ์ด ์ ์ฉ๋์๋์ง ํ์ธํฉ๋๋ค.
cat /proc/sys/net/ipv4/tcp_keepalive_time
์ฐ๊ฒฐ ๋๋ฒ๊น ๋๊ตฌ
tcpdump
tcpdump
๋ ํจํท์ ์บก์ฒํ๋ ๋๊ตฌ์
๋๋ค. ์ฐ๊ฒฐ ๋ฌธ์ ๋ฅผ ๋๋ฒ๊น
ํ ๋ ํธ์คํธ์ Cloud SQL ์ธ์คํด์ค ์ฌ์ด์ ํจํท์ ์บก์ฒํ๊ณ ๊ฒ์ฌํ๋ ค๋ฉด tcpdump
๋ฅผ ์คํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ก์ปฌ IP ์ฃผ์ ์ฐพ๊ธฐ
ํธ์คํธ์ ๋ก์ปฌ ์ฃผ์๋ฅผ ๋ชจ๋ฅด๋ ๊ฒฝ์ฐ ip -br address show
๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค. Linux์์๋ ๋คํธ์ํฌ ์ธํฐํ์ด์ค, ์ธํฐํ์ด์ค ์ํ, ๋ก์ปฌ IP, MAC ์ฃผ์๊ฐ ํ์๋ฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด eth0 UP 10.128.0.7/32 fe80::4001:aff:fe80:7/64
์
๋๋ค.
๋๋ ipconfig
๋๋ ifconfig
๋ฅผ ์คํํ์ฌ ๋คํธ์ํฌ ์ธํฐํ์ด์ค์ ์ํ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
์ฐ๊ฒฐ ํ ์คํธ๋ก ํ ์คํธ
์ฐ๊ฒฐ ํ ์คํธ๋ ๋คํธ์ํฌ์ ์๋ํฌ์ธํธ ๊ฐ ์ฐ๊ฒฐ์ ํ์ธํ ์ ์๊ฒ ํด์ฃผ๋ ์ง๋จ ๋๊ตฌ์ ๋๋ค. ๊ตฌ์ฑ์ ๋ถ์ํ๊ณ ๊ฒฝ์ฐ์ ๋ฐ๋ผ ๋ฐํ์ ํ์ธ์ ์ํํฉ๋๋ค. ์ด์ Cloud SQL์ด ์ง์๋ฉ๋๋ค. ์ด ์๋ด์ ๋ฐ๋ผ Cloud SQL ์ธ์คํด์ค๋ก ํ ์คํธ๋ฅผ ์คํํฉ๋๋ค.
์ฐ๊ฒฐ ํ ์คํธ
psql ํด๋ผ์ด์ธํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ก์ปฌ ํ๊ฒฝ์์ ์ฐ๊ฒฐํ๋ ๊ธฐ๋ฅ์ ํ ์คํธํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ IP ์ฃผ์๋ฅผ ์ฌ์ฉํ์ฌ psql ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ๊ณผ Cloud SQL ์ธ์ฆ ํ๋ก์๋ฅผ ์ฌ์ฉํ์ฌ psql ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ์ ์ฐธ์กฐํ์ธ์.
์ ํ๋ฆฌ์ผ์ด์ ์ IP ์ฃผ์ ํ์ธ
์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋ ์ปดํจํฐ์ IP ์ฃผ์๋ฅผ ํ์ธํ์ฌ ๊ทธ ์ฃผ์์์ Cloud SQL ์ธ์คํด์ค์ ์ก์ธ์คํ๋๋ก ์น์ธํ๋ ค๋ฉด ๋ค์ ๋ฐฉ๋ฒ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ธ์.
- ์ปดํจํฐ๊ฐ ํ๋ก์ ๋๋ ๋ฐฉํ๋ฒฝ ๋ค์ ์์ผ๋ฉด ์ปดํจํฐ์ ๋ก๊ทธ์ธํ๊ณ ๋ด IP ํ์ธ ์ฌ์ดํธ์์ IP ์ฃผ์๋ฅผ ํ์ธํฉ๋๋ค.
- ์ปดํจํฐ๊ฐ ํ๋ก์ ๋๋ ๋ฐฉํ๋ฒฝ์ ์ฌ์ฉํ๊ณ ์๋ ๊ฒฝ์ฐ ์ปดํจํฐ์ ๋ก๊ทธ์ธํด์ whatismyipaddress.com๊ณผ ๊ฐ์ ๋๊ตฌ๋ ์๋น์ค๋ก ์ค์ IP ์ฃผ์๋ฅผ ํ์ธํฉ๋๋ค.
๋ก์ปฌ ํฌํธ ์ด๊ธฐ
ํธ์คํธ๊ฐ ์ด๋ค ํฌํธ์์ ๋ฆฌ์จ ์ค์ธ์ง ํ์ธํ๋ ค๋ฉด ss -tunlp4
๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ด๋ค ํฌํธ๊ฐ ๊ฐ๋ฐฉ๋์ด ๋ฆฌ์จ ์ค์ธ์ง ํ์ธํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด PostgreSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์คํ ์ค์ด๋ฉด ํฌํธ 5432์์ ๋ฆฌ์จํด์ผ ํฉ๋๋ค. SSH์ ๊ฒฝ์ฐ ํฌํธ 22๊ฐ ํ์๋ฉ๋๋ค.
๋ชจ๋ ๋ก์ปฌ ํฌํธ ํ๋
netstat
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ ๋ก์ปฌ ํฌํธ ํ๋์ ํ์ธํฉ๋๋ค. ์๋ฅผ ๋ค์ด netstat -lt
์ ํ์ฌ ํ์ฑ ํฌํธ๋ฅผ ๋ชจ๋ ํ์ํฉ๋๋ค.
telnet์ ์ฌ์ฉํ์ฌ Cloud SQL ์ธ์คํด์ค์ ์ฐ๊ฒฐ
TCP
๋ฅผ ์ฌ์ฉํ์ฌ Cloud SQL ์ธ์คํด์ค์ ์ฐ๊ฒฐํ ์ ์๋์ง ํ์ธํ๋ ค๋ฉด telnet
๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค. Telnet์ ์ ๊ณต๋ IP ์ฃผ์์ ํฌํธ๋ก ์ฐ๊ฒฐ์ ์๋ํฉ๋๋ค.
telnet 35.193.198.159 5432
).
์ฑ๊ณตํ๋ฉด ๋ค์์ด ํ์๋ฉ๋๋ค.
Trying 35.193.198.159...
Connected to 35.193.198.159.
.
์คํจํ๋ฉด ์ฐ๊ฒฐ ์๋๋ฅผ ๊ฐ์ ์ข
๋ฃํ ๋๊น์ง telnet
์ด ์ค์ง๋ฉ๋๋ค.
Trying 35.193.198.159...
^C.
.
ํด๋ผ์ด์ธํธ ์ธ์ฆ
ํด๋ผ์ด์ธํธ ์ธ์ฆ์ pg_hba.conf
๋ผ๋ ๊ตฌ์ฑ ํ์ผ๋ก ์ ์ด๋ฉ๋๋ค(HBA๋ ํธ์คํธ ๊ธฐ๋ฐ ์ธ์ฆ(host-based authentication)์ ์๋ฏธํจ).
์์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ pg_hba.conf
ํ์ผ์ ๋ณต์ ์ฐ๊ฒฐ ์น์
์ด Cloud SQL VPC์ IP ์ฃผ์ ๋ฒ์์ ์ฐ๊ฒฐ์ ์๋ฝํ๋๋ก ์
๋ฐ์ดํธ๋์๋์ง ํ์ธํ์ธ์.
Cloud Logging
Cloud SQL ๋ฐ Cloud SQL์ Cloud Logging์ ์ฌ์ฉํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ Cloud Logging ๋ฌธ์๋ฅผ ์ฐธ์กฐํ๊ณ Cloud SQL ์ํ ์ฟผ๋ฆฌ๋ฅผ ๊ฒํ ํ์ธ์.
๋ก๊ทธ ๋ณด๊ธฐ
Cloud SQL ์ธ์คํด์ค์ Cloud VPN ๋๋ Compute Engine ์ธ์คํด์ค์ ๊ฐ์ ๋ค๋ฅธ Google Cloudํ๋ก์ ํธ์ ๋ก๊ทธ๋ฅผ ๋ณผ ์ ์์ต๋๋ค. Cloud SQL ์ธ์คํด์ค ๋ก๊ทธ ํญ๋ชฉ์ ๋ก๊ทธ๋ฅผ ๋ณด๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
์ฝ์
-
Google Cloud ์ฝ์์์ Cloud Logging ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
- ํ์ด์ง ์๋จ์์ ๊ธฐ์กด Cloud SQL ํ๋ก์ ํธ๋ฅผ ์ ํํฉ๋๋ค.
- ์ฟผ๋ฆฌ ๋น๋์์ ๋ค์์ ์ถ๊ฐํฉ๋๋ค.
- ๋ฆฌ์์ค: Cloud SQL Database๋ฅผ ์ ํํฉ๋๋ค. ๋ํ์์์์ Cloud SQL ์ธ์คํด์ค๋ฅผ ์ ํํฉ๋๋ค.
- ๋ก๊ทธ ์ด๋ฆ: Cloud SQL ์น์
์ผ๋ก ์คํฌ๋กคํ๊ณ ์ธ์คํด์ค์ ์ ํฉํ ๋ก๊ทธ ํ์ผ์ ์ ํํฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- cloudsql.googleapis.com/postgres.log
- ์ฌ๊ฐ๋: ๋ก๊ทธ ์์ค์ ์ ํํฉ๋๋ค.
- ๊ธฐ๊ฐ: ๋ฏธ๋ฆฌ ์ค์ ์ ์ ํํ๊ฑฐ๋ ์ปค์คํ ๋ฒ์๋ฅผ ๋ง๋ญ๋๋ค.
gcloud
gcloud logging
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ก๊ทธ ํญ๋ชฉ์ ๋ณผ ์ ์์ต๋๋ค. ์๋ ์์์์ PROJECT_ID
๋ฅผ ๋ฐ๊ฟ๋๋ค.
limit
ํ๋๊ทธ๋ ๋ฐํํ ์ต๋ ํญ๋ชฉ ์๋ฅผ ๋ํ๋ด๋ ์ ํ์ ๋งค๊ฐ๋ณ์์
๋๋ค.
gcloud logging read "projects/PROJECT_ID/logs/cloudsql.googleapis.com/postgres.log" \ --limit=10
๋น๊ณต๊ฐ IP ์ฃผ์
๋น๊ณต๊ฐ IP ์ฃผ์๋ฅผ ์ฌ์ฉํ๋ Cloud SQL ์ธ์คํด์ค์ ๋ํ ์ฐ๊ฒฐ์ RFC 1918 ์ฃผ์ ๋ฒ์์์ ์๋์ผ๋ก ์น์ธ๋ฉ๋๋ค. RFC 1918 ์ด์ธ์ ์ฃผ์ ๋ฒ์๋ Cloud SQL์์ ์น์ธ๋ ๋คํธ์ํฌ๋ก ๊ตฌ์ฑํด์ผ ํฉ๋๋ค. ๋ํ RFC 1918 ์ด์ธ์ ๊ฒฝ๋ก๋ฅผ ๋ด๋ณด๋ด๋ ค๋ฉด ๋คํธ์ํฌ ํผ์ด๋ง์ Cloud SQL๋ก ์ ๋ฐ์ดํธํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
gcloud compute networks peerings update cloudsql-postgres-googleapis-com
--network=NETWORK
--export-subnet-routes-with-public-ip
--project=PROJECT_ID
VPN ๋ฌธ์ ํด๊ฒฐ
Cloud VPN ๋ฌธ์ ํด๊ฒฐ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.