'Coin Site Project'

[TIL/Coin Site Project] 2024/01/23

๐Ÿ”ฅ AWS Cognito Flow(with. KakaoTalk)reference: https://haandol.github.io/2021/01/31/cognito-kakao-login.htmlSign in via Kakao โ˜๏ธRedirect with Aut

2024๋…„ 1์›” 23์ผ3min read

๐Ÿ”ฅ AWS Cognito Flow(with. KakaoTalk)

reference: https://haandol.github.io/2021/01/31/cognito-kakao-login.html

### 1. User -> Web Page โœ๏ธ

Sign in via Kakao โ˜๏ธ```

#### โœ… a) ์นด์นด์˜ค ์ธ์ฆ์„ ์›น ํŽ˜์ด์ง€์— ํ†ตํ•ฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•ด์•ผ ํ•œ๋‹ค.
#### โœ… b) OAuth 2.0 ์ธ์ฆ์„ ํ†ตํ•œ ์นด์นด์˜ค ๋กœ๊ทธ์ธ ํ”Œ๋กœ์šฐ๋ฅผ ์ดํ•ดํ•ด์•ผ ํ•œ๋‹ค.

> ### 2. User -> KakaoTalk โœ๏ธ 

#### โœ… a) ์‚ฌ์šฉ์ž๋ฅผ ์นด์นด์˜คํ†ก์œผ๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•ด์•ผ ํ•œ๋‹ค. #### โœ… b) ์ธ์ฆ ์ฝ”๋“œ๋ฅผ ์–ป๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•ด์•ผ ํ•œ๋‹ค.

### 3. KakaoTalk -> Web Page โœ๏ธ

Callback with Tokens โ˜๏ธ```

#### โœ… a) ์นด์นด์˜คํ†ก์—์„œ์˜ ์ฝœ๋ฐฑ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์„ ์ตํ˜€์•ผ ํ•œ๋‹ค.
#### โœ… b) ์ฝœ๋ฐฑ์œผ๋กœ๋ถ€ํ„ฐ ํ† ํฐ์„ ์ถ”์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•ด์•ผ ํ•œ๋‹ค.

> ### 4. Web Page -> Amazon API Gateway โœ๏ธ

#### โœ… a) Amazon API Gateway์— ๋Œ€ํ•œ ์ธ์ฆ๋œ ์š”์ฒญ์„ ์–ด๋–ป๊ฒŒ ๋ณด๋‚ผ์ง€ ํ•™์Šตํ•ด์•ผ ํ•œ๋‹ค. #### โœ… b) API ์š”์ฒญ์— ํ† ํฐ์„ ํฌํ•จํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•ด์•ผ ํ•œ๋‹ค.

### 5. Amazon API Gateway -> AWS Lambda โœ๏ธ

Invoke with Kakao Token โ˜๏ธ```

#### โœ… a) API Gateway๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์„ค์ •ํ•˜๊ณ  ์นด์นด์˜ค ํ† ํฐ์„ AWS Lambda์— ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•ด์•ผ ํ•œ๋‹ค.
#### โœ… b) API Gateway์—์„œ์˜ ์ธ์ฆ์„ ์œ„ํ•œ ์„ค์ •์„ ์ดํ•ดํ•ด์•ผ ํ•œ๋‹ค.

> ### 6. AWS Lambda -> KakaoTalk API โœ๏ธ

#### โœ… a) AWS Lambda์—์„œ KakaoTalk API๋กœ HTTP ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›Œ์•ผ ํ•œ๋‹ค. #### โœ… b) ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•œ ์นด์นด์˜คํ†ก API๋ฅผ ์ดํ•ดํ•ด์•ผ ํ•œ๋‹ค.

### 7. AWS Lambda -> AWS Cognito UserPool โœ๏ธ

Sign in โ˜๏ธ```

#### โœ… a) AWS SDK ๋˜๋Š” API Gateway๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๋ฅผ Cognito UserPool์— ๋กœ๊ทธ์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›Œ์•ผ ํ•œ๋‹ค.
#### โœ… b) Cognito UserPool๊ณผ์˜ ์ธ์ฆ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ดํ•ดํ•ด์•ผ ํ•œ๋‹ค.

> ### 8. AWS Cognito UserPool -> AWS Lambda โœ๏ธ

#### โœ… a) Cognito UserPool ํŠธ๋ฆฌ๊ฑฐ/ํ›…์— ๋Œ€ํ•œ ํ•™์Šต์„ ์ง„ํ–‰ํ•ด์•ผ ํ•œ๋‹ค. #### โœ… b) ํŠน์ • Cognito ์ด๋ฒคํŠธ์—์„œ Lambda ํ•จ์ˆ˜๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•ด์•ผ ํ•œ๋‹ค.

### 9. AWS Cognito UserPool -> Google โœ๏ธ

More to read

Amazon VPC

Amazon VPC Architecture ์ดํ•ดํ•˜๊ธฐ

์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ๊ธฐํšํ•˜๋ฉฐ, ๊ฐœ๋ฐœ์—์„œ ๋ฌด์—‡์„ ๊ฐ€์žฅ ๋จผ์ € ๊ณ ๋ฏผํ•ด์•ผ ํ•˜๋Š”์ง€ ๋‹ค์‹œ ๋Œ์•„๋ณด๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.ํ•œ๋•Œ๋Š” ํ”„๋ก ํŠธ์—”๋“œ๊ฐ€ ๋ชจ๋“  ์„ค๊ณ„์˜ ์ถœ๋ฐœ์ ์ด๋ผ๊ณ  ๋ฏฟ์—ˆ์Šต๋‹ˆ๋‹ค. ์œ ์ €๊ฐ€ ๋ฌด์—‡์„ ๋ณด๊ณ , ์–ด๋–ค ํ๋ฆ„์—์„œ ๋จธ๋ฌด๋ฅด๊ณ  ์ดํƒˆํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์ดํ•ด ์—†์ด ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ ๋‹ค๋Š” ๊ฑด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๊ธฐ

'์›์‚ฌ์ดํŠธ'

ํ”„๋ก ํŠธ์—”๋“œ ๊ด€์ ์œผ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ดํ•ดํ•˜๊ธฐ

์˜ค๋žœ๋งŒ์— ๋ฐฉ๋ฒ•๋ก ์— ๊ด€ํ•œ ๊ธ€์„ ์“ฐ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ ์ƒํ™ฉ์€ ์ด๋ ‡์Šต๋‹ˆ๋‹ค. SSAFY์—์„œ๋Š” ํ•˜๋ฃจ์— ์—„์ฒญ๋‚œ ์–‘์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋“ค์„ ๊ณผ์ œ๋กœ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ ๊ณผ์ •์—์„œ, '๊ตฌํ˜„๋ ฅ'์ด ๋งค์šฐ ๋–จ์–ด์ง„๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์™„์ „ํžˆ ์–ด๋ ค์šด ๋ฌธ์ œ๋ผ๋ฉด '์•„์‰ฌ์›€'์ด๋ผ๋Š” ๊ฐ์ •์กฐ์ฐจ ๋А๋ผ์ง€

Subnet

VPC ์„ค๊ณ„์˜ ์‹œ์ž‘: IP์™€ Subnet

๋ฐ˜๋ณต๋˜๋Š” ๋ฃจํ‹ด ์†์—์„œ ์–ป์€ ์•ˆ์ •๊ฐ์„ ๋ฐœํŒ ์‚ผ์•„, ์ด์ œ๋Š” ๊ธฐ์ˆ ์  ์ŠคํŽ™ํŠธ๋Ÿผ์„ ๋„“ํžˆ๊ธฐ ์œ„ํ•œ ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ์— ์ฐฉ์ˆ˜ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์˜ ๋ชฉํ‘œ๋Š” ๋‹จ์ˆœํ•œ ํฌํŠธํด๋ฆฌ์˜ค ๊ตฌ์ถ•์„ ๋„˜์–ด, ์‹ค์ œ ์„œ๋น„์Šค ์ˆ˜์ค€์˜ ๋ธ”๋กœ๊ทธ ์‹œ์Šคํ…œ ๊ตฌํ˜„๊ณผ ๋‹ค๊ตญ์–ด ์ฒ˜๋ฆฌ ์ ์šฉ ๋“ฑ ์‹ค๋ฌด์— ๊ฐ€๊นŒ์šด ์—ญ๋Ÿ‰์„ ํ•œ ๋‹จ๊ณ„