SlideShare a Scribd company logo
1 of 19
Download to read offline
Serverless Application
CI/CD on CircleCI
2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun
Byun Kyuhyun
Working at a Startup
CircleCI Korea User Group Organizer
AWSKRUG Serverless Group Organizer
Interested in...
- DevOps
- Serverless
- Container
- AWS
- Well architected service
- Node.js
- Golang
2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun
First CircleCI Meetup in Korea
2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun
첫번째 CircleCI Meetup을 준비하였습니다.
DevOps에 관심이 많으실거라 생각합니다.
많은 부분들을 자동화하고, 이를 통해 개발 기간을 단축시키거나 공부할 수 있는 시간을 더욱 갖고 싶을 것입니다.
또한 운영상의 이슈들을 간소화하고 싶으실 겁니다.
오늘 CircleCI Meetup에서는 기초적인 CircleCI 특징을 다뤄보고,
나아가 CircleCI Meetup에서 어떤 내용을 중점적으로 생각할지 알아봅시다.
Why CircleCI?
2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun
우린 CI/CD를 위한 도구로 많은 것들을 접했습니다.
CircleCI 와 함께 Jenkins, TravisCI, Bitbucket Pipeline, Gitlab Pipeline 등 많은 것들이 DevOps 도구로 활용되고 있습니다.
이 뿐만 아니라 각 Cloud Vendor에서는 자체 Pipeline 도구들이 있습니다.
AWS는 Code Pipeline, Azure에서는 최근에 DevOps 도구들을 한번에 사용할 수 있게합니다.
그렇다면 저는 왜 CircleCI를 택했을까요?
How about Jenkins?
2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun
Jenkins는 어떨까요?
많은 분들이 사용하고 있을 겁니다.
회사 내부의 빌드시스템은 대부분 Jenkins를 사용한다고 해도 무방합니다.
어떠한 것들이 Jenkins에서 벗어나고 싶게 만들까요? 직접 설치, 운영 관리, 비용, 수많은 옵션 및 플러그인이 많은 일을 필요로 합니다.
How about
AWS CodePipeline?
2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun
만약 AWS CodePipeline을 사용한다고 가정해보겠습니다.
AWS 계정이 있어야겠죠? 그 계정에는 보통 서비스가 동작하고 있습니다.
CodePipeline에 접근해야하는 사람들은 AWS Console을 통해 접근합니다.
많은 서비스들이 분포되어 있고, 그중에 CodePipeline을 선택해야 합니다.
CodePipeline을 사용한다는 것은 AWS Console에 대한 접근권한을 줍니다. 또한 로그인 절차도 복잡합니다.
그렇게 달갑지 않은 상황들이 발생할 수 있습니다. 예를 들어, 다른 AWS Resource를 구경할 수도 있습니다.
물론 SA가 IAM을 잘 아는 사람이라면 그렇지 않겠지만, 많은 회사는 그렇지 못합니다.
그리고 Slack Webhook을 생성하는 것도 별도로 Lambda를 통해 서비스를 구축하여 알림을 받습니다.
상당히 까다롭습니다.
CircleCI는 이러한 문제점에 대해서 도움을 줄 수 있습니다.
이젠 Docker와 같은 Container기술이 발달함에 따라 독립된 빌드환경을 이미지로 가지고 있을 수 있습니다.
CircleCI는 빌드 환경을 Container Image로 사용하고, 얼마든지 커스터마이징을 할 수 있습니다.
또한 빌드 시간 단축을 위해 이전 빌드환경과 바뀌지 않은 중복적인 작업의 경우에 빌드 환경을 캐싱할 수 있습니다.
이는 Docker Container의 기술을 도입함으로써 가져갈 수 있는 장점입니다.
CircleCI
2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun
CircleCI
2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun
Pipeline을 Service로 제공합니다. Workflows라고 불리는데, 옵션이 아주 간결합니다.
빌드할 브랜치를 필터링 할 수 있고, 승인 기능을 통해 다음 단계로 넘어가는 것을 수동으로 진행할 수 있게 합니다.
그리고 무엇보다 좋은 것은 빌드 서버를 직접 운영하지 않아도 된다는 것입니다.
직접 운영한다는 것은 생각보다 많은 이슈들을 동반합니다.
단지 CircleCI에 SignUp을 하면, 얼마든지 사용할 수 있습니다.
빌드서버 운영 비용을 줄일 수 있습니다.
별도의 서비스로 운영되기 때문에 접근이 AWS Console이나 Azure Console등 Cloud Vendor의 UI보다 간결합니다.
CI/CD에 집중할 수 있도록 도와줍니다.
또한 MacOS 빌드를 지원합니다. Mac 전용 앱이나 iOS 앱을 만드는 분들에게 좋은 점이라 생각합니다.
Let’s build
Serverless Application
on CircleCI
2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun
Serverless로 빌드되는 환경은 특별합니다.
AWS Lambda를 예로 들어보겠습니다.
소스코드만 배포하면 동작하는 것으로 알고 있습니다.
대표적인 AWS의 Serverless Service입니다.
하지만 실제로 로컬에서 동작했는데, 배포하면 동작이 되지 않는 경우가 있습니다.
OS마다 아키텍처 형태 및 타겟파일(dll, so)이 다르기 때문입니다. 적절한 형태로 빌드를 해주어야 합니다.
CircleCI는 컨테이너 기반으로 빌드가 이루어지기 때문에 필요한 컨테이너 이미지를 빌드환경으로 사용하면 됩니다.
2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun
lambci에서 제공해주는 Lambda 런타임에 대한 도커 이미지입니다.
2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun
CircleCI에서 각 빌드 환경에 대해서 환경변수를 설정할 수 있습니다.
2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun
CircleCI Config에서 하나의 Job에 대한 샘플 코드입니다.
2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun
CircleCI Config에서
Workflow 예제입니다.
2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun
CircleCI 콘솔에서 여태까지 진행했던 Workflows의 내역을 확인할 수 있습니다.
2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun
Workflows에 표현되어 있는 Pipeline의 예제입니다. hold를 통해 관리자가 승인 절차를 넣을 수 있습니다.
2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun
References
- https://circleci.com/docs/2.0/configuration-reference/
- https://circleci.com/docs/2.0/caching/#basic-example-of-d
ependency-caching
- https://github.com/novemberde/serverless-todo-demo
2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun
Any Questions?
2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun
Thank you!
Email: novemberde1@gmail.com
Blog: https://novemberde.github.io
Github:https://github.com/novemberde
2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun

More Related Content

What's hot

Crawling with AWS Lambda
Crawling with AWS LambdaCrawling with AWS Lambda
Crawling with AWS LambdaSeungho Kim
 
HB Smith에서는 AWS 이렇게 사용한다
HB Smith에서는 AWS 이렇게 사용한다HB Smith에서는 AWS 이렇게 사용한다
HB Smith에서는 AWS 이렇게 사용한다Jongwon Han
 
AWS Lambda를 이용한 CI/CD 기법
AWS Lambda를 이용한 CI/CD 기법AWS Lambda를 이용한 CI/CD 기법
AWS Lambda를 이용한 CI/CD 기법Jesang Yoon
 
AWS Lambdas with a Static Outgoing IP
AWS Lambdas with a Static Outgoing IPAWS Lambdas with a Static Outgoing IP
AWS Lambdas with a Static Outgoing IPJongwon Han
 
온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020
온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020
온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020AWSKRUG - AWS한국사용자모임
 
RDS에서 Aurora PostgreSQL 마이그레이션하기
RDS에서 Aurora PostgreSQL 마이그레이션하기RDS에서 Aurora PostgreSQL 마이그레이션하기
RDS에서 Aurora PostgreSQL 마이그레이션하기Kyuhyun Byun
 
[Td 2015]두근두근 asp.net 5(한상훈)
[Td 2015]두근두근 asp.net 5(한상훈)[Td 2015]두근두근 asp.net 5(한상훈)
[Td 2015]두근두근 asp.net 5(한상훈)Sang Don Kim
 
Web assembly 맛보기
Web assembly 맛보기Web assembly 맛보기
Web assembly 맛보기GyeongSeok Seo
 
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다Jongwon Han
 
20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverle...
20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverle...20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverle...
20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverle...Jongwon Han
 
크로스플랫폼으로 다시 태어난 ASP.NET Core
크로스플랫폼으로 다시 태어난 ASP.NET Core크로스플랫폼으로 다시 태어난 ASP.NET Core
크로스플랫폼으로 다시 태어난 ASP.NET CoreSangHoon Han
 
두근두근 ASP.NET 5!
두근두근 ASP.NET 5!두근두근 ASP.NET 5!
두근두근 ASP.NET 5!SangHoon Han
 
[AUSG] 초보자를 위한 AWS 뿌시기 세미나 2회 - 팀플 과제를 여행하는 히치하이커를 위한...
[AUSG] 초보자를 위한 AWS 뿌시기 세미나 2회 - 팀플 과제를 여행하는 히치하이커를 위한...[AUSG] 초보자를 위한 AWS 뿌시기 세미나 2회 - 팀플 과제를 여행하는 히치하이커를 위한...
[AUSG] 초보자를 위한 AWS 뿌시기 세미나 2회 - 팀플 과제를 여행하는 히치하이커를 위한...AWSKRUG - AWS한국사용자모임
 
[Td 2015]asp.net 5 깊게 파고들기(박용준)
[Td 2015]asp.net 5 깊게 파고들기(박용준)[Td 2015]asp.net 5 깊게 파고들기(박용준)
[Td 2015]asp.net 5 깊게 파고들기(박용준)Sang Don Kim
 
20180915 HBSmith에서는 Django 이렇게 사용한다
20180915 HBSmith에서는 Django 이렇게 사용한다20180915 HBSmith에서는 Django 이렇게 사용한다
20180915 HBSmith에서는 Django 이렇게 사용한다Jongwon Han
 
[AWS Community Day 2021] AWS와 함께하는 무중단 배포 파이프라인 개선기
[AWS Community Day 2021] AWS와 함께하는 무중단 배포 파이프라인 개선기[AWS Community Day 2021] AWS와 함께하는 무중단 배포 파이프라인 개선기
[AWS Community Day 2021] AWS와 함께하는 무중단 배포 파이프라인 개선기SungChanHwang
 
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화KTH, 케이티하이텔
 
[AUSG] 초보자를 위한 AWS 뿌시기 세미나 1회 - 비트코인 챗봇 만들기 가즈아ㅏㅏ
[AUSG] 초보자를 위한 AWS 뿌시기 세미나 1회 - 비트코인 챗봇 만들기 가즈아ㅏㅏ[AUSG] 초보자를 위한 AWS 뿌시기 세미나 1회 - 비트코인 챗봇 만들기 가즈아ㅏㅏ
[AUSG] 초보자를 위한 AWS 뿌시기 세미나 1회 - 비트코인 챗봇 만들기 가즈아ㅏㅏAWSKRUG - AWS한국사용자모임
 

What's hot (20)

Crawling with AWS Lambda
Crawling with AWS LambdaCrawling with AWS Lambda
Crawling with AWS Lambda
 
HB Smith에서는 AWS 이렇게 사용한다
HB Smith에서는 AWS 이렇게 사용한다HB Smith에서는 AWS 이렇게 사용한다
HB Smith에서는 AWS 이렇게 사용한다
 
AWS Lambda를 이용한 CI/CD 기법
AWS Lambda를 이용한 CI/CD 기법AWS Lambda를 이용한 CI/CD 기법
AWS Lambda를 이용한 CI/CD 기법
 
AWS Lambdas with a Static Outgoing IP
AWS Lambdas with a Static Outgoing IPAWS Lambdas with a Static Outgoing IP
AWS Lambdas with a Static Outgoing IP
 
온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020
온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020
온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020
 
RDS에서 Aurora PostgreSQL 마이그레이션하기
RDS에서 Aurora PostgreSQL 마이그레이션하기RDS에서 Aurora PostgreSQL 마이그레이션하기
RDS에서 Aurora PostgreSQL 마이그레이션하기
 
[Td 2015]두근두근 asp.net 5(한상훈)
[Td 2015]두근두근 asp.net 5(한상훈)[Td 2015]두근두근 asp.net 5(한상훈)
[Td 2015]두근두근 asp.net 5(한상훈)
 
Web assembly 맛보기
Web assembly 맛보기Web assembly 맛보기
Web assembly 맛보기
 
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
 
20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverle...
20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverle...20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverle...
20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverle...
 
크로스플랫폼으로 다시 태어난 ASP.NET Core
크로스플랫폼으로 다시 태어난 ASP.NET Core크로스플랫폼으로 다시 태어난 ASP.NET Core
크로스플랫폼으로 다시 태어난 ASP.NET Core
 
두근두근 ASP.NET 5!
두근두근 ASP.NET 5!두근두근 ASP.NET 5!
두근두근 ASP.NET 5!
 
[AUSG] 초보자를 위한 AWS 뿌시기 세미나 2회 - 팀플 과제를 여행하는 히치하이커를 위한...
[AUSG] 초보자를 위한 AWS 뿌시기 세미나 2회 - 팀플 과제를 여행하는 히치하이커를 위한...[AUSG] 초보자를 위한 AWS 뿌시기 세미나 2회 - 팀플 과제를 여행하는 히치하이커를 위한...
[AUSG] 초보자를 위한 AWS 뿌시기 세미나 2회 - 팀플 과제를 여행하는 히치하이커를 위한...
 
[Td 2015]asp.net 5 깊게 파고들기(박용준)
[Td 2015]asp.net 5 깊게 파고들기(박용준)[Td 2015]asp.net 5 깊게 파고들기(박용준)
[Td 2015]asp.net 5 깊게 파고들기(박용준)
 
DevOps Demo
DevOps DemoDevOps Demo
DevOps Demo
 
20180915 HBSmith에서는 Django 이렇게 사용한다
20180915 HBSmith에서는 Django 이렇게 사용한다20180915 HBSmith에서는 Django 이렇게 사용한다
20180915 HBSmith에서는 Django 이렇게 사용한다
 
Aws로 ci하기 안기욱
Aws로 ci하기 안기욱Aws로 ci하기 안기욱
Aws로 ci하기 안기욱
 
[AWS Community Day 2021] AWS와 함께하는 무중단 배포 파이프라인 개선기
[AWS Community Day 2021] AWS와 함께하는 무중단 배포 파이프라인 개선기[AWS Community Day 2021] AWS와 함께하는 무중단 배포 파이프라인 개선기
[AWS Community Day 2021] AWS와 함께하는 무중단 배포 파이프라인 개선기
 
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
 
[AUSG] 초보자를 위한 AWS 뿌시기 세미나 1회 - 비트코인 챗봇 만들기 가즈아ㅏㅏ
[AUSG] 초보자를 위한 AWS 뿌시기 세미나 1회 - 비트코인 챗봇 만들기 가즈아ㅏㅏ[AUSG] 초보자를 위한 AWS 뿌시기 세미나 1회 - 비트코인 챗봇 만들기 가즈아ㅏㅏ
[AUSG] 초보자를 위한 AWS 뿌시기 세미나 1회 - 비트코인 챗봇 만들기 가즈아ㅏㅏ
 

Similar to CircleCI로 Serverless API의 CI/CD 환경 구축하기

Serverless websocket 톺아보기
Serverless websocket 톺아보기Serverless websocket 톺아보기
Serverless websocket 톺아보기Kyuhyun Byun
 
도커 컨테이너 활용 사례 Codigm - 남 유석 개발팀장 :: AWS Container Day
도커 컨테이너 활용 사례 Codigm - 남 유석 개발팀장 :: AWS Container Day도커 컨테이너 활용 사례 Codigm - 남 유석 개발팀장 :: AWS Container Day
도커 컨테이너 활용 사례 Codigm - 남 유석 개발팀장 :: AWS Container DayAmazon Web Services Korea
 
Aws lambda 와 함께 서버리스 서비스 만들기
Aws lambda 와 함께 서버리스 서비스 만들기Aws lambda 와 함께 서버리스 서비스 만들기
Aws lambda 와 함께 서버리스 서비스 만들기Junyoung Sung
 
Aws serverless services
Aws serverless servicesAws serverless services
Aws serverless servicesDaniel Jung
 
[웨비나] 다중 AWS 계정에서의 CI/CD 구축
[웨비나] 다중 AWS 계정에서의 CI/CD 구축[웨비나] 다중 AWS 계정에서의 CI/CD 구축
[웨비나] 다중 AWS 계정에서의 CI/CD 구축BESPIN GLOBAL
 
[AWS Builders] AWS Cloud Development Kit을 이용한 Code 기반의 인프라 구축 - 김현수, AWS 솔루션즈...
[AWS Builders] AWS Cloud Development Kit을 이용한 Code 기반의 인프라 구축 - 김현수, AWS 솔루션즈...[AWS Builders] AWS Cloud Development Kit을 이용한 Code 기반의 인프라 구축 - 김현수, AWS 솔루션즈...
[AWS Builders] AWS Cloud Development Kit을 이용한 Code 기반의 인프라 구축 - 김현수, AWS 솔루션즈...Amazon Web Services Korea
 
[애플리케이션 현대화 및 개발] 파트너 세션 | 모던 인프라스트럭쳐 아키텍쳐 - 서호석 이사, 영우디지탈
[애플리케이션 현대화 및 개발] 파트너 세션 | 모던 인프라스트럭쳐 아키텍쳐 - 서호석 이사, 영우디지탈 [애플리케이션 현대화 및 개발] 파트너 세션 | 모던 인프라스트럭쳐 아키텍쳐 - 서호석 이사, 영우디지탈
[애플리케이션 현대화 및 개발] 파트너 세션 | 모던 인프라스트럭쳐 아키텍쳐 - 서호석 이사, 영우디지탈 Amazon Web Services Korea
 
IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편
IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편
IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편Darion Kim
 
클라우드란 (기획자대상)
클라우드란 (기획자대상)클라우드란 (기획자대상)
클라우드란 (기획자대상)Minwoo Park
 
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?Ian Choi
 
Confluent Tech Talk
Confluent Tech TalkConfluent Tech Talk
Confluent Tech Talkconfluent
 
테크데이타 - MS workload migration to aws 웨비나 발표자료 20210713
테크데이타 - MS workload migration to aws 웨비나 발표자료 20210713테크데이타 - MS workload migration to aws 웨비나 발표자료 20210713
테크데이타 - MS workload migration to aws 웨비나 발표자료 20210713테크데이타
 
KubeCon + CloudNativeCon Europe 2021 recap (공개버전)
KubeCon + CloudNativeCon Europe 2021 recap (공개버전)KubeCon + CloudNativeCon Europe 2021 recap (공개버전)
KubeCon + CloudNativeCon Europe 2021 recap (공개버전)DAEBUM LEE
 
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기Amazon Web Services Korea
 
20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...
20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...
20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...Jongwon Han
 
[AWS Media Symposium 2019] 고객사례 | SBS Web Service Cloud Migration Process - 김...
[AWS Media Symposium 2019] 고객사례 | SBS Web Service Cloud Migration Process - 김...[AWS Media Symposium 2019] 고객사례 | SBS Web Service Cloud Migration Process - 김...
[AWS Media Symposium 2019] 고객사례 | SBS Web Service Cloud Migration Process - 김...Amazon Web Services Korea
 
GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축철구 김
 
Session 1. 디지털 트렌스포메이션의 핵심, 클라우드 마이그레이션 A to Z - 베스핀글로벌 이근우 위원
Session 1. 디지털 트렌스포메이션의 핵심, 클라우드 마이그레이션 A to Z - 베스핀글로벌 이근우 위원Session 1. 디지털 트렌스포메이션의 핵심, 클라우드 마이그레이션 A to Z - 베스핀글로벌 이근우 위원
Session 1. 디지털 트렌스포메이션의 핵심, 클라우드 마이그레이션 A to Z - 베스핀글로벌 이근우 위원BESPIN GLOBAL
 

Similar to CircleCI로 Serverless API의 CI/CD 환경 구축하기 (20)

Serverless websocket 톺아보기
Serverless websocket 톺아보기Serverless websocket 톺아보기
Serverless websocket 톺아보기
 
도커 컨테이너 활용 사례 Codigm - 남 유석 개발팀장 :: AWS Container Day
도커 컨테이너 활용 사례 Codigm - 남 유석 개발팀장 :: AWS Container Day도커 컨테이너 활용 사례 Codigm - 남 유석 개발팀장 :: AWS Container Day
도커 컨테이너 활용 사례 Codigm - 남 유석 개발팀장 :: AWS Container Day
 
Aws lambda 와 함께 서버리스 서비스 만들기
Aws lambda 와 함께 서버리스 서비스 만들기Aws lambda 와 함께 서버리스 서비스 만들기
Aws lambda 와 함께 서버리스 서비스 만들기
 
Aws serverless services
Aws serverless servicesAws serverless services
Aws serverless services
 
[웨비나] 다중 AWS 계정에서의 CI/CD 구축
[웨비나] 다중 AWS 계정에서의 CI/CD 구축[웨비나] 다중 AWS 계정에서의 CI/CD 구축
[웨비나] 다중 AWS 계정에서의 CI/CD 구축
 
[AWS Builders] AWS Cloud Development Kit을 이용한 Code 기반의 인프라 구축 - 김현수, AWS 솔루션즈...
[AWS Builders] AWS Cloud Development Kit을 이용한 Code 기반의 인프라 구축 - 김현수, AWS 솔루션즈...[AWS Builders] AWS Cloud Development Kit을 이용한 Code 기반의 인프라 구축 - 김현수, AWS 솔루션즈...
[AWS Builders] AWS Cloud Development Kit을 이용한 Code 기반의 인프라 구축 - 김현수, AWS 솔루션즈...
 
[애플리케이션 현대화 및 개발] 파트너 세션 | 모던 인프라스트럭쳐 아키텍쳐 - 서호석 이사, 영우디지탈
[애플리케이션 현대화 및 개발] 파트너 세션 | 모던 인프라스트럭쳐 아키텍쳐 - 서호석 이사, 영우디지탈 [애플리케이션 현대화 및 개발] 파트너 세션 | 모던 인프라스트럭쳐 아키텍쳐 - 서호석 이사, 영우디지탈
[애플리케이션 현대화 및 개발] 파트너 세션 | 모던 인프라스트럭쳐 아키텍쳐 - 서호석 이사, 영우디지탈
 
IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편
IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편
IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편
 
클라우드란 (기획자대상)
클라우드란 (기획자대상)클라우드란 (기획자대상)
클라우드란 (기획자대상)
 
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
 
AWS DevDay 실습 가이드 - 서버리스
AWS DevDay 실습 가이드 - 서버리스AWS DevDay 실습 가이드 - 서버리스
AWS DevDay 실습 가이드 - 서버리스
 
Confluent Tech Talk
Confluent Tech TalkConfluent Tech Talk
Confluent Tech Talk
 
테크데이타 - MS workload migration to aws 웨비나 발표자료 20210713
테크데이타 - MS workload migration to aws 웨비나 발표자료 20210713테크데이타 - MS workload migration to aws 웨비나 발표자료 20210713
테크데이타 - MS workload migration to aws 웨비나 발표자료 20210713
 
KubeCon + CloudNativeCon Europe 2021 recap (공개버전)
KubeCon + CloudNativeCon Europe 2021 recap (공개버전)KubeCon + CloudNativeCon Europe 2021 recap (공개버전)
KubeCon + CloudNativeCon Europe 2021 recap (공개버전)
 
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
 
Cloud Design Pattern
Cloud Design PatternCloud Design Pattern
Cloud Design Pattern
 
20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...
20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...
20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...
 
[AWS Media Symposium 2019] 고객사례 | SBS Web Service Cloud Migration Process - 김...
[AWS Media Symposium 2019] 고객사례 | SBS Web Service Cloud Migration Process - 김...[AWS Media Symposium 2019] 고객사례 | SBS Web Service Cloud Migration Process - 김...
[AWS Media Symposium 2019] 고객사례 | SBS Web Service Cloud Migration Process - 김...
 
GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축
 
Session 1. 디지털 트렌스포메이션의 핵심, 클라우드 마이그레이션 A to Z - 베스핀글로벌 이근우 위원
Session 1. 디지털 트렌스포메이션의 핵심, 클라우드 마이그레이션 A to Z - 베스핀글로벌 이근우 위원Session 1. 디지털 트렌스포메이션의 핵심, 클라우드 마이그레이션 A to Z - 베스핀글로벌 이근우 위원
Session 1. 디지털 트렌스포메이션의 핵심, 클라우드 마이그레이션 A to Z - 베스핀글로벌 이근우 위원
 

More from Kyuhyun Byun

Go 도입 후 4년 간 기록
Go 도입 후 4년 간 기록Go 도입 후 4년 간 기록
Go 도입 후 4년 간 기록Kyuhyun Byun
 
성장하는 엔지니어가 되는 법- 주니어편.pptx
성장하는 엔지니어가 되는 법- 주니어편.pptx성장하는 엔지니어가 되는 법- 주니어편.pptx
성장하는 엔지니어가 되는 법- 주니어편.pptxKyuhyun Byun
 
성장하는 서버 개발자 되기 - Wanted Livetalk
성장하는 서버 개발자 되기 - Wanted Livetalk성장하는 서버 개발자 되기 - Wanted Livetalk
성장하는 서버 개발자 되기 - Wanted LivetalkKyuhyun Byun
 
Start Serverless with Golang!
Start Serverless with Golang!Start Serverless with Golang!
Start Serverless with Golang!Kyuhyun Byun
 
Native addon을 포함하여 Node.js + Typescript + Serverless 빌드 및 배포하기
Native addon을 포함하여 Node.js + Typescript + Serverless 빌드 및 배포하기Native addon을 포함하여 Node.js + Typescript + Serverless 빌드 및 배포하기
Native addon을 포함하여 Node.js + Typescript + Serverless 빌드 및 배포하기Kyuhyun Byun
 
포털 검색어 순위 수집 및 분석 후기
포털 검색어 순위 수집 및 분석 후기포털 검색어 순위 수집 및 분석 후기
포털 검색어 순위 수집 및 분석 후기Kyuhyun Byun
 
Serverless framework와 CircleCI를 통한 NoOps 맛보기
Serverless framework와 CircleCI를 통한 NoOps 맛보기Serverless framework와 CircleCI를 통한 NoOps 맛보기
Serverless framework와 CircleCI를 통한 NoOps 맛보기Kyuhyun Byun
 
Ec2 docker docker-compose
Ec2 docker docker-composeEc2 docker docker-compose
Ec2 docker docker-composeKyuhyun Byun
 

More from Kyuhyun Byun (8)

Go 도입 후 4년 간 기록
Go 도입 후 4년 간 기록Go 도입 후 4년 간 기록
Go 도입 후 4년 간 기록
 
성장하는 엔지니어가 되는 법- 주니어편.pptx
성장하는 엔지니어가 되는 법- 주니어편.pptx성장하는 엔지니어가 되는 법- 주니어편.pptx
성장하는 엔지니어가 되는 법- 주니어편.pptx
 
성장하는 서버 개발자 되기 - Wanted Livetalk
성장하는 서버 개발자 되기 - Wanted Livetalk성장하는 서버 개발자 되기 - Wanted Livetalk
성장하는 서버 개발자 되기 - Wanted Livetalk
 
Start Serverless with Golang!
Start Serverless with Golang!Start Serverless with Golang!
Start Serverless with Golang!
 
Native addon을 포함하여 Node.js + Typescript + Serverless 빌드 및 배포하기
Native addon을 포함하여 Node.js + Typescript + Serverless 빌드 및 배포하기Native addon을 포함하여 Node.js + Typescript + Serverless 빌드 및 배포하기
Native addon을 포함하여 Node.js + Typescript + Serverless 빌드 및 배포하기
 
포털 검색어 순위 수집 및 분석 후기
포털 검색어 순위 수집 및 분석 후기포털 검색어 순위 수집 및 분석 후기
포털 검색어 순위 수집 및 분석 후기
 
Serverless framework와 CircleCI를 통한 NoOps 맛보기
Serverless framework와 CircleCI를 통한 NoOps 맛보기Serverless framework와 CircleCI를 통한 NoOps 맛보기
Serverless framework와 CircleCI를 통한 NoOps 맛보기
 
Ec2 docker docker-compose
Ec2 docker docker-composeEc2 docker docker-compose
Ec2 docker docker-compose
 

CircleCI로 Serverless API의 CI/CD 환경 구축하기

  • 1. Serverless Application CI/CD on CircleCI 2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun
  • 2. Byun Kyuhyun Working at a Startup CircleCI Korea User Group Organizer AWSKRUG Serverless Group Organizer Interested in... - DevOps - Serverless - Container - AWS - Well architected service - Node.js - Golang 2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun
  • 3. First CircleCI Meetup in Korea 2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun 첫번째 CircleCI Meetup을 준비하였습니다. DevOps에 관심이 많으실거라 생각합니다. 많은 부분들을 자동화하고, 이를 통해 개발 기간을 단축시키거나 공부할 수 있는 시간을 더욱 갖고 싶을 것입니다. 또한 운영상의 이슈들을 간소화하고 싶으실 겁니다. 오늘 CircleCI Meetup에서는 기초적인 CircleCI 특징을 다뤄보고, 나아가 CircleCI Meetup에서 어떤 내용을 중점적으로 생각할지 알아봅시다.
  • 4. Why CircleCI? 2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun 우린 CI/CD를 위한 도구로 많은 것들을 접했습니다. CircleCI 와 함께 Jenkins, TravisCI, Bitbucket Pipeline, Gitlab Pipeline 등 많은 것들이 DevOps 도구로 활용되고 있습니다. 이 뿐만 아니라 각 Cloud Vendor에서는 자체 Pipeline 도구들이 있습니다. AWS는 Code Pipeline, Azure에서는 최근에 DevOps 도구들을 한번에 사용할 수 있게합니다. 그렇다면 저는 왜 CircleCI를 택했을까요?
  • 5. How about Jenkins? 2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun Jenkins는 어떨까요? 많은 분들이 사용하고 있을 겁니다. 회사 내부의 빌드시스템은 대부분 Jenkins를 사용한다고 해도 무방합니다. 어떠한 것들이 Jenkins에서 벗어나고 싶게 만들까요? 직접 설치, 운영 관리, 비용, 수많은 옵션 및 플러그인이 많은 일을 필요로 합니다.
  • 6. How about AWS CodePipeline? 2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun 만약 AWS CodePipeline을 사용한다고 가정해보겠습니다. AWS 계정이 있어야겠죠? 그 계정에는 보통 서비스가 동작하고 있습니다. CodePipeline에 접근해야하는 사람들은 AWS Console을 통해 접근합니다. 많은 서비스들이 분포되어 있고, 그중에 CodePipeline을 선택해야 합니다. CodePipeline을 사용한다는 것은 AWS Console에 대한 접근권한을 줍니다. 또한 로그인 절차도 복잡합니다. 그렇게 달갑지 않은 상황들이 발생할 수 있습니다. 예를 들어, 다른 AWS Resource를 구경할 수도 있습니다. 물론 SA가 IAM을 잘 아는 사람이라면 그렇지 않겠지만, 많은 회사는 그렇지 못합니다. 그리고 Slack Webhook을 생성하는 것도 별도로 Lambda를 통해 서비스를 구축하여 알림을 받습니다. 상당히 까다롭습니다.
  • 7. CircleCI는 이러한 문제점에 대해서 도움을 줄 수 있습니다. 이젠 Docker와 같은 Container기술이 발달함에 따라 독립된 빌드환경을 이미지로 가지고 있을 수 있습니다. CircleCI는 빌드 환경을 Container Image로 사용하고, 얼마든지 커스터마이징을 할 수 있습니다. 또한 빌드 시간 단축을 위해 이전 빌드환경과 바뀌지 않은 중복적인 작업의 경우에 빌드 환경을 캐싱할 수 있습니다. 이는 Docker Container의 기술을 도입함으로써 가져갈 수 있는 장점입니다. CircleCI 2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun
  • 8. CircleCI 2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun Pipeline을 Service로 제공합니다. Workflows라고 불리는데, 옵션이 아주 간결합니다. 빌드할 브랜치를 필터링 할 수 있고, 승인 기능을 통해 다음 단계로 넘어가는 것을 수동으로 진행할 수 있게 합니다. 그리고 무엇보다 좋은 것은 빌드 서버를 직접 운영하지 않아도 된다는 것입니다. 직접 운영한다는 것은 생각보다 많은 이슈들을 동반합니다. 단지 CircleCI에 SignUp을 하면, 얼마든지 사용할 수 있습니다. 빌드서버 운영 비용을 줄일 수 있습니다. 별도의 서비스로 운영되기 때문에 접근이 AWS Console이나 Azure Console등 Cloud Vendor의 UI보다 간결합니다. CI/CD에 집중할 수 있도록 도와줍니다. 또한 MacOS 빌드를 지원합니다. Mac 전용 앱이나 iOS 앱을 만드는 분들에게 좋은 점이라 생각합니다.
  • 9. Let’s build Serverless Application on CircleCI 2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun Serverless로 빌드되는 환경은 특별합니다. AWS Lambda를 예로 들어보겠습니다. 소스코드만 배포하면 동작하는 것으로 알고 있습니다. 대표적인 AWS의 Serverless Service입니다. 하지만 실제로 로컬에서 동작했는데, 배포하면 동작이 되지 않는 경우가 있습니다. OS마다 아키텍처 형태 및 타겟파일(dll, so)이 다르기 때문입니다. 적절한 형태로 빌드를 해주어야 합니다. CircleCI는 컨테이너 기반으로 빌드가 이루어지기 때문에 필요한 컨테이너 이미지를 빌드환경으로 사용하면 됩니다.
  • 10. 2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun lambci에서 제공해주는 Lambda 런타임에 대한 도커 이미지입니다.
  • 11. 2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun CircleCI에서 각 빌드 환경에 대해서 환경변수를 설정할 수 있습니다.
  • 12. 2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun CircleCI Config에서 하나의 Job에 대한 샘플 코드입니다.
  • 13. 2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun CircleCI Config에서 Workflow 예제입니다.
  • 14. 2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun CircleCI 콘솔에서 여태까지 진행했던 Workflows의 내역을 확인할 수 있습니다.
  • 15. 2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun Workflows에 표현되어 있는 Pipeline의 예제입니다. hold를 통해 관리자가 승인 절차를 넣을 수 있습니다.
  • 16. 2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun
  • 17. References - https://circleci.com/docs/2.0/configuration-reference/ - https://circleci.com/docs/2.0/caching/#basic-example-of-d ependency-caching - https://github.com/novemberde/serverless-todo-demo 2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun
  • 18. Any Questions? 2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun
  • 19. Thank you! Email: novemberde1@gmail.com Blog: https://novemberde.github.io Github:https://github.com/novemberde 2019.05.14 | CircleCI Korea User Group | Serverless CI/CD on CircleCI | Byun Kyuhyun