DMT (Data Migration Tool)๋ ๋ค์ด๋ฒ ํด๋ผ์ฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ์ ์ ์ฒด ๋ฐฑ์ ๊ณผ ๋ก๊ทธ ๋ฐฑ์ ์์ด์ฉํด ์๋น์ค๋ฅผ ํด๋ผ์ฐ๋๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ฑฐ๋, ์ฌ์ฉ ์ค์ธ ํด๋ผ์ฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐฑ์ ์ ๋ด๋ ค๋ฐ๋ ํ๋ก๊ทธ๋จ์ ๋๋ค. ํ์ฌ Cloud DB for MSSQL๋ง ์ง์ํ๊ณ ์์ผ๋ฉฐ, ํฅํ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ง์ํ ๊ณํ์ ๋๋ค.
23๋ 9์ 21์ผ๋ถํฐ ํด๋์ ํ๊ฒฝ๋ง ์ง์๋ฉ๋๋ค.
VPC ํ๊ฒฝ์ ๊ฒฝ์ฐ ๋งํฌ : ์ฌ์ฉ์ ๊ฐ์ด๋ - ๋ฐ์ดํฐ ๋ง์ด๊ทธ๋ ์ด์ (๋ฐฑ์ ๋ณต๊ตฌ)๋ฅผ ์ด์ฉํ์๊ธธ ๋ฐ๋๋๋ค.
Cloud DB์ ๋ฐฑ์ ํ์ผ์ ์ด์ฉํด ๋ณต์ํ๊ธฐ ์ํด์๋ ๋ช ๋ฒ์ ํ์ผ ๋ณต์ฌ๊ฐ ํ์ํฉ๋๋ค. ์ฒซ ๋ฒ์งธ, ์ฌ์ฉ์ ๋ฐฑ์ ํ์ผ์ Amazon S3 ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง(Object Storage)๋, ๋ค์ด๋ฒ ํด๋ผ์ฐ๋ ํ๋ซํผ ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง๋ก ์ ๋ก๋ํฉ๋๋ค. ์ด๋ S3 Browser ๋ ์ ๊ณต๋ ํ๋ก๊ทธ๋จ์ผ๋ก ์ ๋ก๋ ๊ฐ๋ฅํฉ๋๋ค. ๋ ๋ฒ์งธ, ๋ฐฑ์ ๋ณต๊ตฌ์ฉ ๋ด๋ถ NAS ์คํ ๋ฆฌ์ง(Internal Storage)์ ์ ๋ก๋ํฉ๋๋ค. ์ธ ๋ฒ์งธ, ์ง์ ํ RDS ์๋ฒ์ ๋ณต๊ตฌํด ๋ง์ด๊ทธ๋ ์ด์ ์ ์๋ฃํฉ๋๋ค.(Amazon S3์ ๋ฐฑ์ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ผ์ ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง๋ก ์ฎ๊ธธ ํ์ ์์ด ๋ฐ๋ก ๋ด๋ถ ์คํ ๋ฆฌ์ง๋ก ์ฎ๊ธธ ์ ์์ต๋๋ค. ) ๋ด๋ถ ์คํ ๋ฆฌ์ง๋ก ์ฌ๋ ค์ง ํ์ผ์ 15์ผ ์ด๋ด ๋ณต๊ตฌํ์ง ์์ผ๋ฉด, ๋ชจ๋ ์ญ์ ๋ฉ๋๋ค.
API Gateway๋ฅผ ์ด์ฉํด ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง์์ ๋ด๋ถ ์คํ ๋ฆฌ์ง๋ก ๋ณต์ฌ, ๋ด๋ถ ์คํ ๋ฆฌ์ง์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณต๊ตฌ, ๋ฐฑ์ ๋ ๋ด๋ถ ์คํ ๋ฆฌ์ง ํ์ผ์ ์กฐํํ๊ฑฐ๋ ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง๋ก ๋ค์ด๋ก๋ํ๋ API๋ฅผ ์ ๊ณตํ๊ณ ์์ต๋๋ค. C# ์์ฉํ๋ก๊ทธ๋จ DMT๋ ์ฌ์ฉ์๊ฐ ์ง์ API๋ฅผ ์์ฑํ์ง ์๊ณ , ํ์ ์ ๋ณด๋ง ์ ๋ ฅํ๊ณ API๋ฅผ ํธ์ถํด ๋ง์ด๊ทธ๋ ์ด์ ์ ํ ์ ์์ผ๋ฉฐ, ๋ค์ ์์ ๋ฅผ ํฌํจํ๊ณ ์์ต๋๋ค.
- Hmac ์ธ์ฆ ์์
- Object Storage API ํธ์ถ ์์
- Bucket ์กฐํ
- ํ์ผ ์ ๋ก๋, ๋ค์ด๋ก๋
- ํ์ผ ์ญ์
- ํ์ผ ๋ฆฌ์คํธ
- API ํธ์ถ ์์
- Configuration Group ์กฐํ
- ๋ด๋ถ ์คํ ๋ฆฌ์ง ํ์ผ ์ ๋ก๋, ๋ค์ด๋ก๋
- ๋ฆฌ์คํ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๋ฆฌ์คํ ์ด ๋ก๊ทธ
- ๊ฒฐ๊ณผ ์กฐํ
- ๊ธฐํ
- ์ฌ์ฉ์ ์ปดํฌ๋ํธ
- TAP (Task Asynchronous Pattern)
- ์ด๋ฒคํธ ๋๋ฆฌ๋ธ
- Json ์ฌ์ฉ๋ฒ
- ์ฑ๋ฅ ์นด์ดํฐ๋ฅผ ์ด์ฉํ ๋ก์ปฌ ๋ฆฌ์์ค ์ฌ์ฉ๋ ๋ชจ๋ํฐ๋ง
- ํ์ผ ํธ๋ค๋ง
Git Repository์์ DmtMssql.zip ํ์ผ์ ๋ค์ด๋ก๋ํด ๋ฐ๋ก ๋ง์ด๊ทธ๋ ์ด์ ์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ํ์ํ ๊ฒฝ์ฐ ์ ์ ์์ค ํ์ผ์ ๋ค์ด๋ก๋ํด ์์ ํธ์ง์ด ๊ฐ๋ฅํฉ๋๋ค.
๋ก์ปฌ ์ปดํจํฐ์์ ์ ์ํ ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง ์ ๋ณด(Target Object Storage Info)์ API๋ฅผ ์ด์ฉํ๊ธฐ ์ํ ๊ธฐ๋ณธ ์ ๋ณด ( API Gateway Info), ๋ฏธ๋ฆฌ ์์ฑํด๋ RDS ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๋ณด(Database Info)๊ฐ ํ์ํฉ๋๋ค. ๋ณธ ๋จ๊ณ๊ฐ ์ ์์ ์ผ๋ก ํ ์คํธ ๋๊ณ ์ ์ฅ๋๋ฉด ๋ก์ปฌ ๋ฐฑ์ ํ์ผ์ ์ด์ฉํด RDS์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณต๊ตฌํ ์ ์์ต๋๋ค. ์๋ ๊ฐ์ด๋๋ฅผ ์์งํด ํด๋น ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ ๋ค์ ์์ ์ ์งํํ๋ฉด ๋ฉ๋๋ค. (์ ๋ก๋ ํ ํ์ผ์ด๋ฆ์ ํ๊ธ๊ณผ ๊ณต๋ฐฑ์ ์ง์ํ์ง ์์ต๋๋ค.)
ApiGateway Info ํญ๋ชฉ์ Platform ์ Classic Public ๊ณผ VPC Public ์ ์ง์ํ๊ณ ์์ต๋๋ค. ์ฌ์ฉ ํ ์๋ฒ๊ฐ ์๋ Platform ์ ๋ณด๋ฅผ ์ ์ฅ ํฉ๋๋ค.
๋งํฌ : ObjectStorageEndPoint_URL Amazon S3 EndPoint ๋ ๋ค์ด๋ฒ ํด๋ผ์ฐ๋ ํ๋ซํผ ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง ์ ์ ๋๋ฉ์ธ์ ๋๋ค. http:// ๋ฐ https:// ๋ ์ ์ธํ๊ณ ์ ์ต๋๋ค. ํด๋น URL ์ด ํ๋ฆฌ๋ฉด A WebException with status NameResolutionFailure was thrown. ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค.
Potal > MyPage > Manage Authentication Key ํ์ด์ง์์ ํค๋ฅผ ์์ฑํฉ๋๋ค. ํด๋น ์ ๋ณด๊ฐ ํ๋ฆฌ๊ฑฐ๋ ์ฌ์ฉ์ค์ง ์ํ์ด๋ฉด Access Denied ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ ํ์ด์ง์์ Secret Key Show๋ฅผ ๋๋ฌ Secret Key๋ฅผ ํ๋ณดํฉ๋๋ค. ํด๋น ์ ๋ณด๊ฐ ํ๋ฆด ๊ฒฝ์ฐ signature ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง์ ๋ฒํท์ ๋ง๋ค์ด์ค๋๋ค.
๋งํฌ : Cloud_API_๊ฐ์ ์ฌ์ฉ์ ๊ฐ์ด๋์๋ URL ๋ฐ ๋ณธ C# ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉํ๋ API์ ์์ธํ ์ค๋ช ์ด ์์ต๋๋ค.
์ ์ค๋ช ๊ณผ ๊ฐ์
์ ์ค๋ช ๊ณผ ๊ฐ์
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑ ํ, DB server name ์ด m-1010059-001์ด๋ผ๋ฉด 1010059๋ง ์ ๋ ฅํฉ๋๋ค. ํด๋น ์ ๋ณด๊ฐ ํ๋ฆด ๊ฒฝ์ฐ Server does not exists ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ ์ ๋ณด๋ฅผ ์ ๋ ฅ ํ ๊ฐ Connection Test ๋ฒํผ์ ๋์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ธํ ๋์๋์ง ํ์ธํฉ๋๋ค.
Save๋ฅผ ๋๋ฌ ์ ์ฅํฉ๋๋ค. ์ ์ฅ ๋ฒํผ์ setObjectStorageInfo API๋ฅผ ํธ์ถํด DMS API ๊ฐ ์ฌ์ฉํ ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง ์ ๋ณด๋ฅผ ์ ์ฅํฉ๋๋ค. ์ ์ฅํ์ง ์์ผ๋ฉด DMS API ๊ฐ ๋์ํ์ง ์์ต๋๋ค.
๋ก์ปฌ์ ์๋ ๋ฐฑ์ ํ์ผ์ ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง๋ก ์ ๋ก๋ํฉ๋๋ค. ๋ชจ๋ ํ์ผ์ bucket์ root์ ์ฌ๋ ค์ง๋ฉฐ, ์ฌ๋ฌ ํ์ผ์ ๋์์ ์ ํํด ์ ๋ก๋ ๊ฐ๋ฅํฉ๋๋ค. ์ฌ๋ฆฌ๋ ๋์ค ํ๋ก๊ทธ๋จ์ ํ๋จ ์ํ ๋ฐ์์ปดํจํฐ ๋ฆฌ์์ค ์ฌ์ฉ๋ฅ ์ ๋ณผ ์ ์์ต๋๋ค.
ํค์๋๋ฅผ ์ ๋ ฅํ๋ฉด ์ ๊ท ํํ์์ ์ด์ฉํด ํํฐ ํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
Search ๋ฒํผ์ ๋๋ฌ ๋ก์ปฌ ํด๋๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค.
๋ฆฌ์คํธ ๋ฐ์ค ํ์ผ์ ์ ํํ๊ณ ํ๋จ์ Upload, Delete, Reload ๋ฒํผ์ ๋๋ฌ ๋์์ ์คํํ ์ ์์ต๋๋ค.
๋ฆฌ์คํธ ๋ฐ์ค ํ์ผ์ ์ ํํ๊ณ ํ๋จ์ Delete, Reload ๋ฒํผ์ ๋๋ฌ ๋์์ ์คํํ ์ ์์ต๋๋ค. ์ ๋ก๋ ์ค์ธ ํ์ผ์ ๋ค์ Reload ํด์ผ ํ์ธํ ์ ์์ต๋๋ค.
์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง์ ์ ๋ก๋๊ฐ ์๋ฃ๋ ํ์ผ์ ๋ฐฑ์ ๋ฆฌ์คํ ์ด ์ ์ฉ ๋ด๋ถ ์คํ ๋ฆฌ์ง ๊ณต๊ฐ์ผ๋ก ์ฎ๊น๋๋ค. Internal Storage์ ์ฌ๋ ค์ง ํ์ผ๋ง ๋ณต๊ตฌํ ์ ์์ต๋๋ค.
๋ฐฑ์ ๋ฆฌ์คํ ์ด ์ ์ฉ ์คํ ๋ฆฌ์ง์ ์ฌ๋ผ์จ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐฑ์ ํ์ผ์ ์ด์ฉํด ๋ณต์ํฉ๋๋ค. ์๋ ํ๋จ์ with Recovery ์ฒดํฌ๋ฐ์ค๋ ์ถ๊ฐ ๋ก๊ทธ ๋ฐฑ์ ์ด ์์ ๊ฒฝ์ฐ ์ฒดํฌํ์ง ์์ต๋๋ค. ๋ ์ด์ ์ถ๊ฐ๋ก ๋ณต์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐฑ์ ํ์ผ์ด ์๋ค๋ฉด, with Recovery ์ฒดํฌ๋ฐ์ค์ ์ฒดํฌ ํ Restore Database ๋ Restore Log๋ฅผ ๋๋ฌ ๋ณต์ํฉ๋๋ค.
๋ณต์ ์ค RequestNo๋ ํ๋ก๊ทธ๋จ ๋ด๋ถ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋์ด ์๊ณ , ํด๋น ๋ฒํธ๋ฅผ ์ด์ฉํด ๋ณต๊ตฌ ์ํ๋ฅผ ๊ทธ๋ฆฌ๋์ ์ค๋ฅธ์ชฝ์ ํ์ํด ์ค๋๋ค. Reload๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ๋๋ฌ ๋ณต์ ์ํ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค. ํ ๋ฒ์ ํ๋์ ํ์ผ๋ง ๋ณต์ํ ์ ์์ต๋๋ค.
ํค์๋๋ฅผ ์ ๋ ฅํ๋ฉด ์ ๊ท ํํ์์ ์ด์ฉํด ํํฐ ํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
๋ก๊ทธ ๋ฐฑ์ ์ ์ด์ฉํด ํด๋น ์ง์ ํ ์๊ฐ๊น์ง๋ง ๋ฆฌ์ปค๋ฒ๋ฆฌ ํ๊ธธ ์ํ ๊ฒฝ์ฐ, ๋ฏธ๋ฆฌ ์ ๋ ฅ๋ ํฌ๋งท์ ๋ง๊ฒ ๋ , ์, ์ผ, ์๊ฐ์ ์ ๋ ฅํฉ๋๋ค. ์ ์ฒด ๋ฐฑ์ ๋ง์ ์ด์ฉํด ๋ณต์ํ๊ฑฐ๋, ๋ก๊ทธ ๋ฐฑ์ ์ ๋ง์ง๋ง๊น์ง ๋ณต์ํ๊ธธ ์ํ๋ ๊ฒฝ์ฐ ์ ๋ ฅ ํ๋๋ฅผ ์์ ํ์ง ์์ผ๋ฉด ๋ฉ๋๋ค.
๋ฐฑ์ ํ์ผ์ ์ด์ฉํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณต๊ตฌํ ๋ ์ง์ ํ ์ด๋ฆ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์์ฑ๋ฉ๋๋ค.
Object Storage bucket ํ์ ํด๋๋ฅผ ์์ฑํด ํ์ผ์ S3 ๋ธ๋ผ์ฐ์ ๋ก ์ฌ๋ฆฐ ๊ฒฝ์ฐ๋, ๋ค์ด๋ฒ ํด๋ผ์ฐ๋ ํ๋ซํผ CDB MSSQL ๋ฐฑ์ ์ ๋ด๋ ค๋ฐ์ ๊ฒฝ์ฐ ํด๋น ํด๋ ์ด๋ฆ์ ์ ์ต๋๋ค. Internal Storage๋ Object Storage์ ํด๋ ๊ตฌ์กฐ๋ฅผ ๊ทธ๋๋ก ๋ณต์ฌํ๋ฉฐ ์์ ํ ์ ์์ต๋๋ค.
view log๋ ์๋ฒ์์ ์์ธ ์๋ต์ ํ์ธํ ์ ์์ต๋๋ค. desc ์ ๋ ฌ๋ก ๋ณด์ด๋ฉฐ, Log Tail Count ๊ฐ์ ๋์ฌ ๋ ๋ง์ ๋ก๊ทธ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
๋ณต๊ตฌ ์ ์ฉ ๋ด๋ถ ์คํ ๋ฆฌ์ง ์์ ์ค๋ธ์ ํธ์คํ ๋ฆฌ์ง ๋ค์ด๋ก๋ (Download Internal -> Object)
๋ด๋ถ ์คํ ๋ฆฌ์ง๋ ์ ๋ก๋์ฉ๊ณผ ๋ค์ด๋ก๋ ์ฉ์ด ๋ค๋ฅธ ๊ณณ์ ๋ฐ๋ผ๋ณด๊ณ ์์ผ๋ฉฐ, ์ค์ ์์ ์ ํ ์ธ์คํด์ค์ ๋ชจ๋ ๋ฐฑ์ ์ ์ ํํด ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค.
ํค์๋๋ฅผ ์ ๋ ฅํ๋ฉด ์ ๊ท ํํ์์ ์ด์ฉํด ํํฐ ํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค๋๋ค. ์ ์ฒด ๋ฐฑ์ ์ full์ด๋ผ๋ ํค์๋๋ก ํํฐ ๊ฐ๋ฅํ๋ฉฐ, ํธ๋์ญ์ ๋ก๊ทธ ๋ฐฑ์ ์ log๋ผ๋ ํค์๋๋ก ํํฐ ๊ฐ๋ฅํฉ๋๋ค.
์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง ํ์ผ์ S3 ๋ธ๋ผ์ฐ์ ๋ ๋ณธ ํ๋ก๊ทธ๋จ์ผ๋ก Local ์ปดํจํฐ๋ก ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค. ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง์ ํด๋ ๊ตฌ์กฐ์ ๋์ผํ๊ฒ ๋ก์ปฌ์ ๋ค์ด๋ก๋ํฉ๋๋ค.
- AutoVersionUpdater
- AWSSDK.S3, AWSSDK.Core
- Clarius.TransformOnBuild-unofficial
- Newtonsoft.Json
- NLog
- NLog.Config
- NLog.Schema
๊ฐ์ฌํฉ๋๋ค.