๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

AWS

AWS Amplify๋ž€

 

Amplify๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ ์ด์œ  !

2023 AWS ์œˆํ„ฐ์บ ํ”„์—์„œ ์ง„ํ–‰ํ–ˆ๋˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ณ ๋„ํ™”ํ•˜๊ธฐ๋กœ ํ–ˆ๋Š”๋ฐ, ์ด์ „์—๋Š” AWS Cloud9์„ ์‚ฌ์šฉํ•ด Streamlit์œผ๋กœ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ–ˆ๋‹ค๋ฉด, ์ด๋ฒˆ์— ๊ณ ๋„ํ™”๋ฅผ ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜๋ฉฐ ์„œ๋น„์Šค ์ œ๊ณต ํ˜•ํƒœ๋ฅผ ์•ฑ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

 

Amplify๊ฐ€ ๋‹ค์–‘ํ•œ ํ”„๋ŸฐํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ง€์›ํ•˜๊ณ , Cognito๋‚˜ DynamoDB ๋“ฑ์˜ AWS์˜ ๋‹ค๋ฅธ ์„œ๋น„์Šค๋“ค๊ณผ ์‰ฝ๊ฒŒ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์–ด ๋ฐฑ์—”๋“œ ์ธก์˜ ๋ถ€๋‹ด๋„ ์ค„์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฐฐํฌ๋„ ์ง€์›ํ•œ๋‹ค๊ณ  ์•Œ๊ณ  ์žˆ์–ด์„œ ์ด๋ฒˆ ๊ธฐํšŒ์— ์‚ฌ์šฉํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.


Amplify๋ž€

์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋น ๋ฅด๊ฒŒ ๊ตฌ์ถ•ํ•˜๊ณ  ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•œ ํ†ตํ•ฉ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ด๋‹ค.

 

์ฃผ์š” ๊ธฐ๋Šฅ

  • ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค: ๋ฐฑ์—”๋“œ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ AWS ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์‚ฌ์šฉ์ž ์ธ์ฆ, ํŒŒ์ผ ์Šคํ† ๋ฆฌ์ง€ ๋“ฑ์˜ ์„œ๋น„์Šค๋ฅผ ๋น ๋ฅด๊ฒŒ ์„ค์ •ํ•˜๊ณ  ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ”„๋ŸฐํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ: React, Angular, Vue ๋“ฑ์˜ ์ฃผ์š” ํ”„๋ŸฐํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋ฉฐ, ์ด๋Ÿฌํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • CLI(Command Line Interface): Amplify CLI๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋กœ์ปฌ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํด๋ผ์šฐ๋“œ์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  • CI/CD (Continuous Integration/Continuous Deployment): CI/CD ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ž๋™ํ™”ํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ๋ฅผ ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ ๋ฐ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•œ๋‹ค.

ํ•œ ๋งˆ๋””๋กœ ํ’€์Šคํƒ์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋„๋ก ๋•๋Š” ์„œ๋น„์Šค์˜ ์ง‘ํ•ฉ์ด๋ผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. Firebase์™€ ๋น„์Šทํ•˜์ง€๋งŒ ๋‚ด๊ฐ€ ๋ณด๊ธฐ์—” ์ข€ ๋” ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•œ๋‹ค๊ณ  ๋А๊ผˆ๋‹ค.

 

์„œ๋น„์Šค

  • Amplify CLI: ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ CLI ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๊ฐ„๋‹จํžˆ ํด๋ผ์šฐ๋“œ๋กœ ๋ฐฑ์—”๋“œ ํ™˜๊ฒฝ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
# ์ž์ฃผ  ์‚ฌ์šฉํ•˜๋Š” CLI ๋ช…๋ น์–ด

amplify configure

# ์•ฑ(ํ”„๋กœ์ ํŠธ) ์ดˆ๊ธฐํ™”
amplify init

# ๋ฐฑ์—”๋“œ ํ™˜๊ฒฝ ์ถ”๊ฐ€
amplify add auth     # Cognito User Pool ์ถ”๊ฐ€
amplify add api      # API ์ถ”๊ฐ€ (REST, GraphQL ์ค‘ ์„ ํƒ)
amplify add storage  # S3 ๋ฒ„ํ‚ท ์ถ”๊ฐ€

# ์•ฑ(ํ”„๋กœ์ ํŠธ)์„ CloudFormation์„ ํ†ตํ•ด ๋ฐฐํฌ
amplify push

 

  • Amplify Libraries: Amplify๋กœ ๋งŒ๋“  ๋ฐฑ์—”๋“œ์— ์‰ฝ๊ฒŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ, ๋‹ค์Œ ๊ธฐ๋Šฅ๋“ค์„ ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ œ๊ณตํ•œ๋‹ค.

 

  • Amplify Hosting: ํ’€ ์Šคํƒ ์„œ๋ฒ„๋ฆฌ์Šค ์›น ์•ฑ์„ ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ, ๋ฐฐํฌ ๋ฐ ํ˜ธ์ŠคํŒ…ํ•˜๊ธฐ ์œ„ํ•œ AWS ์„œ๋น„์Šค

 

  • Amplify Studio: ์›น/๋ชจ๋ฐ”์ผ ์•ฑ์˜ ๋ฐฑ์—”๋“œ ๋ฐ ์ฝ˜ํ…์ธ ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ GUI ๋„๊ตฌ. ํŒ€ ๊ตฌ์„ฑ์›์„ ๋ฉ”์ผ๋กœ ์ดˆ๋Œ€ํ•ด AWS ์ฝ˜์†” ์™ธ๋ถ€์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

Amplify ํ™œ์šฉ

ํ”„๋ŸฐํŠธ์—”๋“œ๋กœ๋Š” React Native ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, AWS์˜ AppSync, Cognito, DynamoDB, S3 ๋“ฑ์˜ ์„œ๋น„์Šค์™€ ์—ฐ๊ฒฐํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ์˜ˆ์ •์ด๋‹ค.

 

๊ฐœ๋ฐœ๊ธฐ๋Š” ๋‹ค์Œ ๊ธ€์— ์ด์–ด์„œ ..