๊ฐ์
Database Migration Service๋ ์ฐ๊ฒฐ ํ๋กํ๊ณผ ๋ง์ด๊ทธ๋ ์ด์ ์์ ์ ํ๋ก๊ทธ๋๋งคํฑ ๋ฐฉ์์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํ REST API๋ฅผ ์ ๊ณตํฉ๋๋ค. REST API๋ ์ฐ๊ฒฐ ํ๋กํ๊ณผ ๋ง์ด๊ทธ๋ ์ด์ ์์ ์ ๋ง๋ค๊ณ ๊ด๋ฆฌํ๋ ์์ ๊ณผ ๊ด๋ จ๋ ๋ฆฌ์์ค๋ก ์ ์๋ฉ๋๋ค. ๋ชจ๋ ๋ฆฌ์์ค์ ๋ฉ์๋์ ๊ดํ ์์ธํ ๋ด์ฉ์ Database Migration Service API ์ฐธ์กฐ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Database Migration Service REST API๋ก ์ง์ ์์ฒญ์ ๋ณด๋ผ ๋๋ ์ฌ๋ฐ๋ฅธ ์์ฒญ ์์์ ๋ง๋ค๊ณ , ์ธ์ฆ๋ ์ฌ์ฉ์๋ก ์์ฒญ์ ์น์ธํ๊ณ , ๋ฐํ๋ ์๋ต์ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค. ์ด ๋ฌธ์์ ์ฌ๋ฌ ํ์คํฌ๋ cURL์ ์ฌ์ฉํ๋ API ์์๋ฅผ ์ ๊ณตํฉ๋๋ค.
API ์ฌ์ฉ์ ๊ดํ ์์ธํ ์์๋ Database Migration Service API ์ฐธ๊ณ ์ ์์ฒญ ํ์ด์ง๋ฅผ ์ฐธ๊ณ ํ์ธ์. ๊ฐ ํ์ด์ง์๋ ์ฌ๋ฌ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก API๋ฅผ ํธ์ถํ๋ ์์์ ์ฌ๋ฐ๋ฅธ ํ์์ ์์ฒญ์ ํฌํจ๋๋ ์์ ๋ฐ ์์ ์๋ต์ ํ์ ํ๋ ๋ฐ ๋์์ด ๋๋ ์์ฒญ๋ณ ํ์๊ธฐ๊ฐ ์์ต๋๋ค.
๋ํ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์ธ์คํด์ค๋ฅผ ๊ด๋ฆฌํ ๋ Database Migration Service API๋ฅผ ๊ฐ์ ์ ์ผ๋ก ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค.
Google Cloud CLI: ์ธ์คํด์ค ์์ ์ ์ฌ์ฉํ ์ ์๋ ๋ช ๋ น์ค ์ธํฐํ์ด์ค(CLI)์ ๋๋ค.
Google Cloud console: ๊ทธ๋ํฝ ์น ์ธํฐํ์ด์ค์ ๋๋ค.
์ด๋ฌํ ๋ฐฉ๋ฒ, ํนํGoogle Cloud ์ฝ์์ ์ฌ์ฉํ ๋์ ์ด์ ์ ์ฌ์ฉ ์ฌ๋ก์ ๋ฐ๋ผ ์ฐ๊ฒฐ ํ๋กํ๊ณผ ๋ง์ด๊ทธ๋ ์ด์ ์์ ์ ๊ด๋ฆฌ๋ฅผ ํฌ๊ฒ ๊ฐ์ํํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. Database Migration Service๋ฅผ ์ฒ์ ์์ํ๋ ๊ฒฝ์ฐ REST API๋ก ์ง์ ์์ ํ๊ธฐ ์ ์ ๋จผ์ ์ด๋ฌํ ๋๊ตฌ ์ค ํ๋๋ก ์์ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
API ์ฌ์ฉ ์ค์
Database Migration Service API๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ฌ์ฉ ์ค์ ํด์ผ ํฉ๋๋ค.
์ฝ์
- Database Migration Service API๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.
- ํ๋ก์ ํธ๋ฅผ ์ ํํฉ๋๋ค.
- ๊ณ์์ ์ ํํฉ๋๋ค.
gcloud
- ๋ค์์ ์
๋ ฅํ์ฌ Google Cloudํ๋ก์ ํธ์ ํ๋ก์ ํธ ID๋ฅผ ํ์ํฉ๋๋ค.
gcloud projects list
- ๊ธฐ๋ณธ ํ๋ก์ ํธ๋ฅผ ์ค์ ํฉ๋๋ค.
gcloud config set project YOUR_PROJECT_ID
- Cloud SQL Admin API ์ฌ์ฉ ์ค์
gcloud services enable datamigration.googleapis.com
๊ถํ
Database Migration Service API๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ํ์ํ ๊ถํ์ด ์์ด์ผ ํฉ๋๋ค. ์ด๋ฌํ ๊ถํ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ง์ด๊ทธ๋ ์ด์ ๊ด๋ฆฌ์: ์ด ๊ถํ์ด ์์ผ๋ฉด ์ฌ์ฉ์๊ฐ ์ฐ๊ฒฐ ํ๋กํ๊ณผ ๋ง์ด๊ทธ๋ ์ด์ ์์ ์ ๊ด๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ๋๋ Database Migration Service์ ๋ชจ๋ ๋ฆฌ์์ค์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
- Database Migration ๋ทฐ์ด: ์ด ๊ถํ์ด ์๋ ์ฌ์ฉ์๋ Database Migration Service์ ์ฐ๊ฒฐ ํ๋กํ ๋ฐ ๋ง์ด๊ทธ๋ ์ด์ ์์ ์ ๋ํ ์ฝ๊ธฐ ์ ์ฉ ์ก์ธ์ค ๊ถํ์ ๊ฐ์ต๋๋ค.
- Cloud SQL ๊ด๋ฆฌ์: ์ด ๊ถํ์ด ์๋ ์ฌ์ฉ์๋ Database Migration Service์์ Cloud SQL์ ์ฐ๊ฒฐ ํ๋กํ๊ณผ ๋ง์ด๊ทธ๋ ์ด์ ์์ ์ ๋ง๋ค๊ณ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
Google Cloud์์๋ Identity and Access Management(IAM)๋ฅผ ์ ๊ณตํ๋ฏ๋ก ํน์ Google Cloud ๋ฆฌ์์ค์ ๋์ฑ ์ธ๋ถํ๋ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ๊ณ ๋ค๋ฅธ ๋ฆฌ์์ค์ ๋ํ ๋ฌด๋จ ์ก์ธ์ค๋ฅผ ๋ฐฉ์งํ ์ ์์ต๋๋ค. Google Cloud console, API์ IAM ๋ฉ์๋ ๋๋ Google Cloud CLI๋ฅผ ์ฌ์ฉํ์ฌ Database Migration Service์ ๋ํ ๊ถํ์ ๊ฐ์ ธ์ค๊ณ ์ค์ ํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ฆฌ์์ค์ ๋ํ ์ก์ธ์ค ๊ถํ ๋ถ์ฌ, ๋ณ๊ฒฝ, ์ทจ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
API ์์
cURL๋ก Database Migration Service API๋ฅผ ์ฌ์ฉํ๋ ์๋ API๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐ ํ๋กํ ๊ด๋ฆฌ ๋ฐ API๋ฅผ ์ฌ์ฉํ์ฌ ๋ง์ด๊ทธ๋ ์ด์ ์์ ๊ด๋ฆฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
ํ์ผ์์ JSON ๋ฐ์ดํฐ ์ ๊ณต
cURL๋ก API๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ช ๋ น์ค์ ์ฌ์ฉํ์ฌ ์์ฑ ๊ฐ์ ์ ๊ณตํฉ๋๋ค. ๋น๋ฐ๋ฒํธ๋ ๋ณด์ ํค ๊ฐ์ ๋ฏผ๊ฐํ ๊ฐ์ผ๋ก ์์ ํ๋ ๊ฒฝ์ฐ ๋ช ๋ น์ค์ ์ ๋ ฅํ๋ฉด ๋ณด์ ์ํ์ด ๋ฐ์ํฉ๋๋ค. ๋ณด์์ ๊ฐํํ๊ธฐ ์ํด API ํธ์ถ์ ์ํด JSON ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ ํ์ผ์ ๋ง๋ค๊ณ ๋ช ๋ น์ค์์ ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
cURL API ํธ์ถ์ ๋ํ์ฌ ํ์ผ์์ JSON ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
๋ชจ๋ ํญ๋ชฉ์ด ์์ ๋ฐ์ดํ๋ก ๋ฌถ์ธ ํ์ผ์
--data
ํ๋์ฉ์ผ๋ก ๋ง๋ญ๋๋ค.์ค๊ดํธ๋ ํฌํจํ๋ ์์๋ฐ์ดํ๋ ํฌํจํ์ง ๋ง์ธ์.
๋ช ๋ น์ค์์
@
๋ฌธ์ ์์--data
๋งค๊ฐ ๋ณ์๋ก์ ํ์ผ ๊ฒฝ๋ก ์ ๊ณตํฉ๋๋ค.--data @<path-to-file>/<filename>
์๋ฅผ ๋ค์ด Cloud SQL ์์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐ ํ๋กํ์ ๋ง๋ค๋ ค๋ฉด ๋ค์ ์ฝํ ์ธ ๋ก
request.json
์ด๋ผ๋ ํ์ผ์ ๋ง๋ค ์ ์์ต๋๋ค.{ "displayName": "my Cloud SQL connection profile", "mysql": { "host": "10.11.12.13", "port": 5432, "username": "myusername", "password": "mypassword" } }
๊ทธ๋ฐ ๋ค์ ๋ช ๋ น์ค์์ ๋ค์ cURL ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ --header 'Content-Type: application/json' \ --data @./request.json \ -X POST \ https://datamigration.googleapis.com/v1/projects/myProject/locations/myLocation/connectionProfiles?connectionProfileId=myCloudSQLconnectionprofile
์ฅ๊ธฐ ์คํ API ํธ์ถ ์์
๊ฐ์ฒด ์์ฑ๊ณผ ๊ฐ์ ์ผ๋ถ API ํธ์ถ์ ์๋ฃํ๋ ๋ฐ ์๊ฐ์ด ๊ฑธ๋ฆด ์ ์์ต๋๋ค. API๋ ๋น๋๊ธฐ์ ์ด๋ฏ๋ก ์์ ์ด ์์ง ์งํ ์ค์ด๋๋ผ๋ ํธ์ถ์ด ์ฆ์ ๋ฐํ๋ฉ๋๋ค. ํ์ API ํธ์ถ์์ ์๋ก ์์ฑ๋ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ์์ ์ด ์๋ฃ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฐ ํ ์งํํด์ผ ํฉ๋๋ค.
Database Migration Service API๋ฅผ ์ฌ์ฉํ์ฌ ์์ ์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค.
Database Migration Service ๋ฐ Google API ๋์ค์ปค๋ฒ๋ฆฌ ์๋น์ค
Google API ๋์ค์ปค๋ฒ๋ฆฌ ์๋น์ค๋ Google API๋ฅผ ๊ฒ์ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ์๋น์ค์ ๋๋ค. ์๋ฅผ ๋ค์ด Google API ํ์๊ธฐ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๋์ค์ปค๋ฒ๋ฆฌ ์๋น์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค.
๋์ค์ปค๋ฒ๋ฆฌ ์๋น์ค์์ Database Migration Service๋ 'datamigration'์ผ๋ก ํ์๋ฉ๋๋ค(์: https://datamigration.googleapis.com/$discovery/rest?version=v1).