O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

ALB+EC2 to API gateway + Lambda

996 visualizações

Publicada em

기본적인 웹어플리케이션 아키텍쳐인 ELB와 EC2로 이루어진 환경에서 Serverless Architecture인 API Gateway + Lambda로 전환한 사례 공유입니다.
데모 Git repository는 다음과 같습니다.
https://github.com/novemberde/serverless-webapp-demo

Publicada em: Software
  • Seja o primeiro a comentar

ALB+EC2 to API gateway + Lambda

  1. 1. ALB+EC2 to API Gateway + Lambda AWSKRUG Serverless Group 변규현
  2. 2. 변규현 Movilest CTO
  3. 3. 1 Legacy Architecture
  4. 4. 아키텍처를 어떤걸로 선택해서 올릴까요? “
  5. 5. CI/CD by Jenkins ELB AutoScaling Group 보통은 이렇게 올린다고 하네요
  6. 6. Legacy Architecture
  7. 7. 이런 식으로 올리고 어떤 부분들이 저를 힘들게 했을까요? “
  8. 8. 인력 관리 기초 지식초기 비용 스테이징 배포 프로세스 고려했던 점
  9. 9. $ 300+ 그냥 개발중인데도?
  10. 10. Laptop Project Deployment Process Test (Jenkins) Github Push Build (Jenkins) Deploy (Jenkins)
  11. 11. Jenkins가 힘들게 해요 왜? “
  12. 12. 무겁다… Micro로는 버거워요 비싸져요 Jenkins도 관리해야 되네요 서버니까요 Blue Ocean이 있다지만 Pipeline도 그닥... Jenkins가 힘들게 해요 source: https://chezsoi.org/lucas/blog/images/2017/02/butler-devil.png
  13. 13. 기초지식에서도 보시다시피공부할게 늘어나면서 요구되는능력은점점 많아집니다 저는 천재가아니였습니다ㅠㅠ source: http://mblogthumb2.phinf.naver.net/20131026_41/purejin108_1382771292729MSUOg_JPEG/%BD%BD%C7%C2%C2%A97.jpg?type=w2
  14. 14. 이거 모두 할 줄 아는 분! 비지니스로직도짤 줄 알아야해요 이런 사람 언제 구할 수 있을까요 쉽진 않았어요 source: http://mblogthumb3.phinf.naver.net/20141123_94/ssook410_14167201628423mKsy_PNG/%C0%FA%BF%E4_04.png?type=w2
  15. 15. Staging! 다 좋아요 그런데 개발 단계에서 하기가쉽나요 를 하고 계신 분이라면어렵지않겠지만 다시 올리려고생각만해도현기증난단 말이에요 source: https://post-phinf.pstatic.net/MjAxNzA5MTlfNjQg/MDAxNTA1ODA0MzUyMzQ2.YvuvLyg_z0oKJBJLd3-B1uMaucgkeJy77IhlQZQSgawg.Ssp0BG A5QyHkGMcKmnsx-2Twb3JXgcJn44QcplEz3ZEg.GIF/%ED%98%84%EA%B8%B0%EC%A6%9D%EC%9B%80%EC%A7%A4_%EB%B2%A0%EB%A 6%AC%EC%9E%BC_vryjam_%EC%9B%80%EC%A7%A4%EC%96%B4%ED%94%8C.gif?type=w1200
  16. 16. 제 목표는 이것들에 쏟아붓는 시간을 줄이는 것입니다! “
  17. 17. 2 Serverless Architecture
  18. 18. Serverless Architecture 도입시 어떤 이점이 생겼을까요? “
  19. 19. 그전에… 가볍게 AWS Lambda의 특징 및 장점을 살펴볼까요? “
  20. 20. AWS Lambda 함수 실행 시 단위 과금 서버 필요 없이 코드만배포 높은 확장성및 빠른 서비스연동
  21. 21. 이걸 다르게 해석하면 함수 실행 시 단위 과금 개발 기간동안은거의 과금되지않는다 서버 필요 없이 코드만배포 비지니스로직에집중할수 있다 높은 확장성및 빠른 서비스연동 인프라확장에대한 고민이줄어든다
  22. 22. AWS Serverless ecosystem Lambda SQS SNS S3 DynamoDB Kinesis
  23. 23. 더 자세히 공부하고 싶다면... 공식문서: Serverless Architecture - 김현민: 보다 강력한 Serverless, AWS Lambda 기능 확장(안효빈 AWS SA):
  24. 24. 3 Current Architecture
  25. 25. Current Architecture
  26. 26. 어떤 점이 좋은지 하나하나 살펴볼까요?“
  27. 27. EC2 인스턴스가 없습니다.
  28. 28. 이게 모든 장점의 시작이자 마지막이에요! “
  29. 29. 서버그룹관리가필요없다 어떤 변화가 발생했는지 살펴볼까요? 개발에더욱 집중 비용이줄어든다
  30. 30. 128 MB 512 MB 1024 MB 월별 프리티어(초) 3,200,000 800,000 400,000 100 ms 당 요금(USD) 0.000000208 0.00000834 0.000001667 1,000,000 Invoke 200 ms 요금(Free Tier 포함) $ 0 $ 0 $ 0 1,000,000 Invoke 200 ms 요금(Free Tier 미포함) $ 0.62 $ 1.87 $ 3.53 비용 측정 reference: https://aws.amazon.com/ko/lambda/pricing/
  31. 31. 개발할 때 비용이 0에 수렴하네요 스타트업에서 백만 번 이상 Request를 보내기도 힘드니까요 “
  32. 32. Lambda Parallel Execution API Gateway Lambda Aurora Redis DynamoDB
  33. 33. AutoScaling Group에서 Scale Out되는 시간이 보통 얼마나 되나요? 5분? 10분? 저는 그런 걱정은 안해요 “
  34. 34. 여유가 생기니 새로운 걸 하고 싶어졌네요 Go lang! 이제 Go 도 Lambda 지원! “
  35. 35. AWS Lambda Go support reference: https://aws.amazon.com/ko/about-aws/whats-new/2018/01/aws-lambda-supports-go/
  36. 36. 모니터링은 어떻게 할까요?
  37. 37. API Gateway & Lambda Monitoring 을 통한 모니터링서버 가동
  38. 38. Grafana + Amazon CloudWatch
  39. 39. 성장 곡선이 보이시나요? Serverless Architecture를 도입하면 Scaling을 할 필요가 없어요! 보고 즐기시면 됩니다! “
  40. 40. 4 Deployment with CircleCI
  41. 41. 그동안 배포하기 힘드셨죠? 배포는 신경쓸 게 많습니다. 하나라도 줄여야죠!! “
  42. 42. Laptop ProjectCir TEST Custom Environment WorkFlow Deployment reference: https://circleci.com/docs/2.0/
  43. 43. 작성은 이렇게 합니다
  44. 44. CircleCI UI
  45. 45. CircleCI UI
  46. 46. 이걸로는 부족하죠? 한 번 배포를 보여드리겠습니다! “
  47. 47. 5 그러나… 은총알은 없습니다
  48. 48. 도입할 때 힘들었던 점들은 무엇이 있을까요? “
  49. 49. Serverless가 힘들게 해요 로깅은어떻게하나요 처음에이해가잘 되지 않아요 서버리스가뭔가요 이건 어쩔 수 없어요 이해하셔야만합니다 디버깅이힘들어요 모든 경우에적용이되나요
  50. 50. 디버깅은 어떻게? 로 이 가능해요
  51. 51. 로깅은 어떻게 하나요? 에 로그가남아요 처음에는 에서 확인하세요 나중에는결국 활용 또는 에 로깅하던지 서비스를쓰는게편하지않을까요 이건 도입 이전과비슷한상황입니다ㅠㅠ
  52. 52. 모든 경우에 적용이 되나요? 아니에요 source: http://mblogthumb1.phinf.naver.net/20161013_240/arst701_1476348691843Lh6ec_PNG/image_5763882581476348645408.png?type=w800
  53. 53. 이런 것만 조심하세요! 실행시간이 분이상넘어가는경우 소켓 통신의경우 해결 방법이없어요 후에 해당 에서 후처리를처리하고싶은 경우 도 고려해야합니다
  54. 54. Lambda에서 Background 처리 처리를하고 싶은 것에 대해서 를 생성합니다 를 하기 전에 를 하거나 를 합니다 를 하도록설정하여해당 를 실행시켜줍니다
  55. 55. 실행시간이 5분 넘어가는 경우 분이 넘어가지않도록하기 위해선 을 나눠서실행한다 개의 이미지를한 번에 을 만든다고 가정한다면 을 만드는람다 생성 람다 를 할 람다 생성 람다 가 처리량을나눠서 하게 수십수백개의람다 를 참고
  56. 56. CPU 고려 에는 만 나와있습니다 하지만각 마다 적용되는 값이 달라요 이를 고려하지않는다면 을 보게 될거에요
  57. 57. 참고자료 - https://grafana.com/ - https://serverless.com/ - https://circleci.com/ - https://aws.amazon.com/ko/cloudwatch/ - https://cloudcraft.co/ - https://www.youtube.com/watch?v=Xi_WrinvTnM - https://github.com/novemberde/serverless-webapp-demo
  58. 58. 감사합니다!

×