๐ก AWS DMS ๋ฅผ ์ฌ์ฉํด Aurora PostgreSQL ์์ AWS S3๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฌํด๋ณธ๋ค.
์ด๊ธฐ์ ์ฌ๋ฅผ ์งํํ๊ณ , ์ฆ๋ถ(Transaction) ๋ฐ์ดํฐ์ ๋ํด์๋
๋ ์ง๋จ์๋ก ํํฐ์ ๋์ ์ ์ฉํ์ฌ ์ ์ฌ๋ฅผ ์ํํ๋ค.
AWS DMS(Data Migration Service) ๋ฅผ ์ด์ฉํด ๋ฐ์ดํฐ๋ฅผ ๋ง์ด๊ทธ๋ ์ด์ ํ ๋, ์ฌ์ฉํ๋ ๋ฉ๋ด๋ ํฌ๊ฒ ์๋์ ๊ฐ๋ค
- ๋ณต์ ์ธ์คํด์ค : ๋ณต์ ๋ฅผ ํ๊ธฐ ์ํ VM
- ์๋ํฌ์ธํธ : ์์ค์ ํ๊ฒ์ ์ค์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ง์ด๊ทธ๋ ์ด์ ํ ์คํฌ : ์ค์ ๋ณต์ ๊ฐ ์ํ ๋๋ ํ ์คํฌ
์์๋ก ์์ ์ ๊ตฌ์ฑํ๋ค.
1. ๋ณต์ ์ธ์คํด์ค ์์ฑ
VPC์ subnetgroup์ ์ ์ ํํ์ฌ ์์ฑํ๋ค.
์์ฑ ์ ‘ํผ๋ธ๋ฆญ ์ก์ธ์ค ๊ฐ๋ฅ’ ๊ฐ ์ ํ๋์ด์ผ S3 ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
ํผ๋ธ๋ฆญ ์์ธ์ค ๊ธฐ๋ฅ์ ๋๊ณ S3์ ์ ๊ทผํ๋ ค๋ฉด, VPC์ endpoint๋ฅผ ์์ฑํ์ฌ ์ ๊ทผํด์ผ ํ๋ค.
ํ์ง๋ง VPC endpoint๋ ๊ณผ๊ธ์ด ๋ฐ์ํ์ฌ ํ ์คํธ ๋จ๊ณ์์๋ ์ ์ธํ๊ณ ๊ตฌ์ฑํ๋ค.
- ์์ฑ๋ ํ๋ฉด
2. ์๋ํฌ์ธํธ ์์ฑ
- ์์ค / ๋์ ์๋ํฌ์ธํธ๋ฅผ ๊ตฌ๋ถํ์ฌ ์์ฑํ๋ค.
2.1 ์์ค
๋ฐฉํ๋ฒฝ๊ณผ VPC๋ง ์ ์ฐ๊ฒฐ๋์ด ์์ผ๋ฉด, ์ฝ๊ฒ ์์ค์ ์ฐ๊ฒฐ ๊ฐ๋ฅ ํ๋ค.
[์ฐ๊ฒฐ] ํญ์์ [์ฐ๊ฒฐ ํ ์คํธ] ๋ฅผ ์งํํด์ผ ํ๋ค.
2.2 ๋์
๋์ ์์ง์ S3๋ก ์ง์ ํ ํ bucket ๊ณผ ํด๋ ์ ๋ณด๋ฅผ ์ ๋ ฅํ๋ค.
- ์๋ํฌ์ธํธ ์ค์
- DataFormat : ์ ์ฅํ ํ์ผ ํฌ๋งท์ ์ค์
- DatePartitionEnabled : ๋ ์ง ๊ธฐ์ค ํํฐ์ ์ฌ๋ถ ์ค์
- DatePartitionSequence : ๋ ์ง ๊ธฐ์ค ํํฐ์ ๊ธฐ์ค ์ค์
๋์ ์๋ํฌ์ธํธ ๋ํ ์ฐ๊ฒฐ ํ ์คํธ๋ฅผ ์งํํ๋ค.
3. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ง์ด๊ทธ๋ ์ด์ ํ์คํฌ
์ํ๋ job(task)๋ผ๊ณ ๋ณด๋ฉด ๋๋ค.
์์ฑํ ๋,
์์ค์ ๋์ ์๋ํฌ์ธํธ๋ฅผ ์ ํํ๊ณ ,
๋ง์ด๊ทธ๋ ์ด์ ์ ํ์ ์ ํํ๋ค.
๊ธฐ์กด ๋ฐ์ดํฐ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ด๊ธฐ์ ์ฌ์ด๊ณ ,
๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ฌํญ๋ง ๋ณต์ ๋ CDC ์ด๋ค.
- ํ ์ด๋ธ ๋งคํ
ํ์๋ก ์งํํด์ผ ํ๋ ๊ณผ์ ์ด๋ค.
์์ค์ ํ๊ฒ์ ์ด๋ป๊ฒ ์ ์ฅ ํ ์ง๋ฅผ ์ง์ ํ๋ค.
Sample
๊ธฐ๋ณธ์ ์ผ๋ก ‘selection’ ์์ญ์์ ์คํค๋ง์ ํ ์ด๋ธ ์ ๋ณด๋ฅผ ์ ๋ ฅํ๊ณ .
์๋์ ‘transformation’ ์์ญ์์ ‘add-column’ ์ ํตํด cdc ํด ์ฌ ๋, ์ถ๊ฐ๋ก ๊ฐ์ ธ์ฌ ์ ๋ณด๋ค์ ํจ๊ป ๊ฐ์ ธ์์ค๋ค.
Using transformation rule expressions to define column content - AWS Database Migration Service
{
"rules": [
{
"rule-type": "selection",
"rule-id": "042601413",
"rule-name": "042601413",
"object-locator": {
"schema-name": "public",
"table-name": "%"
},
"rule-action": "include",
"filters": []
},
{
"rule-type": "transformation",
"rule-id": "2",
"rule-name": "2",
"rule-target": "column",
"object-locator": {
"schema-name": "%",
"table-name": "%"
},
"rule-action": "add-column",
"value": "transact_id",
"expression": "$AR_H_STREAM_POSITION",
"data-type": {
"type": "string",
"length": 50
}
},
{
"rule-type": "transformation",
"rule-id": "3",
"rule-name": "3",
"rule-target": "column",
"object-locator": {
"schema-name": "%",
"table-name": "%"
},
"rule-action": "add-column",
"value": "transact_seq",
"expression": "$AR_H_CHANGE_SEQ",
"data-type": {
"type": "string",
"length": 50
}
}
]
}
- S3์ ์ด๊ธฐ์ ์ฌ๋ ๋ด์ฉ
- S3์ ๋ ์ง ๊ธฐ์ค์ผ๋ก ํํฐ์ ๋ ๋์ด CDC๋ ๋ด์ญ