AWS 자원을 효율적으로 이용하기 위해 Cognito를 사용하게 되었습니다. Cognito의 기능과 Cognito를 사용하면 좋은 점, 서비스를 개발하면서 생겼던 이슈 등을 발표합니다. 시연으로 Cognito + S3 + Lambda 를 이용한 서버리스 아키텍처 기반의 포토 갤러리 웹 서비스를 소개합니다.
5. 본 강연에서 다룰 내용
What is Cognito?
Cognito User Pool ( Identity Provider )
Cognito Federated Identity
Why Cognito?
Cognito 자격증명이 적용된 Serverless
Conclusion
14. Password는 AWS가 안전하게 관리.
Password Rule 지정 가능. Regexr 을 이용한 Rule 지정은 불가능.
관리자에 의한 계정이 생성되고, 한번도 사용 되지 않은 채 방치될 경우 해당 계정을 삭제함.
15. MFA 를 지원함. (Email, SMS Dual)
체크한 항목으로 Verification 을 강제함.
16. {####} 이 인증코드로 치환됨.
Web Console의 버그
-> 한글 입력이 불가능.
-> CLI나 SDK를 이용하면 됨.
17. User Pool 로그인 시 발급되는 Refresh Token 의 만료 주기. 자동로그인에 사용.
JavaScript, Python SDK에서 버그 이슈 있음.
Android, iOS SDK 이외의 경우 SRP 알고리
즘에 버그 존재. 타언어 SDK는 사용 불가.
Lambda Trigger와 연계됨.
38. DEMO
사용자가 늘어난다 -> Cognito가 알아서 할 일이다.
새로운 사용자 모델 -> Cognito UserPool에서 App Client 하나 추가
같은 계정으로 새로운 서비스 -> Cognito UserPool 생성 후
Federation
* 트래픽 부하가 늘어난다 -> Lambda 가 많이 켜진다.
(Python Serverless Deployment Using Zappa )
데이터베이스 IOPS 증가 -> DynamoDB Provising 상향
파일 업/다운로드 트래픽 -> 임시자격증명과 SDK로 Client-S3.
Direct
40. Conclusion
AWS Cognito 는 사용자 관리와 관련시스템 엔지니어링
고민을 머릿속에서 지우게 해주는 아주 좋은 사용자 인증
솔루션
Serverless 와 궁합이 잘 맞다!
활성 사용자 (MAU) 수가 많아질 경우 부담되는 가격이 흠
.
-> 프로젝트성 서비스 개발에 매우 적합.
No Cost, Fast Dev, Stable Infra.
STS 임시 자격증명을 이용해 부하분산을 고객의 Device에
게!?
41. 본 강연이 끝난 후…
http://docs.aws.amazon.com/cognito/latest/developerguid
e/what-is-amazon-cognito.html
https://github.com/aws/amazon-cognito-identity-js
https://blog.rackspace.com/part-2-building-serverless-
architecture-aws
https://github.com/Miserlou/Zappa
https://aws.amazon.com/ko/blogs/mobile/integrating-
amazon-cognito-user-pools-with-api-gateway/