DivvyCloud 소개
DivvyCloud 소개
본 포스팅은 2017년 10월 18일 서울 강남에서 있었던, DivvyCloud 소개 세미나 참석 후, 내용을 개인적인 목적으로 정리한 것 입니다.
Cloud가 대중화 되면서 기업에 cloud 관리용 도구를 제공하는 업체들도 많이 등장하였습니다. Divvy Cloud도 그 중 하나로, Enterprise급 기업에서 public cloud를 관리할 때 발생하는 문제(Startup과는 달리 여러 내외부용 서비스를 운용)에 대한 해결책을 제시하고 있습니다.
이 글은 홍보 목적이 아닙니다. 업체로부터 아무것도 제공받은 바가 없습니다. 그래서 이 글도 6개월 뒤에 공개 포스팅 합니다.
대용량 Amazon 환경 대상
- GE에서 9000개의 application을 AWS로 옮기는 작업 중에서 일어난 경험을 기반으로 만들어짐
- 대량의 조직/앱을 옮기고 이를 유지관리하는 방법에 대해 설명
- Cloud 관리 고려사항
- Cost
- Compliance/Security
- Culture
- 첫번째로 필요한 Mindset: 자신의 상태를 파악하는 것
- 여러분의 환경은 AWS의 BestPractice나 Netflix의 케이스랑 다르다.
- Netflix(와 같은 대부분 스타트업)는 하나의 앱에 수만명의 사용자
- 그러나 대부분의 기업은 수백개의 앱과 흩어진 사용자들
- 내부적으로도 쓰고(AD 같은..)
- 엔터프라이즈의 (법적)규제와 보안을 고려해야 함
- 미국에서도 여러 보안 사고 발생, S3 노출 사고도 많음
- 하나의 방식으로는 모두를 맞출 수 없음 -> 그래서 DivvyCloud
보안
DivvyCloud란? Divide의 줄임말 인프라를 워크로드나 앱 기준으로 분할하고, 앱/팀/프로젝트 별로 분할한 것을 각각의 보안 룰을 다르게 적용
- 고객사례를 기반으로 보면
- 전체적으로 적용되는 룰(Global rule)/ BU(Business Unit)별로 적용되는 기준이 있다.
- Vertical에 따라 정해진 법/규칙이 다르다.
- 어떻게 보안을 관리할 지는 Global Rule/특정(Local) Rule의 합쳐진 형태 이다.
- 보안의 첫번째 요소는 Get Global Visibility
- AWS를 크게 사용하는 고객은 대부분 가진 문제: 전체를 한 눈에 볼 수 없음
- 관리 중인 계정(AWS Account)이 몇 개인지 모름
- 부서별 Account를 Best Practice로 제시 -> 이게 원인 중 하나
- Region 단위로 조회/관리
- 대부분 AWS Management Console에 로그인하여 관리하기 때문 -> Region단위로 보여줌
- 3가지 관리 지점
- AWS Accounts
- Regions
- Resources
- 한번에 볼수 있는 Dashboard같은게 필요 -> Visibility 확보
- 그 다음엔 Tagging이 필요
- 보통 5개 : Owner, Application on here, Stage(Dev/Test/Prod…), SecurityLevel, Who Paid
- 위는 fundamental, 더 쓰는 경우도 있다.
- Bad Case: Tag가 없는 인스턴스가 엄청 많음
- Tag가 없는게 제일 큰 포션
- 구분할 수 없고
- 보안을 알 수 없고
- 누구껀지 애매하고
- 비용이 어디로 나가는지 모름
- 해결책: 2 step
- 메일을 전체 사원에게 보냄 -> 제한시간 이후 모두 Termination.
- 향후 생성되는 인스턴스에 Tag가 없으면 무조건 종료시킴
- 이렇게 하면 처음엔 AWS문제인줄 알고? 두번째부터 의문을 갖고, 세번째 부터 IT에 문의함
- 두 달 정도 후에 Tagging 전략을 정착시킴
- 강제적으로 적용해야하고, 즉시 적용해야 함!
- 대부분의 개발자들이 반응을 하지 않으므로 보다 공격적으로 적용해야 함
- 자동화
- AWS의 보안 요소가 많다.
- AWS의 Feature가 계속 늘어난다. -> 보안관련 이슈 증가
- 기존 보안과 더불어 새로운 보안이 늘어나므로 복잡성이 증가
-
인프라 시스템 자체의 문제 뿐 아니라 앱, 또는 사용자에 의한 보안 문제가 생길 수 있따.
- 자동화가 중요한 이유는, 위 요소들을 매일 관리하기에 부담이 된다.
- 고객과 이를 해결하기 위해 고려한 것은?
- (위에 언급했던) Global Policy, Local Policy의 조합
문화적인 요소
- 가장 어려운 파트
- Cloud를 사용하는 것은 싸지는 것 같지만, 사실은 싸질 가능성이 있다는 뜻
- 즉 올바르게 사용해야 함
- Cloud에 대한 마인드 셋 전환이 필요
- scale up vs scale out
- scale out 의 경우 사이즈 조절 가능 - 비용절감, HA, 등…
- Cloud의 영향
- One-way journey(일방향 여행): Amazon으로 가면 돌아오지 못함, 왜냐? 민첩성
- 사용자(개발자)들에게 클라우드 사용 권한을 주는 것이 제일 효율적(most value)
- 그러나 risky로 대부분 거부감, 보통 중간에 포털을 두고 요청에 따라 생성해 줌
- 이것이 잘 동작하는 것을 본 적이 없음 -> 사용자에게 접근권한을 충분히 주고 사후 관리 하는게 더 낫다는 결론을 내림
- 조직별로 적합한 툴이 필요: 툴이 조직에 맞춰지도록..
DivvyCloud가 배운 것들
규칙을 강제하지 말고, 툴을 조직에 맞추고, 사용자들이 일을 하도록 도와주고, 자동화를 통해 확장성/복잡성을 통제하는 체제를 갖춰야 함.
- 어떻게?!
- DivvyCloud의 제안
- 순환 프로세스(항상 돌고 있음)
- Harvest -> Unify -> Analysis -> Action
- Harvest : 어카운트, 리전, 서비스 별로 정보 수집
- Unify : 위 정보를 하나에 모아두고(Global Inventory)
- Analysis : 분석하여 규칙을 무너뜨리는 것을 찾고
- Action : 해결
- 3가지 카테고리
- 비용 Cost : AWS에서는 3가지 간단한 방법
- Prod아니면 resource를 shutdown(Schedule 또는 여러방법으로)
- Orphaned resource 정리 - 미사용 리소스 정리(EC2없는 EBS나, 접속이 없는 EC2 등)
- Data Retention - 오래된 데이터 정리…
- 보안 Security 3가지 집중포인트
- 네트워크 레벨 보안, Security Rule에 대한 audit: 임시로 열었던 포트를 안닫는 경우 많음
- 사용자 계정: 개발하다 권한 막힌다고 다 열어줬는데, 이 계정이 잘못된 패스워드 정책일 경우… 폭망
- 데이터 보안: Bad Permission of S3(Open public when create with AWS Console wizard) 등..
- 표준화, 규제 Rule and Standard(Policy compliance)
- Tag Validation
- Regional Audit: 지역 법 준수
- Instance Audit: AMI가 어떤건지 알 수 없다. 개발자들은 비용생각 안하고 엄청 큰걸로 마구 생성
- 비용 Cost : AWS에서는 3가지 간단한 방법
정리: DivvyCloud가 하는 일
Agent 기반(뭔가를 설치해야 하는) 관리 정책은 별로 좋지 않다고 생각, 그래서 Divvy는 Cloud API기반 관리
- Account를 등록하면 해당 계정의 모든 리소스를 확인
- 필터를 통해 문제(?)가 있는 리소스를 리스팅해주고, 필터의 조합을 인사이트로 하여 저장해서 dashboard화
- 그리고 여기에 해당하는 것들을 자동으로 찾는 Bot으로 만들 수 있음(대상지정, 조건지정, 처리방법 지정, 동작시간 지정)
- 처리방법에는 notify도하고 백업 후 삭제도 하고 여러가지가 가능함
- 이런 봇이 언제 동작할지도 지정가능(Reactive(특정 상황 발생시), On-Demand(요청하면), Scheduling(지정된 시각에))
- 또한 다양한 인사이트를 DivvyCloud store(?)에서 받아 적용할 수 있음
- 비용은 규모별로 나눠져 있지만 custom으로 kr@divvycloud.com