Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

HashiConf 17 참석기 : Day 2

이 글은 HashiConf 17 참석기 : Day 1에서 이어진 글이다.



Day 2


Keynote - Kelsey Hightower, Google

Kelsey Hightower가 Kubernetes 쪽에서 유명한 사람으로 알고 있는데 이사람 발표를 처음 보는데 엄청 액티브하고 유쾌한 사람이었다. 발표하면서 장난치면서 발표해서 아주 재미있게 들었다. 이 발표에서는 hashinetes라고 하면서 k8s랑 Consul, Vault를 같이 사용하는 것을 데모로 보여주었다. 내용 자체가 엄청 새롭거나 하진 않았지만, 발표를 워낙 잘해서 재미있었다.

IMG_8957




Making Gossip More Robust with Lifeguard - Jon Currey, HashiCorp

HashiCorp의 리서치 그룹에서 Gossip 프로토콜 관련해서 발표한 논문인 SWIMLifeguard를 설명하는 세션이었다.

Gossip에 관해 잘 모르는데 클라우드에서는 알아두어야 할 부분인 거 같아서 조금이라도 익숙해지려고 들어갔다. Consul에서 헬스체크로 노드를 확인하고 이를 각 노드에 전파하려고 Distributed Fiilure Detector로 SWIM 프로토콜을 구현하고 이 구현체를 memberlist로 공개했다. SWIM과 Lifeguard의 동작 방식에 관해서 설명했는데 열심히 들었지만 여기 정리하기에는 내 지식으로는 무리다. 그래도 재미있게 들었던 발표였다.

Security and Fundamentals at Scale with Vault- Jeff Mitchell, HashiCorp

Vault를 좀 더 잘 쓰고 싶어서 들어간 세션이었는데 실제로는 ACL의 원칙만 설명하고 곧 Sentinel로 넘어가서 Sentinel에서 ACL이 어떻게 강화해서 쓸 수 있는지를 설명했다. 실사용 사례라기보다는 레퍼런스 식 설명 위주라서 나는 좀 별로였다.

Scaling Support with Vagrant and Terraform - Stephen Lechner, Datadog

Datadog에서 고객마다 다른 환경을 위해서 수동으로 Vagrant를 사용하다가 시간이 너무 걸려서 Vagrant Provisioning을 자동화해서 문제를 어느 정도 해결했다. 하지만 너무 많은 Vagrant box를 로컬에서 돌려야 했고 같은 box로 협업하기가 어려워서 Terraform을 도입했다. Vagrant가 가상환경용이라면 Terraform을 클라우드용이고 Vagrant의 자동화 과정과 거의 같은데 Vagrantfile 대신 .tf 파일을 써서 자동화를 했다.

Deep Dive into Vault's AWS Auth Backend Joel Thompson, Bridgewater

AWS에 인증하기 위해 추천하는 방법은 아니지만, 인증을 위해서 AMI에 시크릿을 같이 굽는 방법도 있고 S3에 시크릿을 저장할 수도 있다. 이보다 나은 방법으로 Lyft에서 공개한 Confidant가 있는데 KMS를 훨씬 똑똑하게 사용하는 방법이라 나쁘지 않다.

AWS에는 EC2 instance identity documnet가 있는데 이를 이용해서 Vault에 인증할 수 있지만, 문제점이 많이 있다. 테스트를 못 해봐서 정확히 이해는 못 했지만 AWS의 Auth Protocol을 이용하면 EC2, Lambda, ECS에서 모두 사용할 수 있으므로 가장 좋지만, Vault에 키와 시크릿키를 가지고 있어야 한다. WhoAmI 메서드로 Vault가 중개해서 인증하게 할 수 있는데(sts:GetCallerIdentify) 지금은 이 기능이 추가되어서 Vault에서 Auth protocol을 사용할 수 있게 되었다.(vault auth -method=aws role=MyRole`)

AWS 인증의 실제 사용방법을 기대했는데 원리적인 얘기만 하다가 끝나서 매우 아쉬웠다. 저렇게 설명한 것을 사용하는 여러 가지 패턴이 궁금했는데....

IMG_8924




Who Terraforms Terraform? Inside HashiCorp Operations Engineering - Paul Hinze, HashiCorp

클로징 키노트로 HashiCorp 내부의 얘기였다. 연도별로 출시한 회사와 HashiCorp의 제품의 방향에 관해서 설명했다. Hashicorp 내부는 Altas에서 Terraform Enterprise로 옮겨갔고 Rails, Golang, PostgreSQL, AWS를 쓰고 있다. GitHub에서 Packer로 이미지를 만들어서 배포하고 Terraform으로 인프라를 적용한다. 초반에는 Terraform이 없었기 때문에 Terraform을 만들었을 때 기존 인프라를 가져오려고 import 기능을 만들었다. 테라폼 엔터즈라이즈의 아키텍처는 GitHub에 공개되어 있다.

IMG_8988


도구를 만들 때 오픈소스 커뮤니티를 중요하게 생각하고 있다. 운영팀에서 필요한 기능에 대해서 고민을 하기 시작하면 운영팀과 오픈소스 커뮤니티, 인터넷 사용자들과 같이 논의를 해서 의사결정을 한다. 예를 들어 Consul 운영이 쉽지 않다는 얘기가 운영팀에서 나왔고 각 커뮤니티에서도 같은 문제로 어려움을 겪는 것을 확인하고 autopilot 기능을 추가했다. 이런 피드백 사이클이 아주 잘 구성되어 있다. 이렇게 도구를 만들 때 HashiCorp의 운영팀, GitHub의 커뮤니티, 사용자가 나누어져 있는 것이 아주 중요하다.

에필로그

전체적인 콘퍼런스 만족도는 아주 좋았다. 최근에 아주 좋아하는 회사라 그랬을지도... Module에 대해서 새로운 인식을 가진 것도 큰 수확이지만 콘퍼런스 간다고 이전에는 전혀 몰랐던 엄청난 내용을 듣게 되는 것은 아니다. 키노트는 너무 좋았지만, 세션은 너무 기초거나 이론적인 얘기만 하는 경우도 많았다. 이런 건 콘퍼런스가 안 좋다기 보다는 어쩔 수 없는 부분이 아닌가 싶다. 국내에서도 사실 발표 수준이 떨어진다는 생각은 안 한 지가 오래되어서..

항상 갔다 올 때마다 영어에 대한 자극은 엄청 받고 있다.

IMG_8978


2017/09/30 23:51 2017/09/30 23:51