현대의 애플리케이션 개발은 비지니스 요구사항을 빠르게 수용하여 구현한 뒤, 피드백을 통해 개선하는 과정을 지속적으로 반복해야 합니다. 본 세션에서는 AWS가 제공하는 코드 기반 인프라(Infrastructure as Code) 관련 도구를 활용하여 현대의 애플리케이션 개발을 위한 더 나은 환경을 어떻게 구성하며, 어떤 이점이 있는지 소개합니다. 기업에서 적용한 실제 사례를 통해 보다 더 직접적인 활용법을 확인할 수 있습니다. 기업에서 적용한 실제 사례를 통해 보다 더 직접적인 활용법은 물론, 조직에 필요한 변화 부터 환경 구성, 개발 진행, 변화 수용에 대해서 알 수 있습니다.
40. Pastebin 동작 확인 테스트
https://API_GATEWAY_ENDPOINT/prod/?content=AWS DevDay 2019!
{"data":"HfkyONDS6C"}
요청
응답
https://API_GATEWAY_ENDPOINT/prod/HfkyONDS6C
{"data":"DevDay"}
요청
응답
읽기
등록
41. 코드 기반 인프라 구성 방법 다시 보기
• AWS CDK CLI 워크플로
• init, diff à synth à deploy
• AWS Constructs 라이브러리
• API 레퍼런스 참고
• 권한 부여
PastebinStack
Amazon API Gateway AWS Lambda Amazon DynamoDB
콘텐츠 생성
콘텐츠 요청
AWS CDK App
콘텐츠 생성:
HTTP GET ?content=
콘텐츠 요청:
HTTP GET /<hash>
42. 잠깐! 아직 생각이 많으시다고요?
아직 비지니스 로직이 포함된 서비스에 도입하기에는 생각이 많으시다고요?
그러면 이건 어떨까요?
서비스가 잘 동작하는지 부하 테스트를 해보는 것이죠!
43. PastebinStack
Amazon API Gateway AWS Lambda Amazon DynamoDB
콘텐츠 생성
콘텐츠 요청
AWS CDK App
콘텐츠 생성:
HTTP GET ?content=
콘텐츠 요청:
HTTP GET /<hash>
LoaderStack
Loader가 추가된 아키텍처
53. Loader가 추가된 아키텍처 다시 보기
• Load 생성
• AWS Fargate로 규모에
상관없이!
• 재사용 가능한 Construct 직접 작성
• API, 인캡슐레이션
• 모니터링
• 공개된 construct
라이브러리를 활용
• ”Cloud in a Library”
• jsii
PastebinStack
Amazon API Gateway AWS Lambda Amazon DynamoDB
AWS CDK App
LoaderStack
https://github.com/aws/jsii
54. 직접 확인하는 Pastebin 자동화
https://github.com/kpiljoong/aws-devday2019-iac-demo
55. 클릭스트림 데이터 적재 사례
AWS CDK App
PipelineStack
AWS CodeCommit AWS CodeBuild AWS CloudFormation
코드 체크인
AWS CodePipeline
StreamAppStack
Amazon Kinesis
Data Streams
클릭스트림
AWS Lambda Amazon DynamoDB
57. 아하! 어디서든 가능한 자동화
어디부터 자동화를 해야하는지 모르겠다고요? 고민이 많다고요?
자동화는 어디서든 가능합니다.
하나의 스택을 해도 좋고, 하나의 레이어를 해도 좋아요.
스택, 레이어 내에서도 하나의 컴포넌트, 심지어 하나의 리소스도 충분합니
다.
58. 아하! 도구 선택은 편한 걸로
도구는 편한 게 최고입니다. 당장 사용하여 원하는 결과를 얻어야 하니까요.
새로운 도구를 학습하는 시간과 가지고 계신 기술력을 활용할 수 있는 것,
고민해보세요!
다른 팀원과 편한 방법 및 도구가 다른가요?
각자 편한 걸 사용하세요. 대신 표준 프로토콜을 지원하는 걸 사용하고, 표
준 프로토콜을 통해 서로 통신하세요.
59. 아하! 배포 환경은 동일하게
로컬 환경은 개발자 ’본인’만을 위한 것입니다.
로컬에서 충분히 테스트한 후 구성 및 배포 전용 환경을 구성하여 사용하
세요.
컨테이너도 좋고 AWS Cloud9과 같은 클라우드 IDE도 좋은 선택입니다.
60. 아하! 적은 AWS 서비스와 의존성은
인프라 자동화는 AWS 서비스에 대해 깊은 이해를 요구하지 않습니다.
특히, CDK를 사용하시면 이미 모범 사례를 기반으로 하는 라이브러리가 준
비되어 있어 더욱 더 손 쉽게 Well-Architecture를 구성할 수 있습니다.