More Related Content
Similar to On-Premise 기반서비스 클라우드 전환기 -DevSecOps 도입을통한 유연한 서비스 개발 및 운영::박준상::AWS Summit Seoul 2018
Similar to On-Premise 기반서비스 클라우드 전환기 -DevSecOps 도입을통한 유연한 서비스 개발 및 운영::박준상::AWS Summit Seoul 2018 (20)
More from Amazon Web Services Korea
More from Amazon Web Services Korea (20)
On-Premise 기반서비스 클라우드 전환기 -DevSecOps 도입을통한 유연한 서비스 개발 및 운영::박준상::AWS Summit Seoul 2018
- 1. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
박준상
메가존
On-Premise 기반 서비스
클라우드 전환기
- 2. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
발표 순서
고객사 현황과 클라우드 서비스 도입 이유
TO-BE Architecture
어떻게 도입할 것인가?
개발 환경 구축하기
Lessons learned
DevOps? DevSecOps!
- 3. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
On-Premise 기반 모바일 서비스 개발 회사
• 제조/금융권 고객사 대상 서비스 개발 (모바일 웹/앱)
• 인프라 : 고객사 D/C 내 장비 사용
• 소프트웨어 아키텍처 :
전형적인 3-Tier 구조 , 서비스 확장
시 동일 인프라 구성 필요
• 개발 환경 : RHEL + Java + Spring,
Eclipse +Maven + SVN 사용
• 서비스 방식 : 모바일 웹 페이지를
native app으로 제공 (Hybrid 방식)
WAS
Web
DB
WAS
Web
L4
Storage
고객 데이터 센터
Apache
Oracle
Oracle
EMC
Cisco
- 4. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
프로젝트 방향에 대한 고객 의사 결정
• Agile 소프트웨어 개발 방법
• DevOps 방식 서비스 개발 및 운영 환경 도입
• Container 기반 마이크로 서비스 아키텍처 도입
이미지 출처 : https://martinfowler.com/articles/microservices.html
- 5. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
왜 클라우드 서비스를 선택하였을까 ?
• 전사 DevOps 방식 Proto Type 프로젝트로 선정
• DevOps 방식 도입 시 Risk 확인 필요
• 프로젝트 성공 여부에 대한 불 확실성
Fail Fast
Fail Early
Learn Cheaply
고 비용 구조 개선
경쟁사 대비 빠른 서비스 출시
모 회사 및 고객사의 Cloud 위주 IT 투자
- 6. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
TO-BE Architecture
구축 방향
Container
기반 서비스
고 비용
소프트웨어를
클라우드 최적화된
오픈 소스
소프트웨어와
서비스로 대체
지속적 통합 및 지
속적 전달을 통한
빠른 어플리케이션
배포 및 자동화
적용 서비스
Amazon
Elastic Container Service
Amazon
Elastic Container
Registry
Apache Tomcat
Amazon Auora
AWS CodeCommit
AWS CodeBuild
AWS CodeDeploy
AWS CodePipeline
AWW CloudFormation
- 7. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
TO-BE Architecture
구축 방향
Container
기반 서비스
고 비용
소프트웨어를
클라우드 최적화된
오픈 소스
소프트웨어와
서비스로 대체
지속적 통합 및 지
속적 전달을 통한
빠른 어플리케이션
배포 및 자동화
적용 서비스
Amazon
Elastic Container Service
Amazon
Elastic Container
Registry
Apache Tomcat
Amazon Aurora
AWS CodeCommit
AWS CodeBuild
AWS CodeDeploy
AWS CodePipeline
AWW CloudFormation
- 8. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
하지만…
• 의사 결정이후 직면한
현실적인 문제들
클라우드
서비스 ?
SVN= Yes
Git = No
Dev Only
No Ops
- 9. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
AS-IS
TO-BE
On-Premise
Cloud
monolithic microservices
Infrastructure
Interim#2
Interim#1
Architecture
어떻게 도입할 것인가?
고려 사항 기술/문화적 충격 완화
클라우드/DevOps 방식에 대한 이해도 증대
도입기
• Elastic Beanstalk + RDS +
CodeStar
• Interim #1
적응기
• ECS/ECR + RDS +
Code Series
• TO-BE
성숙기
• Lambda + API Gateway +
Cognito etc
• 서비스 오픈 이후
- 10. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
1일만에 개발 환경 구축하기
• 2018년 2월 15일 Seoul Region 지원을 시작한 Code Star 사용
• 빠른 개발 환경 구축 및 AWS 환경 적응을 위해 어플리케이션 스택은
Elastic Beanstalk 템플릿 적용/생성. DB 스택은 RDS 상에서 수동 생성
AWS
CodeCommit
AWS
CodePipeline
AWS
CodeBuild
AWS
CloudFormation
AWS
CodeStar
AWS Elastic
Beanstalk
- 11. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
1일만에 개발 환경 구축하기
• 2018년 2월 15일 Seoul Region 지원을 시작한 Code Star 사용
• 빠른 개발 환경 구축 및 AWS 환경 적응을 위해 어플리케이션 스택은
Elastic Beanstalk 템플릿 적용/생성. DB 스택은 RDS 상에서 수동 생성
- 12. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
환경 재 구성
• 최종 개발 환경인 Docker 기반 ECS로 전환
• Code Star를 통해 구성한 Code Commit, Code Build,
Code Deploy 그리고 Code Pipeline을 직접 구성
Amazon ECR
Amazon ECSAWS
CodeCommit
AWS
CodePipeline
AWS
CodeBuild
AWS
CloudFormation
- 13. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
서비스 최적화를 위한 Architecture 제언
• Cloud 환경에 부합하는 서비스 확장성과 민첩성을
제공하기 위해 Architecture 변경 제언
• 1단계 : API Gateway 도입
• 2단계 : Amazon ECS를 AWS Lambda로 대체
- 14. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Lessons learned
• 개발방법 + 사고방식 + 문화
• 도구 > 프로세스 >> 사람
Doing Agile?
Being Agile!
• 팀 단위 선도 적용 후 확산
• 기술/문화 충격 완화
One-at-a-time,
Not All-at-one
• 변화에 대한 수용
• 업무간 협업 강화
Open mind &
Collaboration
- 15. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
경쟁력 강화, 하지만 보안은 ???
개발(Development)
개발 및 배포 속도 개선
운영(Operations)
운영 안정성 개선
보안 (Security)
보안 강화???
- 16. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
DevSecOps : Security as Code
#!/usr/bin/env python
import re
middle_child = re.findall('[A-Z][^A-Z]*', 'DevSecOps')[1]
print middle_child
DevSecOps
- 17. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
DevSecOps 핵심 : 모두가 보안에 대한 책임
Network
Security
Front-end
engineer
Project
Manager
DB Admin
Application
Security
Product
Marketing
Test
Engineer
Support
Engineer
Product
Manager
- 18. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
보안, 지속적 통합/전달의 일부
전통적인 보안 적용
Plan Code Build Test Release Deploy Operate
보안 적용
보안 적용
Plan Code Build Test Release Deploy Operate
지속적 통합/전달의 일부
- 19. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
DevSecOps on AWS
- 20. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
OS 및 어플리케이션에 대한 호스트 기반 모니터링
• White-list 기반 접근 (Deny-all-by-default)
• 소프트웨어 패키지/ 로컬 사용자 계정 / 포트 오픈/ 프로세스 실행 시
사용자, 그룹 및 사용 포트 / OS와 어플리케이션 단의 구성 / 구성
파일의 예상되는 상태 계산
• 예를 들어 Apache 버전 2.4.29가 사용자 계정 “apache”, 그룹 “webapp”로
TCP/80과 TCP/443포트를 사용하여 실행 되어야 하고, 아파치 구성
파일에 대한 변경을 모니터링 수행
NW Ports Process User Group SW Package SW Version
TCP/80 &
TCP/443
httpd apache webapp apache 2.4.29
TCP/22 sshd ops ops sshd
- cphalod secops secops cphalo 4.1
: : : : : :
< / >
- 21. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
당장 실행할 수 있는 것들…
1. 보안 담당자와 친해지세요!!
2. 현재 보안 상태와 요구 사항 이해
3. 멀티 팩터 인증(MFA) 사용
4. 현재 환경에 대한 보안 검증 계획 수립
5. 허니팟(honeypot) 구성
6. White-list 기반 제어
7. 모든 실행 계획을 자동화하세요!