์ด ๋๋ผ์ด๋ฒ์ ์ถ๊ฐ ์ ๋ณด์์ App Engine์ Google Cloud SQL์ ์ฐ๊ฒฐํ๊ธฐ ์ํ ์ฐ๊ฒฐ ๋ฌธ์์ด์ ๋ค์๊ณผ ๊ฐ์ด ์ ๊ณต๋ฉ๋๋ค.
user@cloudsql(project-id:instance-name)/dbname
Google์ cloudsql ํจํค์ง ๋ฌธ์ ์์๋ ๋๋ผ์ด๋ฒ์ ๋ํด ์ด๋ฅผ ํ์ธํ์ง๋ง projectid:instancename
projectid:regionname:instancename
๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค๊ณ ์ฃผ์ฅํ๋ ์ด์ ๊ฐ์ Stack Overflow ๊ฒ์๋ฌผ์ด ์์ต๋๋ค.
์ฌ๋ฐ๋ฅธ ์ฐ๊ฒฐ ๋ฌธ์์ด์ ๋ฌด์์ ๋๊น? ๋ ๋ค ํ์ฌ ์๋ํ์ง ์์ต๋๋ค.
๋ ์์ธํ ๊ฒ์๋ฌผ์ http://stackoverflow.com/questions/39668672/trouble-connecting-to-google-cloud-sql-server-from-deployed-app ์์ ์ฐพ์ ์ ์์ต๋๋ค.
Cloud SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ์๋ํฌ์ธํธ๋ฅผ ํธ์ถํ ๋๋ง๋ค ์๋ฒ์์ 500 ์๋ต์ ๋ฐํํฉ๋๋ค. ๋ด ์ฑ์ ๋ก์ปฌ ๋ฒ์ ์์ ์๋ฒ์ ์ฐ๊ฒฐํ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ์ด ์ ๋๋ก ์๋ํฉ๋๋ค.
๋ค์ํ ์ฐ๊ฒฐ ๋ฌธ์์ด์ ์๋ํ์ผ๋ฉฐ ๋ค์์ Google Cloud Console์ ๊ธฐ๋ก๋ ๋ช ๊ฐ์ง ์ค๋ฅ์ ๋๋ค.
5447 [Warning] 'user' entry 'root<strong i="21">@localhost</strong>' ignored in --skip-name-resolve mode.
5447 [Warning] entry 'root'@'localhost' in mysql.user is ignored because it duplicates entry in mysql.system_user
14409 [Note] Aborted connection 14409 to db: 'User' user: 'root' host: 'xxx.xxx.xxx.xxx' (Got an error reading communication packets)
(๋ฌธ์์์ ์ํธ์ ํ์์ฑ์ ์ง์ ํ์ง ์์๊ธฐ ๋๋ฌธ์ ์ฐ๊ฒฐ ๋ฌธ์์ด์ ์ํธ๊ฐ ์ง์ ๋์ง ์์์ต๋๋ค. ์ด ๊ฒ์๋ฌผ ์ ์ฑ์ด root@localhost
๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ์ ์ฐ๊ฒฐ์ ์๋ํ ๋ ์ฐ๊ฒฐ ์ํธ๊ฐ null์ด์ด์ผ ํ๋ค๊ณ ์ธ๊ธํฉ๋๋ค.)
6170 [Note] Access denied for user 'root'@'cloudsqlproxy~xx.xxx.xxx.xx' (using password: NO)
๋ํ ๋ฃจํธ ์ฌ์ฉ์(์ฌ์ฉ์ ์ด๋ฆ: newuser)๊ฐ ์๋ ๋ค๋ฅธ ์ฌ์ฉ์์ ์ฐ๊ฒฐ์ ์๋ํ์ต๋๋ค.
5447 [Warning] 'user' entry 'newuser<strong i="30">@localhost</strong>' ignored in --skip-name-resolve mode.
_๋๋ผ์ด๋ฒ ๋ฒ์ (๋๋ git SHA):_ https://github.com/go-sql-driver/mysql/tree/3654d25ec346ee8ce71a68431025458d52a38ac0
_์ด๋ ๋ฒ์ :_ ์ด๋ ๋ฒ์ go1.6.2 linux/amd64
_์๋ฒ ๋ฒ์ :_ Google Cloud SQL ์ธ์คํด์ค๋ MySQL 5.7์ ์คํ ์ค์ ๋๋ค.
_์๋ฒ OS:_ Compute Engine ํญ์์ ๋ด ์ฑ์ ์ต์ ๋ฒ์ ์ ํธ์คํ ํ๋ ์๋ฒ๊ฐ Debian 7.11(Wheezy)์ ์คํํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค.
user@cloudsql (ํ๋ก์ ํธ ID:์ธ์คํด์ค ์ด๋ฆ)/dbname
์ค๋๋ ๊ฒ์
๋๋ค. ์ฌ์ ํ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์๋ํฉ๋๋ค.
์ต๊ทผ gae๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ง์ญ์ผ๋ก ๋ถ๋ฅํ๊ธฐ ์์ํ์ฌ ์๋ก์ด ํ์๋ ๋์์ต๋๋ค. cloudsql์ด ์ง์ญ์ผ๋ก ๋ถ๋ฅ๋ ๊ฒฝ์ฐ ์ ํ์์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์๋ง๋ ์ด ๋๋ผ์ด๋ฒ๊ฐ ์ ํ์์ ์ ๋๋ก ๊ตฌ๋ฌธ ๋ถ์ํ์ง ๋ชปํ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ด ๋ฌธ์ ์ผ ์ ์๋ค
๊ทํ์ ๊ฒฝ์ฐ 2์ธ๋ Cloud SQL ์๋ฒ๋ฅผ ์คํํ๊ณ ์์ต๋๊น?
1์ธ๋ ์์
๋๋ผ์ด๋ฒ๊ฐ ์ ํ์์ ๊ตฌ๋ฌธ ๋ถ์ํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ฝ๋๋ ์๋ก์ด ์ฝ๋ก ์ ์กด์ฌ ์ฌ๋ถ์ ๊ด๊ณ์์ด ์ฒซ ๋ฒ์งธ ์ฝ๋ก ์์ ๋ด์ฉ๊ณผ ์ฒซ ๋ฒ์งธ ์ฝ๋ก ๋ค์ ๋ด์ฉ์ ์ทจํ๋๋ก ๋ณ๊ฒฝํด์ผ ํ ์ ์์ต๋๋ค.
ํ์ฌ read me๋ฅผ ์ ๋ฐ์ดํธํ๋ pull ์์ฒญ์ด ์์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค. ๋ฐฉ๊ธ ๊ทธ PR์ ๋๊ธ์ ๋จ๊ฒผ์ต๋๋ค.
์์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก ๋๋ผ์ด๋ฒ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ ๋๊น์ง 1์ธ๋ โโ์๋ฒ๋ฅผ ์ค์ ํ๊ฒ ์ต๋๋ค.
์ ๋ฐ์ดํธ: ๋ฐฐํฌ๋ Google App Engine ์ ํ๋ฆฌ์ผ์ด์ ์ด 2์ธ๋ Google Cloud SQL Server์ ์ฐ๊ฒฐ์ ์๋ํ ๋ ๋๋ผ์ด๋ฒ์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
1์ธ๋ Cloud SQL Server๋ฅผ ๋ง๋ค์๊ณ ๋ค์ ์ฐ๊ฒฐ ๋ฌธ์์ด๋ก ๋ฐฐํฌ๋ Google App Engine ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ์ฌ ์๋ฒ์ ์ฑ๊ณต์ ์ผ๋ก ์ฐ๊ฒฐํ ์ ์์์ต๋๋ค.
user@cloudsql(project-id:instance-name)/dbname
์ง์ญ ์ด๋ฆ์ด ํ์ํ์ง ์์์ต๋๋ค.
๊ตฌ๋ฌธ ๋ถ์์ ๋ฌธ์ ๊ฐ ๋์ง ์์์ผ ํฉ๋๋ค. ๋๋ผ์ด๋ฒ๋ ๊ดํธ ์ฌ์ด์ ๋ชจ๋ ๊ฒ์ ๊ฐ์ ธ์ต๋๋ค. https://github.com/go-sql-driver/mysql/blob/master/dsn.go#L282
https://github.com/go-sql-driver/mysql/blob/master/driver.go#L65 ์์๋ง ์ฌ์ฉ๋ฉ๋๋ค.
Cloudsql ๊ณ์ ์ด ์๋ ์ฌ๋์ด ๋๋ผ์ด๋ฒ๋ฅผ ๋ค์ด๋ก๋ํ๊ณ https://github.com/go-sql-driver/mysql/blob/master/appengine.go#L14 ๋ฅผ ํธ์งํ๊ณ "appengine/cloudsql"
๋ฅผ "google.golang.org/appengine/cloudsql"
๋ก ๋์ฒดํ ์ ์์ต๋๊น?
_ ์ฌ๋ฌ๋ถ, ์ฐธ๊ณ ๋ก _
2์ธ๋ ์ฐ๊ฒฐ์ ๋ํ Google ์ ๊ณต ์๋ฃจ์
์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
http://stackoverflow.com/questions/38890022/tls-requested-but-server-does-not-support-tls-error-with-google-cloud-sql-2nd
Google์ ๊ฒ์๋ ๋ฌธ์๋ ์๋ชป ๋์์ง๋ง(์๋ง๋ ์ฌ์ ํ ๊ทธ๋ด ์ ์์) ์ฌ๋ฐ๋ฅธ ์๋ฃจ์ ์ด ๊ฒ์๋์ด ์์ต๋๋ค. ํ๋ก๋์ ์์ ๋ฌธ์ ์์ด 2์ธ๋ Cloud SQL์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
์ด์ ๋ํ ํด๊ฒฐ์ฑ ์ด ์์ต๋๊น? CloudSQL 2์ธ๋์์๋ ํ์คํ ์๋ํ์ง ์์ต๋๋ค.
@bagatelli ๋น์ ์์ ๋ด ์๊ฒฌ์ ์ฐธ์กฐํ์ญ์์ค
@benguild ์ฌ๋ฌ ๊ณณ์์ ๊ทํ์ ์๊ฒฌ์ ๋ณด์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋ ์ฌ๋์ด ํด๋น๋์ง ์๋ ์ฐ๊ฒฐ์์ ๋ชจ๋ ์ฌ๋์ด SSL์ ์ฌ์ฉํ๊ณ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๋ฌผ๋ก ๊ทธ๊ฒ์ ๋ด ๊ฒ์ด ์๋๋๋ค. ๋ด๊ฐ ๋ฐ๋ ์ค๋ฅ ๋ฉ์์ง๋ "๋๋ผ์ด๋ฒ: ์๋ชป๋ ์ฐ๊ฒฐ"์ ๋๋ค. ๋๋ผ์ด๋ฒ๊ฐ ์ฐ๊ฒฐ ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋๋ก ์๋ณํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ฌํ์ง๋ ์์ต๋๋ค. ์ ์๊ฐ์๋ ๋ฌธ์ ๊ฐ "new appengine" ๋ฐ "old appengine" ํจํค์ง์ ๊ด๋ จ๋ ํผ๋์ ์ด๋๊ฐ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
@bagatelli ๋ช ํํ ํ๊ธฐ ์ํด ์ด ์ฃผ์์ ์ธ๊ธ๋ ์ฐ๊ฒฐ ๋ฌธ์์ด ํ์์ ์ฌ์ฉํ๊ณ ์๋์ง ํ์ธํ์ญ์์ค. http://stackoverflow.com/questions/38890022/tls-requested-but-server-does-not-support-tls-error- with-google-cloud-sql-2nd#comment65140499_38890022
์ด์ ์ ๊ฐ๊ฒฐํจ์ ๋ํด ์ฃ์กํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๋ฌธ์ ์์ด Go on App Engine์ ํ๋ก๋์ ์์ 2์ธ๋๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. SQL ํ๋ก์๊ฐ ์ถ๊ฐํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ "tlsConfigName" ๋งค๊ฐ๋ณ์๋ฅผ ์๋ตํ์ญ์์ค. ๊ทธ๋ฌ๋ ์ด๋ ์ชฝ์ด๋ ์ด์ TLS๊ฐ ์ง์๋๋ค๊ณ ๋ณด๊ณ ํฉ๋๋ค.
@๋ฒต๊ธธ๋ . ์ด ๋ชจ๋ ๋ฌธ์ ์ ๋ํด ์ ๋ฅผ ๋์์ฃผ์ ๋ชจ๋ ๋
ธ๋ ฅ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
"new appengine" ๋๋ "old appengine"์ ์ฌ์ฉํ๊ณ ์์ต๋๊น? ๋๋ ๋ฐฉ๊ธ ๋ชจ๋ ์ฝ๋๋ฅผ ์๋ก์ด appengine ํจํค์ง์ธ ์ด ์๋ก์ด ์
๋ชฝ์ผ๋ก ๋ณํํ๋ ๋ฐ ํ๋ฃจ๋ฅผ ๋ณด๋์ต๋๋ค. ๋ด ๋ค๋ฅธ ๊ฒ์๋ฌผ์์ ์ ์ ์๋ฏ์ด ๋ ์ด์ ๋ด ์ฝ๋๋ฅผ ๋ฐฐํฌํ ์ ์์ผ๋ฏ๋ก ์์์ ์ ์ํ ๊ฒ์ ์ ๋๋ก ํ
์คํธํ ์ ์์ต๋๋ค. . ๋ด ์ฑ์ ๋ฐฐํฌํ ์๋ฃจ์
์ ์ฐพ๋ ์ฆ์ ๋ค์ ์๋ํ๊ฒ ์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค!
@bagatelli ๋ฐฐํฌํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ์ฝ๋๋ฅผ VM์ผ๋ก ๊ฐ์ ธ์ค๊ฑฐ๋ Google Cloud Console์ ์ฌ์ฉํด ๋ณด์ธ์.
@bagatelli ๋ด๊ฐ ๋งํ ๊ฒ์ ... ์๋ก์ด ์์คํ ์์ ์๋ํ๊ฑฐ๋ ํ๊ฒฝ๊ณผ ๊ด๋ จ์ด ์๋ค๋ ์ฌ์ค์ ์ฐ๊ธฐ ์ ์ ํด๋ผ์ฐ๋ ์ฝ์(๊ฐ๋ฐ ๋๊ตฌ๊ฐ ์ด๋ฏธ ์์)์ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค.
ํ์ฌ 4๊ฐ์๋ ๋ฒ๊ทธ๋ก ์ธํด macOS Sierra๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐํฌํ ์ ์์ง๋ง VM์์๋ ๋ฌธ์ ์์ด ๋ฐฐํฌํ ์ ์์ต๋๋ค.
๋๋ ๋น์ ์ด ํ๊ฒฝ์์ ์์ ํ ๋ฒ์ด๋๋ ๊ฒ์ด ๋ ๋ง์ ์ผ์ด๋ผ๊ณ ํ์ ํ๋ฏ๋ก ์์ ํ ๊ทธ๋ง๋๊ธฐ ์ ์ ์ ์ด๋ ๊ทธ๊ฒ์ ๋ฐฐ์ ํ ๊ฒ์ ๋๋ค.
@pjebs . ์ด ๊ฐ์ ์ ์ด๋์์ ์ป์๋์ง ํ์คํ์ง ์์ง๋ง ์ ์ฐํ ํ๊ฒฝ์ ์ฌ์ฉํ๊ณ ์์ง ์์ต๋๋ค.
@pjebs ๊ทธ๊ฑด ํ๋ฆฝ๋๋ค. ์ด๊ฒ์ด ํ์ฌ ํ์ค์ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
@pjebs appcfg.py update
๋ ์๋ํฉ๋๋ค.
@bagatelli ์ ๋ค์์ต๋๋ค. ์ ๋ ์ผ๋ฐ์ ์ผ๋ก ์ 3์ ์ข ์์ฑ๊ณผ API ์ข ์์ฑ์ ์ต์ํํ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค. ๋ง์ํ์ ๋ด์ฉ์ด ์ฌ์ค์ด๊ธฐ ๋๋ฌธ์ ๋๋ค... Google์ ์ง์์ ์ ๊ณตํ ์๋ฌด๊ฐ ์์ง๋ง ๊ทธ๋ ์ง ์์ผ๋ฉด ํํ์ด ์ํํ ์ ์์ต๋๋ค.
ํ์ฌ ๊ทํ์๊ฒ ์ ํํ ์ด๋ค ๋ฌธ์ ๊ฐ ์๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง(์ด์ API๋ฅผ ์ฌ์ฉํ๋ ๊ฒ ์ธ์๋?) ์ ๊ฐ App Engine์ฉ์ผ๋ก ๊ฐ๋ฐํ ๋ชจ๋ ์ํํธ์จ์ด๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ App Engine์์ ๋ฒ์ด๋ ์๋๋ก ๊ฐ๋ฐํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ์ํ ๋. ์๋ฅผ ๋ค์ด, ๋ด๊ฐ ์ธํฐํ์ด์คํ๋ ๋ชจ๋ Google API์ ๋ํด ์ค์ ๋ก ๋ฉ์๋๋ฅผ ํธ์ถํ๊ณ ๋๋จธ์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฒด์ ์ผ๋ก ์ ๊ณตํ๋ "๋์ฐ๋ฏธ"๋ฅผ ์์ฑํ์ฌ ํ์ํ ๋๋ง ์ ํ๊ฒฝ์ ๋ง๊ฒ ์กฐ์ ํ๋ฉด ๋ฉ๋๋ค. ๋ฐ๋ผ๊ฑด๋] ๋๋จธ์ง ์์ฉ ํ๋ก๊ทธ๋จ์ ์์์ํค์ง ์๊ณ .
์ ์๊ฒ App Engine์ ํ์ฅ ๋ฐ ํ๊ฒฝ ์ค์ ์ธ์ ์ฝ๊ฐ์ ๊ตฌ์ฑ์ด ํ์ํ๊ณ ๋ช ๊ฐ์ง ํ๋ฅญํ API๋ฅผ ์ ๊ณตํ๋ ํ๊ฒฝ์ด๊ธฐ ๋๋ฌธ์ ๋ ํธ๋ฆฌํฉ๋๋ค. ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ์ฑ๊ฐ์ ์ผ์ด์ง๋ง ๊ทํ๊ฐ ๋งํ๋ ๊ฒ๊ณผ ๊ฐ์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ํ๋ฆฌ๋ฏธ์ ์ง์์ ์ ๊ณตํฉ๋๊น?
@pjebs. ๋ด๊ฐ ์๋ ํ goapp์ appcfg.py์ ๋ํผ์ผ ๋ฟ์ ๋๋ค. ์ด๋ ์์ ์์ appcfg.py๋ฅผ ํธ์ถํ๊ฒ ๋ฉ๋๋ค.
@bagatelli ๋ค, ์ด๋ฉ์ผ์ ๋ณด๋ด์ฃผ์ธ์. ๊ด์ฐฎ์์
@๋ฒต๊ธธ๋ . ๋ง์นจ๋ด ๋ด ์ฑ์ ๋ฐฐํฌํ ์ ์์์ง๋ง ์ฌ์ ํ CloudSQL์ ์ฐ๊ฒฐํ๋ ๋ฐ ์ด์ด ์์ต๋๋ค.
"new appengine" ํจํค์ง๋ฅผ ์ฌ์ฉํ๊ณ mysql-driver ํจํค์ง์ "appengine.go"์์ google.golang.org/appengine/clousql๋ก clousql ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ์ค์ ํ๋๋ก ์ ์ฒด ์ฑ์ ์
๋ฐ์ดํธํ์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ CloudSQL ์ ์ดํ์์ ํด๋ผ์ด์ธํธ ์ธ์ฆ์๋ฅผ ์์ฑํ๊ณ stackoverflow์ ๊ฒ์๋ฌผ์ ๋ช
์๋ ๋๋ก tls ๊ตฌ์ฑ์ ๋งค๊ฐ๋ณ์๋ก ์ ๊ณตํ๋ ๋๋ผ์ด๋ฒ ์ค๋ช
์์ ์ค๋ช
๋ ๋๋ก RegisterTLSConfig๋ฅผ ์ฌ์ฉํ์ฌ ๊ทธ์ ๋ฐ๋ผ ์ฝ๋๋ฅผ ์
๋ฐ์ดํธํ์ต๋๋ค. ๋ด URL ์ฐ๊ฒฐ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
root:password@cloudsql (instance-connection-name-copied-from-cloud-console)/myDatabase?tls=customTls
์ฌ์ ํ ์ด์ด ์์ต๋๋ค. ์ค๋ฅ:
๋๋ผ์ด๋ฒ: ์๋ชป๋ ์ฐ๊ฒฐ
@arnehormann . ์ด๊ฒ์ ์์ ๊ฒ์๋ฌผ์์ ๊ทํ์ ์ง๋ฌธ์ ๋ํ ๋ต๋ณ์ ๋๋ค.
@bagatelli TLS ์์ด ์ฌ์ฉํด ๋ณด์ธ์.
@๋ฒต๊ธธ๋ . tls ์์ด ์๋ํ์ต๋๋ค. ๋ถ์ด.
๋๋ผ์ด๋ฒ: ์๋ชป๋ ์ฐ๊ฒฐ
@pjebs . ์ฌ๊ธฐ์์ ๋ฌธ์ ๋ฅผ ์์ ํ ์ดํดํ๋์ง ํ์คํ์ง ์์ต๋๋ค. ๋๋ผ์ด๋ฒ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ฌํ์ง๋ ์์ต๋๋ค. ์์์ ์ธ๊ธํ ๋ด์ฉ์ด ํ๋ก๋์ ํ๊ฒฝ์์ ์ฌ์ค์ผ ์ ์๋ค๋ ๊ฒ์ ์ดํดํ์ง๋ง ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ๋จ์ผ ์ฐ๊ฒฐ๋ ์ค์ ํ ์ ์์ผ๋ฏ๋ก ์ ๊ฒฝ์ฐ์๋ ์์ ๋ด์ฉ์ด ์ ํ ์ ์ฉ๋์ง ์์ต๋๋ค.
@bagatelli ๋ด๊ฐ ํ ๊ฒ์ฒ๋ผ ์คํ ์ค๋ฒํ๋ก์ ๊ฒ์ํ๊ณ google-cloud-sql
... Google์ ๋๊ตฐ๊ฐ๊ฐ ์๋ตํด์ผ ํฉ๋๋ค.
์ด ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ๋์ผํ ๋ฌธ์ ๊ฐ ์๋ ๋ค๋ฅธ ์ฌ๋๋ค์ ์ํด ์์ธ์ ์์ฑํ๊ธฐ๋ฅผ ์ํ ๊ฒ์ ๋๋ค. ์ผ๋จ ํด๊ฒฐ๋ ์ง๋ฌธ์ ๋ํ ๋งํฌ์ ํจ๊ป ์ฌ๊ธฐ์ ๋ค์ ์๋ตํ์ญ์์ค.
๋ด๊ฐ ๋งํ๋ฏ์ด ์ฌ๋๋ค์ด ํ๋ก๋์ ํ๊ฒฝ์์ 2์ธ๋๋ฅผ ์ฌ์ฉํ๊ณ ์๊ณ ๋ฒ ํ ๋ฒ์ ์ด ์๋๊ธฐ ๋๋ฌธ์ ์ฌ์ ํ ๊ตฌํ๊ณผ ๊ด๋ จ์ด ์์ ๊ฐ๋ฅ์ฑ์ด ํฝ๋๋ค.
@bagatelli Cloud Console์์ ์ธ์คํด์ค์ 'TLS ํ์' ์ค์ ์ ๋๋ ๊ฒ์ ๊ธฐ์ตํ์ จ๋์?
@benguild ์ @pjebs ์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. SO์ ๊ฒ์ํ๊ณ ์์ธ์ ์ฐพ์ผ๋ฉด ์ฌ๊ธฐ์ ์ ๋ฐ์ดํธ๋ฅผ ์ ๊ณตํฉ๋๋ค.
@๋ฒต๊ธธ๋ . Cloud Console์์ TLS์ ๋ํ ์ธ๊ธ์ ๋ณผ ์ ์์ต๋๋ค.
"SSL ์ฐ๊ฒฐ๋ง ํ์ฉ"์ ์๋ฏธํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด๊ฒ์ด ๋น์ ์ด ๋งํ๋ ๊ฒ์ด๋ผ๋ฉด ์, ๊บผ์ ธ ์์ต๋๋ค.
์๊ฒ ์ต๋๋ค. ๋ฌธ์ ๋ฅผ ์ฐพ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ๋๋ผ์ด๋ฒ๋, ๋ด ์ฑ๋, CloudSQL๋ ์๋์์ต๋๋ค. ์ฑ์ ๋ฐฐํฌํ๋ ํ๋ก์ ํธ๋ ๋ช ๋
์ ์ ์ด์ ๊ฐ๋ฐ์ ์ฝ์์ ํตํด ์์ฑ๋์์ต๋๋ค.
Cloud Console์ ์ก์ธ์ค ์ ์ด ํญ์๋ "์ด ํ๋ก์ ํธ์ ์ฑ: ๋ชจ๋ ์น์ธ๋จ"์ด๋ผ๋ ๋ ์ด๋ธ์ด ์์ต๋๋ค. ํ๋ก์ ํธ๊ฐ ์์ฑ๋๋ฉด ๊ธฐ๋ณธ appengine ๋ฐ ์ปดํจํ
์์ง ๊ณ์ ๋ ์์ฑ๋ฉ๋๋ค. ๋ฌธ์ ๋ ์ด ํน์ ํ๋ก์ ํธ์ ๊ธฐ๋ณธ ๊ณ์ ์ด ๋ ๋ค ์์๊ณ ๊ทธ๊ฒ์ด ๋ฌธ์ ๋ผ๊ณ ํ์ ํ๋ค๋ ๊ฒ์
๋๋ค. ์๋ง๋ Google์ IAM ๋ฐ ๊ด๋ฆฌ์๋ฅผ ์ฌ์ฉํ์ฌ ์ก์ธ์ค ๊ณ์ ์ ๊ด๋ฆฌํ๋ ํด๋ผ์ฐ๋ ์ฝ์๋ก appengine์ ๋ง์ด๊ทธ๋ ์ด์
ํ ๋ ํด๋น ๊ณ์ ์ ์์ฑํ์ง ์์์ ๊ฒ์
๋๋ค.
๊ธฐ๋ณธ ๊ณ์ ์ด ๋๋ฝ๋ ๊ฒ์ ๋ฐ๊ฒฌํ์ ๋ ์ ํ๋ก์ ํธ์ ์ ํด๋ผ์ฐ๋ SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋ค๊ณ ์ ํํ ๋์ผํ ์ฝ๋๋ฅผ ์ด ์ ํ๋ก์ ํธ์ ๋ฐฐํฌํ๊ณ _voila_...๋ชจ๋ ์ ์๋ํ๊ณ ์๋ค๊ณ ๊ฐ์ ํ๊ณ ์์ต๋๋ค.
@benguild @pjebs ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ ์ฃผ์ ๋ชจ๋ ๋ถ๋ค๊ป ์ง์ฌ์ผ๋ก ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
@benguild AppEngine/Google๊ณผ ๊ด๋ จ๋ ๋์ผํ ํ์ด์ง์ ์๋ ๊ฒ ๊ฐ์์ ์ด์ ๋ํ์์ ๊ด๋ จ ์๋ ๋ชจ๋ ๋๊ธ์ ์ญ์ ํ์ต๋๋ค. ๋์ค์ ์ด๋ฉ์ผ์ ๋ณด๋ด๋๋ฆฝ๋๋ค.
๋๋ ์ด ์ง๋ฌธ์ StackOverflow์ ๊ฒ์ํ์ผ๋ฉฐ ๋์ผํ ๋ฌธ์ ๋ฅผ ๊ฐ์ง ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ด์ ์ ์ป์ ์ ์๋๋ก ์ด ๋ฐ๊ฒฌ์ผ๋ก ๋ต๋ณํ ๊ฒ์
๋๋ค.
http://stackoverflow.com/questions/40020782/connect-to-google-sql-cloud-2nd-generation-with-go-on-appengine
๋ค์ ํ๋ฒ ๊ฐ์ฌํฉ๋๋ค!
์, App Engine์ด SQL ์ธ์คํด์ค์ ์ก์ธ์คํ ์ ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ๐๐ป
#485์ ์ํด ์์ ๋จ
๋ด๊ฐ ๋งํ ์ ์๋ ๊ฒ์ ๊ฐ์ฌ ํฉ๋๋ค @benguild ! ํฌ๋กฌ ํญ์ 500๊ฐ ์ด๊ณ 5์๊ฐ ๋์ ์ธํฐ๋ท ๊ฒ์์ ํ ํ ํค๋ณด๋์ ๋จธ๋ฆฌ๋ฅผ ๋ถ๋ช์น๋ ๊ฒ์ ๋ฉ์ถ ์ ์๋๋ก ๋์์ฃผ์ จ์ต๋๋ค! ํ ๋ ๋ฃจ์ผ!!!
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@bagatelli ๋ช ํํ ํ๊ธฐ ์ํด ์ด ์ฃผ์์ ์ธ๊ธ๋ ์ฐ๊ฒฐ ๋ฌธ์์ด ํ์์ ์ฌ์ฉํ๊ณ ์๋์ง ํ์ธํ์ญ์์ค. http://stackoverflow.com/questions/38890022/tls-requested-but-server-does-not-support-tls-error- with-google-cloud-sql-2nd#comment65140499_38890022
์ด์ ์ ๊ฐ๊ฒฐํจ์ ๋ํด ์ฃ์กํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๋ฌธ์ ์์ด Go on App Engine์ ํ๋ก๋์ ์์ 2์ธ๋๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. SQL ํ๋ก์๊ฐ ์ถ๊ฐํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ "tlsConfigName" ๋งค๊ฐ๋ณ์๋ฅผ ์๋ตํ์ญ์์ค. ๊ทธ๋ฌ๋ ์ด๋ ์ชฝ์ด๋ ์ด์ TLS๊ฐ ์ง์๋๋ค๊ณ ๋ณด๊ณ ํฉ๋๋ค.