๊ฐ๋จํ ํ๋ก ์ค์ ํ๊ธฐ
ํ์ต ๋ชฉํ
์ด ์ ๋์ ์๋ฃํ๋ฉด ๋ค์์ ์ํํ ์ ์์ต๋๋ค.
- ๊ฐ๋จํ ํ๋ก๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค.
- ํ๋ก์ ๋ํ ์์ฝ ๋ฐ ํํฐ๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
- Salesforce ์ค์ ์์ AppFlow๊ฐ ์ฐ๊ฒฐ๋์๋์ง ํ์ธํ ์ ์์ต๋๋ค.
์ง๊ธ๋ถํฐ AWS์ Salesforce ๊ฐ์ ๊ฐ๋จํ ํ๋ก๋ฅผ ์ค์ ํ๋ ๊ณผ์ ์ ์์ธํ ์๋ดํด๋๋ฆฌ๊ฒ ์ต๋๋ค. ์ ๋ฃ ์๋น์ค์ด๋ฉฐ ๋ฐ์ดํฐ๊ฐ ๋ค๋ฅผ ์ ์์ผ๋ฏ๋ก, Trailhead Playground ๋๋ ๊ฐ๋ฐ์ ์กฐ์ง์ ์ฌ์ฉํ์ฌ ํ๋ก๋ฅผ ์ค์ ํ์ง๋ ์๊ฒ ์ต๋๋ค. ์คํ๋ ค ์ด๋ฌํ ๋จ๊ณ๋ ํตํฉ์ ์ํ ์ง์นจ์ผ๋ก ์ ๊ณต๋ฉ๋๋ค. ๋ํ ์ด๋ฅผ ํตํด ํ๋ก์ธ์ค์ ์ต์ํด์ง ์ ์์ผ๋ฏ๋ก, ๋์ค์ ์๋ํ๋ฅผ ์ค์ ํ๊ณ ๋ค๋ฅธ ๋ฐฉํฅ์ ๋ฐ์ดํฐ ํ๋ก๋ฅผ ๊ตฌํํ ์๋ ์์ต๋๋ค.
๋จผ์ ๊ฐ๋จํ ํ๋ก์ ๋ํ ์ฌ์ฉ ์ฌ๋ก, ์ฆ ์ค์ ๋ ์์ฝ์ ๋ฐ๋ผ Salesforce์์ AWS๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ํ๋ก๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์์ ์์น๋ AWS Management Console์ ๋๋ค.
AppFlow๋ก ์ด๋ํ์ฌ ํ๋ก ์ด๋ฆ ์ง์ ํ๊ธฐ
AWS Management Console์ ์ฌ์ฉํ์ฌ AppFlow ํตํฉ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
-
AWS์ ๋ก๊ทธ์ธํ๊ณ AWS Management Console์ ์
๋ ฅํฉ๋๋ค.
- Find Services(์๋น์ค ์ฐพ๊ธฐ) ํ๋์
AppFlow๋ฅผ ์ ๋ ฅํ๊ณ Amazon AppFlow๋ฅผ ํด๋ฆญํฉ๋๋ค
-
Create flow(ํ๋ก ๋ง๋ค๊ธฐ)๋ฅผ ํด๋ฆญํฉ๋๋ค.
- Flow details(ํ๋ก ์ธ๋ถ ์ฌํญ) ์น์
์์ ํ๋ก ์ด๋ฆ์ ์ง์ ํ๊ณ ์ค๋ช
์ ์
๋ ฅํฉ๋๋ค.
์ด ์์์ ํ๋ก ์ด๋ฆ์ โSalesforceToAmazonS3Demoโ (1)์ด๊ณ ์ค๋ช ์ โCopy opportunity records from Salesforce into an Amazon S3 bucket.โ(๊ธฐํ ๋ ์ฝ๋๋ฅผ Salesforce์์ Amazon S3 ๋ฒํท์ผ๋ก ๋ณต์ฌํฉ๋๋ค.)์ ๋๋ค. (2)์ ๋๋ค. ๋๋ฃ๋ค์ด ๋ฌด์จ ํ๋ก์ธ์ง ์ ํํ ์ ์ ์๋๋ก ๋ช ํํ๊ณ ๊ฐ๊ฒฐํ๊ฒ ์์ฑํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
- ๊ทธ๋ฐ ๋ค์ Next(๋ค์)๋ฅผ ํด๋ฆญํฉ๋๋ค.
Salesforce ์ฐ๊ฒฐํ๊ธฐ
- Source name(์์ค ์ด๋ฆ) ๋๋กญ๋ค์ด ๋ฉ๋ด์์ Salesforce๋ฅผ ์ ํํฉ๋๋ค.
- ๋๋กญ๋ค์ด์์ Salesforce ์ฐ๊ฒฐ์ ์ ํํฉ๋๋ค. ์ฐ๊ฒฐ์ด ์๋ ๊ฒฝ์ฐ Create new connection(์ ์ฐ๊ฒฐ ๋ง๋ค๊ธฐ), ๋๋ Salesforce Private Connect๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ Create new connection with AWS PrivateLink(AWS PrivateLink๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฐ๊ฒฐ ๋ง๋ค๊ธฐ)๋ฅผ ์ ํํฉ๋๋ค.
-
Connect(์ฐ๊ฒฐ)๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ํ์
์ฐฝ์์ ํ๋ก๋์
๋๋ ์๋๋ฐ์ค ์กฐ์ง์ ์ ํํฉ๋๋ค.
- Connection name(์ฐ๊ฒฐ ์ด๋ฆ) ํ๋์ ์ด๋ฆ์ ์
๋ ฅํฉ๋๋ค. ์ด ์์์๋ Production(ํ๋ก๋์
)์ ์ ํํ์ผ๋ฉฐ, Connection name(์ฐ๊ฒฐ ์ด๋ฆ)์ "MySalesforceProdConnection"์
๋๋ค.

-
Continue(๊ณ์)๋ฅผ ํด๋ฆญํฉ๋๋ค.
- Salesforce ์ธ์ฆ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค. Salesforce์ ์ค์ ์ ๋ฐ๋ผ ๋ค์ ๋จ๊ณ๊ฐ ํ์ํฉ๋๋ค.
- ์ก์ธ์ค๋ง ํ์ฉํ๋ฉด ๋ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์ฌ๋ฐ๋ฅธ Salesforce ์ฌ์ฉ์ ์ด๋ฆ์ ํตํด ์ฐ๊ฒฐํ๋์ง ํ์ธํ๊ณ Allow(ํ์ฉ)๋ฅผ ํด๋ฆญํฉ๋๋ค.
- Salesforce ์๊ฒฉ ์ฆ๋ช
์ ์
๋ ฅํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋๋ฉด ์ ์ ํ ์๊ฒฉ ์ฆ๋ช
์ ์
๋ ฅํ์ฌ ๋ก๊ทธ์ธํ ํ Allow(ํ์ฉ)๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ๊ทธ๋ฐ ๋ค์, ํน์ Salesforce ๊ฐ์ฒด๋ฅผ ๊ฐ์ ธ์ฌ์ง, ๋๋ Amazon S3์ ๋ํ Salesforce ์ด๋ฒคํธ(๋ณ๊ฒฝ ๋ฐ์ดํฐ ์บก์ฒ ๋ฐ ํ๋ซํผ ์ด๋ฒคํธ)๋ฅผ ๊ตฌ๋
ํ ์ง ์ ํํด์ผ ํ ์ ์์ต๋๋ค. ์ฌ์ฉ์ ์ ์ ๊ฐ์ฒด๋ฅผ ํฌํจํ์ฌ ๋ชจ๋ ๊ฐ์ฒด์์ ์ ํํ ์ ์์ต๋๋ค.
- ๋์์์ Amazon S3๋ฅผ ์ ํํฉ๋๋ค.
- ๋๋กญ๋ค์ด์์ ์ด ํ๋ก๋ฅผ ์์ฑํ๋ ๊ณณ๊ณผ ๋์ผํ AWS ์ง์ญ์ S3 ๋ฒํท์ ์ ํํฉ๋๋ค. S3 ๋ฒํท์ด ์๋ ๊ฒฝ์ฐ ์ฌ๊ธฐ์ ์๋ ๋จ๊ณ์ ๋ฐ๋ผ ์์ฑํฉ๋๋ค.

- Additional Settings(์ถ๊ฐ ์ค์ )์์ ๊ณ ๊ธ ์ค์ ์ ์ ํํ์ฌ JSON, CSV ๋๋ Parquet๋ฅผ ๋น๋กฏํ ๋ค์ํ ๋ฐ์ดํฐ ํ์, ํ์ผ ๋ช
๋ช
, ์ง๊ณ ํ๊ฒฝ์ค์ ์ ๊ตฌ์ฑํ ์๋ ์์ต๋๋ค.
ํ๋ก ๊ตฌ์ฑํ๊ธฐ
๋ค์์ผ๋ก๋, ํ๋ก๋ฅผ ์คํํ ์๊ธฐ๋ฅผ ์ ํํด์ผ ํฉ๋๋ค. ์จ๋๋งจ๋ ์ต์ ์ ์ฌ์ฉํ๋ฉด ๊ตฌ์ฑ์ ์ ์ฅํ๋ ์ฆ์ ํ๋ก๋ฅผ ์คํํ ์ ์์ต๋๋ค. ๋ค๋ฅธ ์ต์ ์ผ๋ก๋ ํ๋ก ์์ฝ์ด ์์ต๋๋ค. ์ด ์์์๋ Run flow on schedule(์์ฝ์ ๋ฐ๋ผ ํ๋ก ์คํ)(1)์ด ์ ํ๋์์ต๋๋ค. ์ด ํ๋ก๋ 1๋ถ๋ง๋ค ๋ฐ๋ณต๋๋๋ก ์ค์ ๋์ด ์๊ณ (2), ์ ๋ฐ์ดํฐ๋ง ์ ์กํ๋๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค(3).
Create Date(๋ ์ง ์์ฑ) ๋๋ Last Modified Date(๋ง์ง๋ง ์์ ๋ ์ง)์ ๊ฐ์ ๋ค์ํ Salesforce ๋ ์ง ํ๋์์ ์ ํํ ์ ์์ต๋๋ค.

์ํ๋ ๋ฐฉ์์ผ๋ก ํ๋ก๋ฅผ ๊ตฌ์ฑํ๋ค๋ฉด Next(๋ค์)๋ฅผ ํด๋ฆญํฉ๋๋ค.
ํ๋ ๋งคํํ๊ธฐ
์ด์ Salesforce์ Amazon S3 ๊ฐ์ ํ๋๋ฅผ ๋งคํํ ์ฐจ๋ก์ ๋๋ค. AppFlow๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋๋ฅผ ์๋์ผ๋ก ๋งคํํ๊ฑฐ๋(1), ๋งคํ๋ ํ๋๊ฐ ํฌํจ๋ CSV ํ์ผ์ ์ ๋ก๋ํ ์ ์์ต๋๋ค.ย
Map data fields(๋ฐ์ดํฐ ํ๋ ๋งคํ) ์น์ ์์ ์ ์กํ Salesforce ๊ฐ์ฒด์ ํ๋๋ฅผ ์ ํํ์ธ์. ํ ๋ฒ์ ํด๋ฆญ์ผ๋ก ๋ชจ๋ ํ๋๋ฅผ ๋งคํํ๋๋ก ์ ํํ ์๋ ์์ต๋๋ค. ์ด ์(2)์์๋ ๋ค์ ํ๋๊ฐ ์ ํ๋์์ต๋๋ค.
- Account ID(๊ณ์ ID)
- Deleted(์ญ์ ๋จ)
- Master Record ID(๋ง์คํฐ ๋ ์ฝ๋ ID)
- Account Type(๊ณ์ ์ ํ)
- Parent Account ID(๋ถ๋ชจ ๊ณ์ ID)
- Billing Street(์ฒญ๊ตฌ ๊ฑฐ๋ฆฌ)

์ด ๋จ๊ณ์์ ํ๋์ ์์์ ์ถ๊ฐํ ์๋ ์์ต๋๋ค. ์ฆ ๋ฌธ์๋ฅผ ๋ง์คํนํ๊ฑฐ๋ ํ๋๋ฅผ ์๋ฅผ ์ ์์ต๋๋ค. ๋ํ ๋ ํ๋๋ฅผ ๊ฒฐํฉํ์ฌ ์ ๋์ ํ๋๋ฅผ ๋ง๋ค ์๋ ์์ต๋๋ค.
๊ณ์ํ ์ค๋น๊ฐ ๋๋ฉด Next(๋ค์)๋ฅผ ํด๋ฆญํฉ๋๋ค.
๊ฒ์ฆ
Validations(๊ฒ์ฆ) ์น์ ์์๋ ํ๋๋น ํน์ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ถ๊ฐํ์ฌ ํน์ ์์ ์ ์ํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด Account Type(๊ณ์ ์ ํ) ํ๋๋ฅผ ์ ํํ๊ณ , ๊ณ์ ์ ํ์ด ์๊ฑฐ๋ null์ผ ๊ฒฝ์ฐ ํด๋น ๋ ์ฝ๋๋ฅผ ๋ฌด์ํ๋ ๊ฒ๊ณผ ๊ฐ์ ์กฐ๊ฑด์ ์ ์ฉํ ์ ์์ต๋๋ค. ๊ฒ์ฆ ๊ตฌ์ฑ์ ์ ํ ์ฌํญ์ ๋๋ค.
๋ฐ์ดํฐ ํํฐ๋งํ๊ธฐ
๋ฐ์ดํฐ ํํฐ๋ง ์ต์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์์ฑ๋ ๋ ์ง ํ๋์์ ํน์ ๋ ์ง ์ด์ ๋๋ ์ดํ์ ์์ฑ๋ ๋ ์ฝ๋๋ฅผ ํํฐ๋งํ ์ ์์ต๋๋ค.

๊ณ์ํ ์ค๋น๊ฐ ๋๋ฉด Next(๋ค์)๋ฅผ ํด๋ฆญํฉ๋๋ค.
ํ๋ก ๊ฒํ ํ๊ธฐ
๋ง์ง๋ง ๋จ๊ณ๋ ํ๋ก๋ฅผ ๊ฒํ ํ๊ณ ์์ฑํ๋ ๊ฒ์ ๋๋ค. ํ๋ก ๊ตฌ์ฑ์ ๊ฒํ ํ๊ณ Create flow(ํ๋ก ๋ง๋ค๊ธฐ)๋ฅผ ํด๋ฆญํ์ธ์. ๊ทธ๋ฌ๋ฉด ๋์ ๋๋ค. ์ด์ ํ๋ก๋ฅผ ์คํ ์ค๋น๋ฅผ ๋ง์ณค์ต๋๋ค.
์ ์๋ ์์ฝ์ ๋ฐ๋ผ ์คํ๋๋๋ก ํ๋ก๋ฅผ ์ค์ ํ ๊ฒฝ์ฐ Activate Flow(ํ๋ก ํ์ฑํ)๋ฅผ ํด๋ฆญํ๊ณ , ์จ๋๋งจ๋ ๋ฐฉ์์ผ๋ก ์คํ๋๋๋ก ํ๋ก๋ฅผ ์ค์ ํ ๊ฒฝ์ฐ Run Flow(ํ๋ก ์คํ)๋ฅผ ํด๋ฆญํ์ธ์.
ํ๋ก ์ฐ๊ฒฐ ํ์ธํ๊ธฐ
๋ค์ Salesforce๋ก ๋์์์ AppFlow๊ฐ ์ฐ๊ฒฐ๋์๋์ง ๋ค์ ํ์ธํด์ผ ํฉ๋๋ค.
- Salesforce์ ๋ก๊ทธ์ธํฉ๋๋ค.
-
์ ํด๋ฆญํ๊ณ Setup(์ค์ )์ ์ ํํฉ๋๋ค.
- Quick Find(๋น ๋ฅธ ์ฐพ๊ธฐ) ์์์
connected app์ ์ ๋ ฅํ๊ณ Manage Connected Apps(์ฐ๊ฒฐ๋ ์ฑ ๊ด๋ฆฌ)๋ฅผ ์ ํํฉ๋๋ค.
-
Amazon AppFlow ๋ด์ฅ ๋ก๊ทธ์ธ ์ฑ์ด ์ฐ๊ฒฐ๋ ์ฑ ๋ชฉ๋ก์ ์๋์ง ํ์ธํฉ๋๋ค. ์ธ์ฆ ๋จ๊ณ๋ฅผ ์๋ฃํ๋ฉด ์ด ์ฐ๊ฒฐ๋ ์ฑ์ด Salesforce์์ ์๋์ผ๋ก ํ์ฑํ๋ฉ๋๋ค.
ํ ๋ฒ ๋ ํ์ธํฉ๋๋ค.
- ์์ง ์๋ฃ๋์ง ์์ ๊ฒฝ์ฐ Quick Find(๋น ๋ฅธ ์ฐพ๊ธฐ) ์์์
connected app์ ์ ๋ ฅํ๊ณConnected Apps OAuth Usage(์ฐ๊ฒฐ๋ ์ฑ OAuth ์ฌ์ฉ)๋ฅผ ์ ํํฉ๋๋ค.
- AppFlow ๋ด์ฅ ๋ก๊ทธ์ธ ์ฑ์ด ๋์ด๋์ด ์๊ณ , Manage App Policies(์ฑ ์ ์ฑ
๊ด๋ฆฌ) ์๋์ Refresh token is valid until revoked(์ทจ์๋ ๋๊น์ง ์๋ก ๊ณ ์นจ ํ ํฐ์ด ์ ํจํจ)๊ฐ ์์ด์ผ ํฉ๋๋ค. ํ์ํ ๊ฒฝ์ฐ ์ด๋ฅผ ๋ฐ์ํ๋๋ก ์ ์ฑ
์ ํธ์งํ ์ ์์ต๋๋ค.