SlideShare a Scribd company logo
현대적 애플리케이션
개발의 필수, 앱 배포 및
인프라 구성 자동화
김필중, 솔루션즈 아키텍트
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
강연 중 질문하는 방법
Go to Webinar “Questions” 창에 자신이 질문한
내역이 표시됩니다. 기본적으로 모든 질문은
공개로 답변 됩니다만 본인만 답변을 받고 싶으면
(비공개)라고 하고 질문해 주시면 됩니다.
본 컨텐츠는 고객의 편의를 위해 AWS 서비스 설명을 위해 온라인 세미나용으로 별도로 제작, 제공된 것입니다. 만약 AWS
사이트와 컨텐츠 상에서 차이나 불일치가 있을 경우, AWS 사이트(aws.amazon.com)가 우선합니다. 또한 AWS 사이트 상에서
한글 번역문과 영어 원문에 차이나 불일치가 있을 경우(번역의 지체로 인한 경우 등 포함), 영어 원문이 우선합니다.
AWS는 본 컨텐츠에 포함되거나 컨텐츠를 통하여 고객에게 제공된 일체의 정보, 콘텐츠, 자료, 제품(소프트웨어 포함) 또는 서비스를 이용함으로 인하여 발생하는 여하한 종류의 손해에 대하여
어떠한 책임도 지지 아니하며, 이는 직접 손해, 간접 손해, 부수적 손해, 징벌적 손해 및 결과적 손해를 포함하되 이에 한정되지 아니합니다.
고지 사항(Disclaimer)
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
현대적 애플리케이션 개발
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
새로운 표준인 현대의 디지털 비지니스
47%
의 CEO가 이사회에서
디지털 비지니스의
발전에 도전을 받고
있다고 말하고
있습니다
79%
의 CIO는 디지털
비지니스로 인해 IT
조직이 변화를 보다 잘
준비하고 있다고 믿고
있습니다
67%
의 모든 비지니스
리더들이 경쟁력
유지를 위해 디지털화
속도를 높여야 된다고
생각하고 있습니다.
Source: Gartner
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
경쟁 우위 유지
피드백아이디어
실험
혁신
플라이 휠
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
현대적 애플리케이션 체크리스트
• CI/CD로 고품질 기능을 신속하게 출시
• 코드를 사용하여 애플리케이션과 인프라 모델링
• 서버리스 기술로 최대한 구축
• 마이크로서비스 모음으로 앱 구조화
• 모니터링을 통해 애플리케이션 동작에 대한 통찰력 확보
• 전체 앱 라이프사이클에서 보안 및 규정 준수 적용
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
현대적 애플리케이션 개발은
빠른 혁신을 가능하게함으로써
차별화된 경쟁력을 만듭니다.
자동화 (앱 배포 및 인프라 구성)
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
자동화
인프라 구성 자동화
애플리케이션 배포 자동화
애플리케이션을 더 효율적이고, 안전하며, 빠르게 배포
애플리케이션 코드 체크인, 빌드, 테스트, 배포
서비스에 필요한 리소스 프로비저닝
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CI/CD의 효과
배포 빈도 매주 - 매달 매시 - 매일
리드 타임 변화 1 - 6개월 1 - 7주
실패율 변화 46-60% 0-15%
소프트웨어 팀이 하는
작업의 48%
Source: 2018 DORA State of DevOps Report
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
배포를 위한 릴리즈 프로세스
소스 빌드 테스트 프로덕션
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
배포를 위한 릴리즈 프로세스
소스 빌드 테스트 프로덕션
• 타 시스템과
통합 테스트
• 부하 테스트
• UI 테스트
• 보안 테스트
• 소스 코드
체크인
• 코드 상호 검토
• 코드 컴파일
• 유닛 테스트
• 스타일 체크
• 컨테이너
이미지와 함수
배포 패키지
제작
• 프로덕션
환경으로 배포
• 프로덕션에서의
빠른 에러
탐지를 위한
모니터 코드
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
앱 배포 및 인프라 구성 자동화
코드로서의
인프라
지속적
배포
지속적
통합
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
앱 배포 및 인프라 구성 자동화
코드로서의
인프라
지속적
배포
지속적
통합
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
지속적 통합의 목표
1. 새 코드가 체크인 되면 자동으로 새 릴리즈 시작
2. 일관되고 반복 가능한 환경에서 코드 빌드 및 테스트
3. 배포 준비가 완료된 아티팩트를 항시 보유
4. 빌드 실패 시 지속적인 피드백 루프가 있음
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS CodePipeline
• 빠르고 신뢰할 수 있는 애플리케이션
업데이트를 위한 지속적인 배달 서비스
• 소프트웨어 릴리즈 프로세스 모델링 및 시각화
• 코드가 변경될 때 마다 빌드, 테스트, 배포
• 타사 도구 및 AWS와 통합
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodePipeline: 릴리즈 프로세스 모델링
MyApp
CodeCommit
Source
Build
CodeCommit
Build
DeployToInteg
CodeDeploy
Integration
IntegTest
End2EndTester
DeployToProd
CodeDeploy
Production
소스
빌드
스택 통합을 위한 배포
통합 테스트
프로덕션 배포
Pipeline Run
Action
Stage
Pipeline
소스 변경
• 파이프라인 시작
• 다른 액션에서 사용될 아티팩트 생성
Change 1
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS CodePipeline: 지원하는 소스
최신 소스 코드를 가져와 자동으로 릴리즈 수행
• Pick branch
• AWS CodeCommit
• GitHub
오브텍트 또는 폴더
Amazon Simple
Storage Service
(Amazon S3)
Docker 태그
Amazon Elastic
Container
Registry
(Amazon ECR)
브랜치
AWS CodeCommit
GitHub
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodePipeline: ECR 소스
소스 코드:
“master” 브랜치
ECR 리포지토리:
“release” 태그
빌드
단계
배포
단계
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS CodeBuild
• 소스 코드를 컴파일, 테스트, 패키징하는 완전
관리형 빌드 서비스
• 지속적으로 확장 및 여러 빌드 동시 처리
• 관리할 빌드 서버 없음
• 사용한 컴퓨팅 리소스에 대해서만 분단위로
과금
• Amazon CloudWatch Events를 통해 빌드
모니터링
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS CodeBuild
• 각 빌드는 일관된 불변 환경을 위해 새로운
Docker 컨테이너에서 실행
• Docker 및 AWS CLI는 모든 공식 CodeBuild
이미지에 설치
• Docker 이미지를 사용하여 사용자 요구에
적합한 사용자 지정 빌드 환경 제공
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeBuild: Lambda buildspec
version: 0.2
phases:
build:
commands:
- npm ci
- npm test
- >
aws cloudformation package
--template-file template.yml
--output-template template-output.yml
--s3_bucket $BUCKET
artifacts:
type: zip
files:
- template-output.yml
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeBuild: Docker buildspec
version: 0.2
phases:
build:
commands:
- $(aws ecr get-login --no-include-email)
- docker build -t $IMAGE_REPO_NAME:$IMAGE_TAG .
- docker tag $IMAGE_REPO_NAME:$IMAGE_TAG $ECR_REPO:$IMAGE_TAG
- docker push $ECR_REPO:$IMAGE_TAG
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
앱 배포 및 인프라 구성 자동화
코드로서의
인프라
지속적
배포
지속적
통합
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
지속적 배포의 목표
1. 테스트를 위해 스테이징 환경에 새로운 변경 사항을 자동으로 배포
2. 사용자에게 주는 영향 없이 안전하게 프로덕션으로 배포
3. 사용자에게 신속하게 제공: 배포 빈도를 높이고, 리드 타임을
줄이고, 실패율을 줄임
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS CodeDeploy
• 모든 인스턴스와 Lambda로 코드 배포를
자동화
• 애플리케이션 업데이트의 복잡성을 처리
• 애플리케이션 배포 중 다운타임 최소화
• 오류 감지 시 자동으로 롤백
• Amazon EC2, Lambda, 온프레미스 서버에
배포
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeDeploy: Lambda 배포
• Lambda 함수 가중치 별칭을 사용하여 트래픽을 이동
• Canary 또는 Linear 중 선택
• 유효성 검사 훅으로 배포의 각 단계에서 테스트가 가능
• 훅 실패 또는 CloudWatch 알람 발생 시 수초 내의 빠른 롤백 가능
• 배포 상태 및 기록을 콘솔, API, Amazon Simple Notification
(Amazon SNS)알림, CloudWatch Events로 모니터링
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CodeDeploy: ECS Blue/Green 배포
• Green 작업을 프로비전하고 로드밸런서에서 트래픽을 전환
• 유효성 검사 훅으로 배포 각 단계에서 테스트 가능
• 훅 실패 또는 CloudWatch 알람 발생 시 수초 내의 빠른 롤백 가능
• 배포 상태 및 기록을 콘솔, API, Amazon Simple Notification
(Amazon SNS)알림, CloudWatch Events로 모니터링
• CodePipeline에서 CodeDeploy-ECS 배포 작업을 사용하거나
Jenkins에서 ”aws ecs deploy” 명령 사용
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
앱 배포 및 인프라 구성 자동화
코드로서의
인프라
지속적
배포
지속적
통합
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
코드로서의 인프라의 목적
1. 인프라 변경 사항을 반복적이고 예측 가능하게 함
2. 코드 변경과 동일한 도구를 사용하여 인프라 변경 사항 릴리즈
3. 스테이징 환경에서 프로덕션 환경을 복제하여 지속적인 테스트를
가능하게 함
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS CloudFormation
• 클라우드 인프라 템플릿을 정의하기 위한 언어
• AWS 리소스 프로비저닝
• CI/CD 개발, 관리 도구와 통합
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
코드로서의 인프라 (IaC) 릴리즈
“Master”
브랜치
템플릿 준비 ChangeSet 생성
및 실행
ChangeSet 생성
및 실행
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Serverless Application Model (SAM)
https://aws.amazon.com/serverless/sam/
• 서버리스 애플리케이션 구축을 위한 오픈 소스
프레임워크
• 함수, API, 데이터베이스, 이벤트 소스 매핑을
표현하는 약식 문법
• 배포 시 SAM 구문을 AWS CloudFormation
구문으로 변환 및 확장
• 모든 AWS CloudFormation 리소스 타입을 지원
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
SAM 템플릿
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
GetFunction:
Type: AWS::Serverless::Function
Properties:
Handler: index.get
Runtime: nodejs6.10
CodeUri: src/
Policies: AmazonDynamoDBReadOnlyAccess
Events:
GetResource:
Type: Api
Properties:
Path: /resource/{resourceId}
Method: get
Table:
Type: AWS::Serverless::SimpleTable
18줄의 SAM 구문으로 많은
리소스를 생성:
• AWS Lambda 함수
• Amazon API Gateway
• Amazon DynamoDB
테이블
• AWS IAM 역할
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Cloud Development Kit (AWS CDK)
재사용 가능한 구성 요소로 클라우드 인프라를 모델링하기 위한 다양한 언어를
지원하는 프레임워크
AWS CloudFormation
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Cloud Development Kit (AWS CDK)
AWS CDK 앱에서부터 인프라가 구성될 때까지의 흐름
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CDK 템플릿
import ec2 = require('@aws-cdk/aws-ec2');
import ecs = require('@aws-cdk/aws-ecs');
import cdk = require('@aws-cdk/cdk');
class FargateStack extends cdk.Stack {
constructor(parent: cdk.App, name: string, props?: cdk.StackProps) {
super(parent, name, props);
const vpc = new ec2.VpcNetwork(this, 'MyVpc', { maxAZs: 2 });
const cluster = new ecs.Cluster(this, 'Cluster', { vpc });
new ecs.LoadBalancedFargateService(
this, "FargateService", {
cluster,
image: ecs.DockerHub.image("amazon/amazon-ecs-sample"),
});
}
}
const app = new cdk.App();
new FargateStack(app, ‘Fargate');
app.run();
VPC, 서브넷, 보안
그룹, IGW, NAT,
Route tables을
포함하는 고수준
VPC 클래스
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CDK 템플릿
import ec2 = require('@aws-cdk/aws-ec2');
import ecs = require('@aws-cdk/aws-ecs');
import cdk = require('@aws-cdk/cdk');
class FargateStack extends cdk.Stack {
constructor(parent: cdk.App, name: string, props?: cdk.StackProps) {
super(parent, name, props);
const vpc = new ec2.VpcNetwork(this, 'MyVpc', { maxAZs: 2 });
const cluster = new ecs.Cluster(this, 'Cluster', { vpc });
new ecs.LoadBalancedFargateService(
this, "FargateService", {
cluster,
image: ecs.DockerHub.image("amazon/amazon-ecs-sample"),
});
}
}
const app = new cdk.App();
new FargateStack(app, ‘Fargate');
app.run();
ECS 서비스, ECS
작업 정의, ALB,
리스너 규칙, 타겟
그룹, Route 53
alias 레코드를
포함하는 고수준
Fargate 클래스
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CDK 템플릿
import ec2 = require('@aws-cdk/aws-ec2');
import ecs = require('@aws-cdk/aws-ecs');
import cdk = require('@aws-cdk/cdk');
class FargateStack extends cdk.Stack {
constructor(parent: cdk.App, name: string, props?: cdk.StackProps) {
super(parent, name, props);
const vpc = new ec2.VpcNetwork(this, 'MyVpc', { maxAZs: 2 });
const cluster = new ecs.Cluster(this, 'Cluster', { vpc });
new ecs.LoadBalancedFargateService(
this, "FargateService", {
cluster,
image: ecs.DockerHub.image("amazon/amazon-ecs-sample"),
});
}
}
const app = new cdk.App();
new FargateStack(app, ‘Fargate');
app.run();
22줄의 Typescript
코드로 400줄
넘는
CloudFormation
템플릿을 생성
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS CDK로 파이프라인 모델링
• 객체 지향 언어 (Object-Oriented Language)로 복사-붙여넣기
작업을 최소화
• 하나의 클래스에서 마이크로서비스 파이프라인을 작성하고
얼마든지 재사용
• AWS CDK는 AWS Identity and Access Management (IAM) 역할
규칙의 자동 구성을 포함한 CodePipeline에서의 파이프라인
모델링을 위한 많은 고수준 construct들을 포함
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CDK 파이프라인: Construct
export class MyMicroservicePipeline extends cdk.Construct {
constructor(parent: cdk.Construct, name: string, props: MyMicroservicePipelineProps) {
super(parent, name);
const pipeline = new codepipeline.Pipeline(this, 'Pipeline', {
pipelineName: props.serviceName,
});
const githubAccessToken = new cdk.SecretParameter(this, 'GitHubToken',
{ ssmParameter: 'GitHubToken' });
new codepipeline.GitHubSourceAction(this, 'GitHubSource', {
stage: pipeline.addStage('Source'),
owner: 'myorg',
repo: props.serviceName,
oauthToken: githubAccessToken.value
});
…
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CDK 파이프라인: Stack
import cdk = require('@aws-cdk/cdk');
import { MyMicroservicePipeline } from './pipeline';
class MyMicroservicePipelinesStack extends cdk.Stack {
constructor(parent: cdk.App, name: string, props?: cdk.StackProps) {
super(parent, name, props);
new MyMicroservicePipeline(this, 'Pipeline1', { 'serviceName': 'Microservice1' });
new MyMicroservicePipeline(this, 'Pipeline2', { 'serviceName': 'Microservice2' });
new MyMicroservicePipeline(this, 'Pipeline3', { 'serviceName': 'Microservice3' });
new MyMicroservicePipeline(this, 'Pipeline4', { 'serviceName': 'Microservice4' });
}
}
const app = new cdk.App();
new MyMicroservicePipelinesStack(app, 'MyMicroservicePipelines');
app.run();
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
클릭스트림 애플리케이션
AWS CDK App
PipelineStack
AWS CodeCommit AWS CodeBuild AWS CloudFormation
코드 체크인
AWS CodePipeline
StreamAppStack
Amazon Kinesis
Data Streams
클릭스트림
AWS Lambda Amazon DynamoDB
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Source
Source
CodeCommit
Build
CdkCodeBuild
CodeBuild
LambdaCodeBuild
CodeBuild
Deploy
DevEnvDeploy
CloudFormation
Approval
Manual Approval
Review
Deploy
ProdEnvDeploy
CloudFormation
• Dev 환경 배포와 마찬가지로 Prod 환경에 실제
애플리케이션 배포
• 승인을 기다림
• CDK 앱으로 부터 생성된 StreamAppStack의 템플릿을
배포
• Lambda 함수 코드는 앞서 LambdaCodeBuild
프로젝트에 의해 생성된 패키지 파일의 위치를 전달
• 두개의 CodeBuild 프로젝트를 사용
• CdkCodeBuild 프로젝트는 CDK 앱을 synthesize하여
CloudFormation 템플릿을 생성
• LambdaCodeBuild 프로젝트는 Lambda 함수 코드의
테스트, 빌드 작업을 수행
• CDK 앱과 Lambda 함수 코드는 동일한 리포지토리에
저장
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
다양한 자동화 방법들
• Lambda 가중치 별칭을 통한 안전한 코드 배포 (Canary, Linear)
• Amazon API Gateway Canary 지원을 활용한 코드 배포
• AWS SAM을 사용하여 서버리스 애플리케이션 배포 (AWS
CodeDeploy + Lambda)
• Docker 이미지 태그와 CodeDeploy를 활용한 컨테이너 배포 자동화
• AWS CloudFormation을 사용한 인프라 리소스 구성 자동화
• AWS CDK를 통해 선호하는 프로그래밍 언어로 재사용 가능한
인프라 리소스 구성 자동화
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
현대적 애플리케이션 개발은
빠른 혁신을 가능하게함으로써
차별화된 경쟁력을 만듭니다.
자동화 (앱 배포 및 인프라 구성)
© 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved.
교육
Developing on AWS 과정에서는 AWS SDK를 사용하여 안전하고
확장 가능한 클라우드 애플리케이션을 개발하는 방법을 배웁니다.
또한 코드를 사용하여 AWS와 상호작용하는 방법을 살펴보고, 주요
개념, 모범 사례 및 문제 해결 팁을 설명합니다.
자격증
AWS Certified Developer – Associate
1년 이상의 실무 경험이 있는 개발자 대상
이 시험은 핵심 AWS 서비스의 사용 방법과 기본적인 AWS
아키텍처 모범 사례를 이해하고 있음을 입증해줍니다. 해당
자격증을 통해 AWS를 사용하여 클라우드 기반 애플리케이션을
능숙하게 개발, 배포 및 디버깅할 수 있음을 증명하실 수 있습니다.
AWS 교육 및 자격증을 통해
현대적 애플리케이션 개발에 첫 발을 내딛으세요
자격증
AWS Certified DevOps Engineer –
Professional
2년 이상의 실무 경험이 있는
DevOps 엔지니어 대상
이 시험은 AWS 환경을 프로비저닝하고
운영 및 관리할 수 있음을 입증해줍니다.
해당 자격증을 통해 AWS 플랫폼에서
높은 가용성, 뛰어난 확장성 및 자가
치유 기능이 있는 시스템을 구현할 수
있으며, 운영 프로세스를 자동화할 수
있는 도구를 설계 관리 및 유지할 수
있음을 증명하실 수 있습니다.
https://www.aws.training/ 에서 더 많은 정보를 확인해보세요!
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
aws-korea-marketing@amazon.com
twitter.com/AWSKorea
facebook.com/amazonwebservices.ko
youtube.com/user/AWSKorea
slideshare.net/awskorea
twitch.tv/aws
캠페인 온라인 세미나: 애플리케이션 현대화 및 개발 특집에
참석해주셔서 대단히 감사합니다.
저희가 준비한 내용, 어떻게 보셨나요?
더 나은 세미나를 위하여 설문을 꼭 작성해 주시기 바랍니다.

More Related Content

PDF
[애플리케이션 현대화 및 개발] 클라우드를 통한 현대적 애플리케이션 디자인 및 구축 패턴 - 윤석찬, AWS 수석 테크 에반젤리스트
Amazon Web Services Korea
 
PPTX
Azure App Service
BizTalk360
 
PDF
AWS 클라우드 핵심 서비스로 클라우드 기반 아키텍처 빠르게 구성하기 - 문종민 솔루션즈 아키텍트, AWS :: AWS Summit Seo...
Amazon Web Services Korea
 
PDF
KB국민은행은 시작했다 -  쉽고 빠른 클라우드 거버넌스 적용 전략 - 강병억 AWS 솔루션즈 아키텍트 / 장강홍 클라우드플랫폼단 차장, ...
Amazon Web Services Korea
 
PPTX
Container Orchestration using kubernetes
Puneet Kumar Bhatia (MBA, ITIL V3 Certified)
 
PDF
[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...
Amazon Web Services Korea
 
PDF
Amazon EKS를 통한 빠르고 편리한 컨테이너 플랫폼 활용 – 이일구 AWS 솔루션즈 아키텍트:: AWS Cloud Week - Ind...
Amazon Web Services Korea
 
PPTX
Event-driven microservices
Andrew Schofield
 
[애플리케이션 현대화 및 개발] 클라우드를 통한 현대적 애플리케이션 디자인 및 구축 패턴 - 윤석찬, AWS 수석 테크 에반젤리스트
Amazon Web Services Korea
 
Azure App Service
BizTalk360
 
AWS 클라우드 핵심 서비스로 클라우드 기반 아키텍처 빠르게 구성하기 - 문종민 솔루션즈 아키텍트, AWS :: AWS Summit Seo...
Amazon Web Services Korea
 
KB국민은행은 시작했다 -  쉽고 빠른 클라우드 거버넌스 적용 전략 - 강병억 AWS 솔루션즈 아키텍트 / 장강홍 클라우드플랫폼단 차장, ...
Amazon Web Services Korea
 
Container Orchestration using kubernetes
Puneet Kumar Bhatia (MBA, ITIL V3 Certified)
 
[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...
Amazon Web Services Korea
 
Amazon EKS를 통한 빠르고 편리한 컨테이너 플랫폼 활용 – 이일구 AWS 솔루션즈 아키텍트:: AWS Cloud Week - Ind...
Amazon Web Services Korea
 
Event-driven microservices
Andrew Schofield
 

What's hot (20)

PDF
더욱 진화하는 AWS 네트워크 보안 - 신은수 AWS 시큐리티 스페셜리스트 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
Amazon Web Services Korea
 
PPTX
9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)
Amazon Web Services Korea
 
PPTX
Azure App Service Deep Dive
Azure Riyadh User Group
 
PDF
[AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
Amazon Web Services Korea
 
PDF
다양한 솔루션으로 만들어가는 AWS 네트워크 보안::이경수::AWS Summit Seoul 2018
Amazon Web Services Korea
 
PDF
IDC 서버 몽땅 AWS로 이전하기 위한 5가지 방법 - 윤석찬 (AWS 테크에반젤리스트)
Amazon Web Services Korea
 
PPTX
Azure Hub spoke v1.0
Sayed Ashraf Kazi
 
PDF
What is Docker Architecture | Edureka
Edureka!
 
PDF
진정한 하이브리드 환경을 위한 올바른 선택, AWS Outposts! - 강동환 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
Amazon Web Services Korea
 
PPTX
AWS 기반 대규모 트래픽 견디기 - 장준엽 (구로디지털 모임) :: AWS Community Day 2017
AWSKRUG - AWS한국사용자모임
 
PDF
클라우드 여정의 시작 - 클라우드 전문가 조직의 프랙티컬 가이드-김학민, AWS SA Manager::AWS 마이그레이션 A to Z 웨비나
Amazon Web Services Korea
 
PDF
Microservices architecture
Abdelghani Azri
 
PDF
AWS 상의 컨테이너 서비스 소개 ECS, EKS - 이종립 / Principle Enterprise Evangelist @베스핀글로벌
BESPIN GLOBAL
 
PPTX
Springboot Microservices
NexThoughts Technologies
 
PDF
AWS DirectConnect 구성 가이드 (김용우) - 파트너 웨비나 시리즈
Amazon Web Services Korea
 
PDF
IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021
AWSKRUG - AWS한국사용자모임
 
PDF
AWS 6월 웨비나 | Amazon VPC Deep Dive (김상필 솔루션즈아키텍트)
Amazon Web Services Korea
 
PDF
금융 서비스 패러다임의 전환 가속화 시대, 신한금융투자의 Cloud First 전략 - 신중훈 AWS 솔루션즈 아키텍트 / 최성봉 클라우...
Amazon Web Services Korea
 
PDF
[AWS Builders] AWS와 함께하는 클라우드 컴퓨팅
Amazon Web Services Korea
 
PDF
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
Amazon Web Services Korea
 
더욱 진화하는 AWS 네트워크 보안 - 신은수 AWS 시큐리티 스페셜리스트 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
Amazon Web Services Korea
 
9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)
Amazon Web Services Korea
 
Azure App Service Deep Dive
Azure Riyadh User Group
 
[AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
Amazon Web Services Korea
 
다양한 솔루션으로 만들어가는 AWS 네트워크 보안::이경수::AWS Summit Seoul 2018
Amazon Web Services Korea
 
IDC 서버 몽땅 AWS로 이전하기 위한 5가지 방법 - 윤석찬 (AWS 테크에반젤리스트)
Amazon Web Services Korea
 
Azure Hub spoke v1.0
Sayed Ashraf Kazi
 
What is Docker Architecture | Edureka
Edureka!
 
진정한 하이브리드 환경을 위한 올바른 선택, AWS Outposts! - 강동환 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
Amazon Web Services Korea
 
AWS 기반 대규모 트래픽 견디기 - 장준엽 (구로디지털 모임) :: AWS Community Day 2017
AWSKRUG - AWS한국사용자모임
 
클라우드 여정의 시작 - 클라우드 전문가 조직의 프랙티컬 가이드-김학민, AWS SA Manager::AWS 마이그레이션 A to Z 웨비나
Amazon Web Services Korea
 
Microservices architecture
Abdelghani Azri
 
AWS 상의 컨테이너 서비스 소개 ECS, EKS - 이종립 / Principle Enterprise Evangelist @베스핀글로벌
BESPIN GLOBAL
 
Springboot Microservices
NexThoughts Technologies
 
AWS DirectConnect 구성 가이드 (김용우) - 파트너 웨비나 시리즈
Amazon Web Services Korea
 
IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021
AWSKRUG - AWS한국사용자모임
 
AWS 6월 웨비나 | Amazon VPC Deep Dive (김상필 솔루션즈아키텍트)
Amazon Web Services Korea
 
금융 서비스 패러다임의 전환 가속화 시대, 신한금융투자의 Cloud First 전략 - 신중훈 AWS 솔루션즈 아키텍트 / 최성봉 클라우...
Amazon Web Services Korea
 
[AWS Builders] AWS와 함께하는 클라우드 컴퓨팅
Amazon Web Services Korea
 
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
Amazon Web Services Korea
 
Ad

Similar to [애플리케이션 현대화 및 개발] 현대적 애플리케이션 개발의 필수, 앱 배포 및 인프라 구성 자동화 - 김필중, AWS 솔루션즈 아키텍트 (20)

PDF
컨테이너와 서버리스 기반 CI/CD 파이프라인 구성하기 - 김필중 솔루션즈 아키텍트, AWS / 강승욱 솔루션즈 아키텍트, AWS :: A...
Amazon Web Services Korea
 
PDF
[애플리케이션 현대화 및 개발] 현대적 애플리케이션 개발을 위한 AWS 컨테이너 활용사례 및 주요 도구 알아보기 - 정영준, AWS 솔루션...
Amazon Web Services Korea
 
PPTX
서버리스 애플리케이션 개발 워크플로우 자동화 (CI/CD) - 김필중:: AWS 현대적 애플리케이션 개발
Amazon Web Services Korea
 
PDF
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
Amazon Web Services Korea
 
PDF
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
Amazon Web Services Korea
 
PDF
AWS Fargate와 Amazon ECS를 활용한 CI/CD 모범사례 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Game Mast...
Amazon Web Services Korea
 
PDF
AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)
Amazon Web Services Korea
 
PDF
데브옵스(DevOps) 문화 모범 사례와 구현 도구 살펴보기 – 박선준 :: AWS Builders Online Series
Amazon Web Services Korea
 
PDF
데브옵스 엔지니어를 위한 신규 운영 서비스 - 김필중, AWS 개발 전문 솔루션즈 아키텍트 / 김현민, 메가존클라우드 솔루션즈 아키텍트 :...
Amazon Web Services Korea
 
PDF
다양한 배포 기법과 AWS에서 구축하는 CI/CD 파이프라인 l 안효빈 솔루션즈 아키텍트
Amazon Web Services Korea
 
PDF
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
Amazon Web Services Korea
 
PDF
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
Amazon Web Services Korea
 
PDF
DevOps를 위한 AWS 서비스 및 개발도구 -김상필 솔루션아키텍트 :: AWS 파트너 테크시프트 세미나
Amazon Web Services Korea
 
PDF
클라이드 네이티브 기반 Twelve Factor 앱 개발 - 윤석찬, AWS 테크에반젤리스트 :: AWS Summit Online Kore...
Amazon Web Services Korea
 
PDF
데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)
Amazon Web Services Korea
 
PDF
인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017
Amazon Web Services Korea
 
PDF
[Games on AWS 2019] AWS 사용자를 위한 만랩 달성 트랙 | 코드 기반으로 인프라 운영하기 - 박성훈 NEOWIZ 팀장,...
Amazon Web Services Korea
 
PPTX
코드로 인프라 관리하기 - 자동화 툴 소개
태준 문
 
PDF
[2017 Gaming on AWS] 도커 컨테이너 배포 자동화 실습 (롤링 및 Blue/Green 배포)
Amazon Web Services Korea
 
PDF
[AWS Dev Day] 앱 현대화 | 코드 기반 인프라(IaC)를 활용한 현대 애플리케이션 개발 가속화, 우리도 할 수 있어요 - 김필중...
Amazon Web Services Korea
 
컨테이너와 서버리스 기반 CI/CD 파이프라인 구성하기 - 김필중 솔루션즈 아키텍트, AWS / 강승욱 솔루션즈 아키텍트, AWS :: A...
Amazon Web Services Korea
 
[애플리케이션 현대화 및 개발] 현대적 애플리케이션 개발을 위한 AWS 컨테이너 활용사례 및 주요 도구 알아보기 - 정영준, AWS 솔루션...
Amazon Web Services Korea
 
서버리스 애플리케이션 개발 워크플로우 자동화 (CI/CD) - 김필중:: AWS 현대적 애플리케이션 개발
Amazon Web Services Korea
 
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
Amazon Web Services Korea
 
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
Amazon Web Services Korea
 
AWS Fargate와 Amazon ECS를 활용한 CI/CD 모범사례 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Game Mast...
Amazon Web Services Korea
 
AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)
Amazon Web Services Korea
 
데브옵스(DevOps) 문화 모범 사례와 구현 도구 살펴보기 – 박선준 :: AWS Builders Online Series
Amazon Web Services Korea
 
데브옵스 엔지니어를 위한 신규 운영 서비스 - 김필중, AWS 개발 전문 솔루션즈 아키텍트 / 김현민, 메가존클라우드 솔루션즈 아키텍트 :...
Amazon Web Services Korea
 
다양한 배포 기법과 AWS에서 구축하는 CI/CD 파이프라인 l 안효빈 솔루션즈 아키텍트
Amazon Web Services Korea
 
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
Amazon Web Services Korea
 
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
Amazon Web Services Korea
 
DevOps를 위한 AWS 서비스 및 개발도구 -김상필 솔루션아키텍트 :: AWS 파트너 테크시프트 세미나
Amazon Web Services Korea
 
클라이드 네이티브 기반 Twelve Factor 앱 개발 - 윤석찬, AWS 테크에반젤리스트 :: AWS Summit Online Kore...
Amazon Web Services Korea
 
데브옵스(DevOps)의 현재와 미래 - ChatOps & VoiceOps (윤석찬)
Amazon Web Services Korea
 
인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017
Amazon Web Services Korea
 
[Games on AWS 2019] AWS 사용자를 위한 만랩 달성 트랙 | 코드 기반으로 인프라 운영하기 - 박성훈 NEOWIZ 팀장,...
Amazon Web Services Korea
 
코드로 인프라 관리하기 - 자동화 툴 소개
태준 문
 
[2017 Gaming on AWS] 도커 컨테이너 배포 자동화 실습 (롤링 및 Blue/Green 배포)
Amazon Web Services Korea
 
[AWS Dev Day] 앱 현대화 | 코드 기반 인프라(IaC)를 활용한 현대 애플리케이션 개발 가속화, 우리도 할 수 있어요 - 김필중...
Amazon Web Services Korea
 
Ad

More from Amazon Web Services Korea (20)

PDF
[D3T1S01] Gen AI를 위한 Amazon Aurora 활용 사례 방법
Amazon Web Services Korea
 
PDF
[D3T1S06] Neptune Analytics with Vector Similarity Search
Amazon Web Services Korea
 
PDF
[D3T1S03] Amazon DynamoDB design puzzlers
Amazon Web Services Korea
 
PDF
[D3T1S04] Aurora PostgreSQL performance monitoring and troubleshooting by use...
Amazon Web Services Korea
 
PDF
[D3T1S07] AWS S3 - 클라우드 환경에서 데이터베이스 보호하기
Amazon Web Services Korea
 
PDF
[D3T1S05] Aurora 혼합 구성 아키텍처를 사용하여 예상치 못한 트래픽 급증 대응하기
Amazon Web Services Korea
 
PDF
[D3T1S02] Aurora Limitless Database Introduction
Amazon Web Services Korea
 
PDF
[D3T2S01] Amazon Aurora MySQL 메이저 버전 업그레이드 및 Amazon B/G Deployments 실습
Amazon Web Services Korea
 
PDF
[D3T2S03] Data&AI Roadshow 2024 - Amazon DocumentDB 실습
Amazon Web Services Korea
 
PDF
AWS Modern Infra with Storage Roadshow 2023 - Day 2
Amazon Web Services Korea
 
PDF
AWS Modern Infra with Storage Roadshow 2023 - Day 1
Amazon Web Services Korea
 
PDF
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...
Amazon Web Services Korea
 
PDF
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
Amazon Web Services Korea
 
PDF
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...
Amazon Web Services Korea
 
PDF
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
Amazon Web Services Korea
 
PDF
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
Amazon Web Services Korea
 
PDF
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...
Amazon Web Services Korea
 
PDF
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
Amazon Web Services Korea
 
PDF
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
Amazon Web Services Korea
 
PDF
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...
Amazon Web Services Korea
 
[D3T1S01] Gen AI를 위한 Amazon Aurora 활용 사례 방법
Amazon Web Services Korea
 
[D3T1S06] Neptune Analytics with Vector Similarity Search
Amazon Web Services Korea
 
[D3T1S03] Amazon DynamoDB design puzzlers
Amazon Web Services Korea
 
[D3T1S04] Aurora PostgreSQL performance monitoring and troubleshooting by use...
Amazon Web Services Korea
 
[D3T1S07] AWS S3 - 클라우드 환경에서 데이터베이스 보호하기
Amazon Web Services Korea
 
[D3T1S05] Aurora 혼합 구성 아키텍처를 사용하여 예상치 못한 트래픽 급증 대응하기
Amazon Web Services Korea
 
[D3T1S02] Aurora Limitless Database Introduction
Amazon Web Services Korea
 
[D3T2S01] Amazon Aurora MySQL 메이저 버전 업그레이드 및 Amazon B/G Deployments 실습
Amazon Web Services Korea
 
[D3T2S03] Data&AI Roadshow 2024 - Amazon DocumentDB 실습
Amazon Web Services Korea
 
AWS Modern Infra with Storage Roadshow 2023 - Day 2
Amazon Web Services Korea
 
AWS Modern Infra with Storage Roadshow 2023 - Day 1
Amazon Web Services Korea
 
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...
Amazon Web Services Korea
 
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
Amazon Web Services Korea
 
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...
Amazon Web Services Korea
 
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
Amazon Web Services Korea
 
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
Amazon Web Services Korea
 
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...
Amazon Web Services Korea
 
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
Amazon Web Services Korea
 
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
Amazon Web Services Korea
 
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...
Amazon Web Services Korea
 

[애플리케이션 현대화 및 개발] 현대적 애플리케이션 개발의 필수, 앱 배포 및 인프라 구성 자동화 - 김필중, AWS 솔루션즈 아키텍트

  • 1. 현대적 애플리케이션 개발의 필수, 앱 배포 및 인프라 구성 자동화 김필중, 솔루션즈 아키텍트
  • 2. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 강연 중 질문하는 방법 Go to Webinar “Questions” 창에 자신이 질문한 내역이 표시됩니다. 기본적으로 모든 질문은 공개로 답변 됩니다만 본인만 답변을 받고 싶으면 (비공개)라고 하고 질문해 주시면 됩니다. 본 컨텐츠는 고객의 편의를 위해 AWS 서비스 설명을 위해 온라인 세미나용으로 별도로 제작, 제공된 것입니다. 만약 AWS 사이트와 컨텐츠 상에서 차이나 불일치가 있을 경우, AWS 사이트(aws.amazon.com)가 우선합니다. 또한 AWS 사이트 상에서 한글 번역문과 영어 원문에 차이나 불일치가 있을 경우(번역의 지체로 인한 경우 등 포함), 영어 원문이 우선합니다. AWS는 본 컨텐츠에 포함되거나 컨텐츠를 통하여 고객에게 제공된 일체의 정보, 콘텐츠, 자료, 제품(소프트웨어 포함) 또는 서비스를 이용함으로 인하여 발생하는 여하한 종류의 손해에 대하여 어떠한 책임도 지지 아니하며, 이는 직접 손해, 간접 손해, 부수적 손해, 징벌적 손해 및 결과적 손해를 포함하되 이에 한정되지 아니합니다. 고지 사항(Disclaimer)
  • 3. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 현대적 애플리케이션 개발
  • 4. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 새로운 표준인 현대의 디지털 비지니스 47% 의 CEO가 이사회에서 디지털 비지니스의 발전에 도전을 받고 있다고 말하고 있습니다 79% 의 CIO는 디지털 비지니스로 인해 IT 조직이 변화를 보다 잘 준비하고 있다고 믿고 있습니다 67% 의 모든 비지니스 리더들이 경쟁력 유지를 위해 디지털화 속도를 높여야 된다고 생각하고 있습니다. Source: Gartner
  • 5. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 경쟁 우위 유지 피드백아이디어 실험 혁신 플라이 휠
  • 6. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 현대적 애플리케이션 체크리스트 • CI/CD로 고품질 기능을 신속하게 출시 • 코드를 사용하여 애플리케이션과 인프라 모델링 • 서버리스 기술로 최대한 구축 • 마이크로서비스 모음으로 앱 구조화 • 모니터링을 통해 애플리케이션 동작에 대한 통찰력 확보 • 전체 앱 라이프사이클에서 보안 및 규정 준수 적용
  • 7. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 현대적 애플리케이션 개발은 빠른 혁신을 가능하게함으로써 차별화된 경쟁력을 만듭니다. 자동화 (앱 배포 및 인프라 구성)
  • 8. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 자동화 인프라 구성 자동화 애플리케이션 배포 자동화 애플리케이션을 더 효율적이고, 안전하며, 빠르게 배포 애플리케이션 코드 체크인, 빌드, 테스트, 배포 서비스에 필요한 리소스 프로비저닝
  • 9. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. CI/CD의 효과 배포 빈도 매주 - 매달 매시 - 매일 리드 타임 변화 1 - 6개월 1 - 7주 실패율 변화 46-60% 0-15% 소프트웨어 팀이 하는 작업의 48% Source: 2018 DORA State of DevOps Report
  • 10. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 배포를 위한 릴리즈 프로세스 소스 빌드 테스트 프로덕션
  • 11. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 배포를 위한 릴리즈 프로세스 소스 빌드 테스트 프로덕션 • 타 시스템과 통합 테스트 • 부하 테스트 • UI 테스트 • 보안 테스트 • 소스 코드 체크인 • 코드 상호 검토 • 코드 컴파일 • 유닛 테스트 • 스타일 체크 • 컨테이너 이미지와 함수 배포 패키지 제작 • 프로덕션 환경으로 배포 • 프로덕션에서의 빠른 에러 탐지를 위한 모니터 코드
  • 12. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 앱 배포 및 인프라 구성 자동화 코드로서의 인프라 지속적 배포 지속적 통합
  • 13. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 앱 배포 및 인프라 구성 자동화 코드로서의 인프라 지속적 배포 지속적 통합
  • 14. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 지속적 통합의 목표 1. 새 코드가 체크인 되면 자동으로 새 릴리즈 시작 2. 일관되고 반복 가능한 환경에서 코드 빌드 및 테스트 3. 배포 준비가 완료된 아티팩트를 항시 보유 4. 빌드 실패 시 지속적인 피드백 루프가 있음
  • 15. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS CodePipeline • 빠르고 신뢰할 수 있는 애플리케이션 업데이트를 위한 지속적인 배달 서비스 • 소프트웨어 릴리즈 프로세스 모델링 및 시각화 • 코드가 변경될 때 마다 빌드, 테스트, 배포 • 타사 도구 및 AWS와 통합
  • 16. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodePipeline: 릴리즈 프로세스 모델링 MyApp CodeCommit Source Build CodeCommit Build DeployToInteg CodeDeploy Integration IntegTest End2EndTester DeployToProd CodeDeploy Production 소스 빌드 스택 통합을 위한 배포 통합 테스트 프로덕션 배포 Pipeline Run Action Stage Pipeline 소스 변경 • 파이프라인 시작 • 다른 액션에서 사용될 아티팩트 생성 Change 1
  • 17. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS CodePipeline: 지원하는 소스 최신 소스 코드를 가져와 자동으로 릴리즈 수행 • Pick branch • AWS CodeCommit • GitHub 오브텍트 또는 폴더 Amazon Simple Storage Service (Amazon S3) Docker 태그 Amazon Elastic Container Registry (Amazon ECR) 브랜치 AWS CodeCommit GitHub
  • 18. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodePipeline: ECR 소스 소스 코드: “master” 브랜치 ECR 리포지토리: “release” 태그 빌드 단계 배포 단계
  • 19. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS CodeBuild • 소스 코드를 컴파일, 테스트, 패키징하는 완전 관리형 빌드 서비스 • 지속적으로 확장 및 여러 빌드 동시 처리 • 관리할 빌드 서버 없음 • 사용한 컴퓨팅 리소스에 대해서만 분단위로 과금 • Amazon CloudWatch Events를 통해 빌드 모니터링
  • 20. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS CodeBuild • 각 빌드는 일관된 불변 환경을 위해 새로운 Docker 컨테이너에서 실행 • Docker 및 AWS CLI는 모든 공식 CodeBuild 이미지에 설치 • Docker 이미지를 사용하여 사용자 요구에 적합한 사용자 지정 빌드 환경 제공
  • 21. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeBuild: Lambda buildspec version: 0.2 phases: build: commands: - npm ci - npm test - > aws cloudformation package --template-file template.yml --output-template template-output.yml --s3_bucket $BUCKET artifacts: type: zip files: - template-output.yml
  • 22. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeBuild: Docker buildspec version: 0.2 phases: build: commands: - $(aws ecr get-login --no-include-email) - docker build -t $IMAGE_REPO_NAME:$IMAGE_TAG . - docker tag $IMAGE_REPO_NAME:$IMAGE_TAG $ECR_REPO:$IMAGE_TAG - docker push $ECR_REPO:$IMAGE_TAG
  • 23. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 앱 배포 및 인프라 구성 자동화 코드로서의 인프라 지속적 배포 지속적 통합
  • 24. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 지속적 배포의 목표 1. 테스트를 위해 스테이징 환경에 새로운 변경 사항을 자동으로 배포 2. 사용자에게 주는 영향 없이 안전하게 프로덕션으로 배포 3. 사용자에게 신속하게 제공: 배포 빈도를 높이고, 리드 타임을 줄이고, 실패율을 줄임
  • 25. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS CodeDeploy • 모든 인스턴스와 Lambda로 코드 배포를 자동화 • 애플리케이션 업데이트의 복잡성을 처리 • 애플리케이션 배포 중 다운타임 최소화 • 오류 감지 시 자동으로 롤백 • Amazon EC2, Lambda, 온프레미스 서버에 배포
  • 26. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeDeploy: Lambda 배포 • Lambda 함수 가중치 별칭을 사용하여 트래픽을 이동 • Canary 또는 Linear 중 선택 • 유효성 검사 훅으로 배포의 각 단계에서 테스트가 가능 • 훅 실패 또는 CloudWatch 알람 발생 시 수초 내의 빠른 롤백 가능 • 배포 상태 및 기록을 콘솔, API, Amazon Simple Notification (Amazon SNS)알림, CloudWatch Events로 모니터링
  • 27. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. CodeDeploy: ECS Blue/Green 배포 • Green 작업을 프로비전하고 로드밸런서에서 트래픽을 전환 • 유효성 검사 훅으로 배포 각 단계에서 테스트 가능 • 훅 실패 또는 CloudWatch 알람 발생 시 수초 내의 빠른 롤백 가능 • 배포 상태 및 기록을 콘솔, API, Amazon Simple Notification (Amazon SNS)알림, CloudWatch Events로 모니터링 • CodePipeline에서 CodeDeploy-ECS 배포 작업을 사용하거나 Jenkins에서 ”aws ecs deploy” 명령 사용
  • 28. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 앱 배포 및 인프라 구성 자동화 코드로서의 인프라 지속적 배포 지속적 통합
  • 29. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 코드로서의 인프라의 목적 1. 인프라 변경 사항을 반복적이고 예측 가능하게 함 2. 코드 변경과 동일한 도구를 사용하여 인프라 변경 사항 릴리즈 3. 스테이징 환경에서 프로덕션 환경을 복제하여 지속적인 테스트를 가능하게 함
  • 30. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS CloudFormation • 클라우드 인프라 템플릿을 정의하기 위한 언어 • AWS 리소스 프로비저닝 • CI/CD 개발, 관리 도구와 통합
  • 31. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 코드로서의 인프라 (IaC) 릴리즈 “Master” 브랜치 템플릿 준비 ChangeSet 생성 및 실행 ChangeSet 생성 및 실행
  • 32. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Serverless Application Model (SAM) https://aws.amazon.com/serverless/sam/ • 서버리스 애플리케이션 구축을 위한 오픈 소스 프레임워크 • 함수, API, 데이터베이스, 이벤트 소스 매핑을 표현하는 약식 문법 • 배포 시 SAM 구문을 AWS CloudFormation 구문으로 변환 및 확장 • 모든 AWS CloudFormation 리소스 타입을 지원
  • 33. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. SAM 템플릿 AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: GetFunction: Type: AWS::Serverless::Function Properties: Handler: index.get Runtime: nodejs6.10 CodeUri: src/ Policies: AmazonDynamoDBReadOnlyAccess Events: GetResource: Type: Api Properties: Path: /resource/{resourceId} Method: get Table: Type: AWS::Serverless::SimpleTable 18줄의 SAM 구문으로 많은 리소스를 생성: • AWS Lambda 함수 • Amazon API Gateway • Amazon DynamoDB 테이블 • AWS IAM 역할
  • 34. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Cloud Development Kit (AWS CDK) 재사용 가능한 구성 요소로 클라우드 인프라를 모델링하기 위한 다양한 언어를 지원하는 프레임워크 AWS CloudFormation
  • 35. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Cloud Development Kit (AWS CDK) AWS CDK 앱에서부터 인프라가 구성될 때까지의 흐름
  • 36. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. CDK 템플릿 import ec2 = require('@aws-cdk/aws-ec2'); import ecs = require('@aws-cdk/aws-ecs'); import cdk = require('@aws-cdk/cdk'); class FargateStack extends cdk.Stack { constructor(parent: cdk.App, name: string, props?: cdk.StackProps) { super(parent, name, props); const vpc = new ec2.VpcNetwork(this, 'MyVpc', { maxAZs: 2 }); const cluster = new ecs.Cluster(this, 'Cluster', { vpc }); new ecs.LoadBalancedFargateService( this, "FargateService", { cluster, image: ecs.DockerHub.image("amazon/amazon-ecs-sample"), }); } } const app = new cdk.App(); new FargateStack(app, ‘Fargate'); app.run(); VPC, 서브넷, 보안 그룹, IGW, NAT, Route tables을 포함하는 고수준 VPC 클래스
  • 37. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. CDK 템플릿 import ec2 = require('@aws-cdk/aws-ec2'); import ecs = require('@aws-cdk/aws-ecs'); import cdk = require('@aws-cdk/cdk'); class FargateStack extends cdk.Stack { constructor(parent: cdk.App, name: string, props?: cdk.StackProps) { super(parent, name, props); const vpc = new ec2.VpcNetwork(this, 'MyVpc', { maxAZs: 2 }); const cluster = new ecs.Cluster(this, 'Cluster', { vpc }); new ecs.LoadBalancedFargateService( this, "FargateService", { cluster, image: ecs.DockerHub.image("amazon/amazon-ecs-sample"), }); } } const app = new cdk.App(); new FargateStack(app, ‘Fargate'); app.run(); ECS 서비스, ECS 작업 정의, ALB, 리스너 규칙, 타겟 그룹, Route 53 alias 레코드를 포함하는 고수준 Fargate 클래스
  • 38. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. CDK 템플릿 import ec2 = require('@aws-cdk/aws-ec2'); import ecs = require('@aws-cdk/aws-ecs'); import cdk = require('@aws-cdk/cdk'); class FargateStack extends cdk.Stack { constructor(parent: cdk.App, name: string, props?: cdk.StackProps) { super(parent, name, props); const vpc = new ec2.VpcNetwork(this, 'MyVpc', { maxAZs: 2 }); const cluster = new ecs.Cluster(this, 'Cluster', { vpc }); new ecs.LoadBalancedFargateService( this, "FargateService", { cluster, image: ecs.DockerHub.image("amazon/amazon-ecs-sample"), }); } } const app = new cdk.App(); new FargateStack(app, ‘Fargate'); app.run(); 22줄의 Typescript 코드로 400줄 넘는 CloudFormation 템플릿을 생성
  • 39. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS CDK로 파이프라인 모델링 • 객체 지향 언어 (Object-Oriented Language)로 복사-붙여넣기 작업을 최소화 • 하나의 클래스에서 마이크로서비스 파이프라인을 작성하고 얼마든지 재사용 • AWS CDK는 AWS Identity and Access Management (IAM) 역할 규칙의 자동 구성을 포함한 CodePipeline에서의 파이프라인 모델링을 위한 많은 고수준 construct들을 포함
  • 40. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. CDK 파이프라인: Construct export class MyMicroservicePipeline extends cdk.Construct { constructor(parent: cdk.Construct, name: string, props: MyMicroservicePipelineProps) { super(parent, name); const pipeline = new codepipeline.Pipeline(this, 'Pipeline', { pipelineName: props.serviceName, }); const githubAccessToken = new cdk.SecretParameter(this, 'GitHubToken', { ssmParameter: 'GitHubToken' }); new codepipeline.GitHubSourceAction(this, 'GitHubSource', { stage: pipeline.addStage('Source'), owner: 'myorg', repo: props.serviceName, oauthToken: githubAccessToken.value }); …
  • 41. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. CDK 파이프라인: Stack import cdk = require('@aws-cdk/cdk'); import { MyMicroservicePipeline } from './pipeline'; class MyMicroservicePipelinesStack extends cdk.Stack { constructor(parent: cdk.App, name: string, props?: cdk.StackProps) { super(parent, name, props); new MyMicroservicePipeline(this, 'Pipeline1', { 'serviceName': 'Microservice1' }); new MyMicroservicePipeline(this, 'Pipeline2', { 'serviceName': 'Microservice2' }); new MyMicroservicePipeline(this, 'Pipeline3', { 'serviceName': 'Microservice3' }); new MyMicroservicePipeline(this, 'Pipeline4', { 'serviceName': 'Microservice4' }); } } const app = new cdk.App(); new MyMicroservicePipelinesStack(app, 'MyMicroservicePipelines'); app.run();
  • 42. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 클릭스트림 애플리케이션 AWS CDK App PipelineStack AWS CodeCommit AWS CodeBuild AWS CloudFormation 코드 체크인 AWS CodePipeline StreamAppStack Amazon Kinesis Data Streams 클릭스트림 AWS Lambda Amazon DynamoDB
  • 43. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Source Source CodeCommit Build CdkCodeBuild CodeBuild LambdaCodeBuild CodeBuild Deploy DevEnvDeploy CloudFormation Approval Manual Approval Review Deploy ProdEnvDeploy CloudFormation • Dev 환경 배포와 마찬가지로 Prod 환경에 실제 애플리케이션 배포 • 승인을 기다림 • CDK 앱으로 부터 생성된 StreamAppStack의 템플릿을 배포 • Lambda 함수 코드는 앞서 LambdaCodeBuild 프로젝트에 의해 생성된 패키지 파일의 위치를 전달 • 두개의 CodeBuild 프로젝트를 사용 • CdkCodeBuild 프로젝트는 CDK 앱을 synthesize하여 CloudFormation 템플릿을 생성 • LambdaCodeBuild 프로젝트는 Lambda 함수 코드의 테스트, 빌드 작업을 수행 • CDK 앱과 Lambda 함수 코드는 동일한 리포지토리에 저장
  • 44. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 다양한 자동화 방법들 • Lambda 가중치 별칭을 통한 안전한 코드 배포 (Canary, Linear) • Amazon API Gateway Canary 지원을 활용한 코드 배포 • AWS SAM을 사용하여 서버리스 애플리케이션 배포 (AWS CodeDeploy + Lambda) • Docker 이미지 태그와 CodeDeploy를 활용한 컨테이너 배포 자동화 • AWS CloudFormation을 사용한 인프라 리소스 구성 자동화 • AWS CDK를 통해 선호하는 프로그래밍 언어로 재사용 가능한 인프라 리소스 구성 자동화
  • 45. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 현대적 애플리케이션 개발은 빠른 혁신을 가능하게함으로써 차별화된 경쟁력을 만듭니다. 자동화 (앱 배포 및 인프라 구성)
  • 46. © 2019 Amazon Web Services, Inc. or its Affiliates. All rights reserved. 교육 Developing on AWS 과정에서는 AWS SDK를 사용하여 안전하고 확장 가능한 클라우드 애플리케이션을 개발하는 방법을 배웁니다. 또한 코드를 사용하여 AWS와 상호작용하는 방법을 살펴보고, 주요 개념, 모범 사례 및 문제 해결 팁을 설명합니다. 자격증 AWS Certified Developer – Associate 1년 이상의 실무 경험이 있는 개발자 대상 이 시험은 핵심 AWS 서비스의 사용 방법과 기본적인 AWS 아키텍처 모범 사례를 이해하고 있음을 입증해줍니다. 해당 자격증을 통해 AWS를 사용하여 클라우드 기반 애플리케이션을 능숙하게 개발, 배포 및 디버깅할 수 있음을 증명하실 수 있습니다. AWS 교육 및 자격증을 통해 현대적 애플리케이션 개발에 첫 발을 내딛으세요 자격증 AWS Certified DevOps Engineer – Professional 2년 이상의 실무 경험이 있는 DevOps 엔지니어 대상 이 시험은 AWS 환경을 프로비저닝하고 운영 및 관리할 수 있음을 입증해줍니다. 해당 자격증을 통해 AWS 플랫폼에서 높은 가용성, 뛰어난 확장성 및 자가 치유 기능이 있는 시스템을 구현할 수 있으며, 운영 프로세스를 자동화할 수 있는 도구를 설계 관리 및 유지할 수 있음을 증명하실 수 있습니다. https://www.aws.training/ 에서 더 많은 정보를 확인해보세요!
  • 47. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. [email protected] twitter.com/AWSKorea facebook.com/amazonwebservices.ko youtube.com/user/AWSKorea slideshare.net/awskorea twitch.tv/aws 캠페인 온라인 세미나: 애플리케이션 현대화 및 개발 특집에 참석해주셔서 대단히 감사합니다. 저희가 준비한 내용, 어떻게 보셨나요? 더 나은 세미나를 위하여 설문을 꼭 작성해 주시기 바랍니다.