Image for post
Image for post

Custom AMI를 제작하는 목적은 여럿이다. 그 중 몇 가지를 꼽자면

  • 운영체제 컴포넌트 업그레이드, 모니터링 도구 설치, 보안체계에 맞는 구성 등을 배포 전에 테스트하고 검증한다.
  • EC2 인스턴스를 초기화할 때 대용량의 바이너리를 다운로드 받고 설치하면 배포시간이 길어진다. 배포 시점에 원격 저장소에 접속이 안 되면 장애로 이어질 수도 있다.

여러 환경에서 공통적으로 쓸 컴포넌트는 AMI로 미리 굽는다. 반면에 특정 환경에서만 쓰는 컴포넌트는 AMI에 담지 않는다. 그런 컴포넌트는 EC2 인스턴스를 초기화할 때 Cloudconfig로 설치한다.

Originally published at 안드로메다 토끼.


언제나 그렇듯 알게 모르게 고객의 안전을 최우선으로 생각하는 데일리에서…

개발 및 운영 환경에서 EC2 인스턴스에 터미널로 접속하는 건 매우 많은 제약을 받습니다. 방화벽, MFA로 방비한 VPN 등으로 여러 안전장치를 통해야 합니다. 물론 이러한 일련의 과정은 적절한 권한을 가진 사람이 적절한 수단으로 접속할 때는 최소한의 불편만 감수하면 되도록 설계되었습니다. 불편하면 우회할 길을 찾는 게 사람이니까요.

이러한 일련의 보안 강화 조치의 일환으로써 터미널 접속자에 대한 감사 로그를 더 확보하기로 했습니다. VPN 접속시 실시간 알람을 받는 것으로는 충분하지 않다는 의견에 따른 것입니다. 얼마 전에는 sshd의 로그를 El …


elastic on tour에 백엔드 개발자 다섯이나 출동하였습니다. 현장에서 구글 문서를 이용해 공동작성한 메모를 공개합니다. 현장감을 살리기 위해 편집은 가급적하지 않았습니다. 따라서 다소 두서 없을 수 있으니 양해 바랍니다.

Special Thanks to 공동저자 Hyeonho Martin and 미디엄 계정 정지 당했다 풀린 Jungho Kim

오전

마이크로소프트가 오픈소스를 사랑한다니 Microsoft 사람과 오픈소스 프로젝트로 격하게 논쟁한 기억이 새록새록.

AWS의 elasticsearch 제품(2016년 가을 기준)과 비교해서 굉장히 쉽게 설정하도록 되어있습니다. Prod 환경 기준에서 필요한 설정(유저 정보 …


Image for post
Image for post

데일리호텔은 아마도 국내에서 Kubernetes를 가장 잘 활용하는 서비스 중 하나일 것이다. 2016년 8월 11일에 kube-aws v0.8.1 / kubernetes v1.3.4을 도입하여 현 시점에 kube-aws v0.9.9-rc.4 / kubernetes v1.8.4까지 운영 중이다. 비교적 이른 시기부터 도입하여 Kubernetes와 함께 우리의 시스템도 발전해왔다. 개인적으로는 3월에 입사하여 4월에 Docker 기반의 빌드 환경을 도입하고 이어 성수기를 무사히 마친 후 바로 Container orchestration을 적용했으니 정신 없기도 하고 즐겁기도 한 시기였다. 오늘은 연말 특집으로 그 간의 운 …


Image for post
Image for post
출처: https://unsplash.com/photos/pn_TY-8_Pbk

이번 iOS 11에서 Multipath TCP란 걸 공식 지원하면서 이를 데일리호텔 서비스에 활용할 수 있는지 기술검토를 해보았다. 우선 MPTCP가 무엇인지 애플의 간략한 설명을 확인하자.

Users would expect that data transfer could continue seamlessly when WiFi assists switches from WiFi to cellular. With regular TCP, this is not possible for technical reasons. Fortunately, Multipath TCP provides the same service as regular TCP.


Image for post
Image for post

전자상거래 서비스를 유지관리하는 개발자 또는 조직으로썬 순간적으로 트래픽을 끌어모으는 마케팅이 부담스러울 때가 있다. 우아한 형제들 기술 블로그에 나오는 사례는 그러한 고민을 잘 보여준다.

이 사례에서는 꽤나 개발과 준비를 많이 하는데 빼빼로데이라는 특성상 그럴 필요가 있었던 듯 하다. 하지만 모든 이벤트가 이 정도의 트래픽을 끌여들이는 건 아니다. 단순히 특정 상품을 목 좋은 앱 상단화면에 노출시킨다던가 마케팅 규모가 좀더 작을 때는 평소보다 수 배에서 수십 배의 트래픽만 감당하면 된다. 그런데 이러한 상황은 빼빼로데이 건과는 여러 점에서 다르다.

  • 전술한 바와 같이 트래픽이 상대적으로 작다.
  • 그리고 상품구성이 수시로 바뀌고
  • 주제를 조금씩 바꿔서 지속적으로 이벤트를 진행한다 …


Image for post
Image for post
Kubernetes Events 대시보드

추가 소식: 공식 문서를 쓰는 중이라고 한다.

Kubernetes의 Role-based Access Control 도입 후에 DataDog agent가 Kubernetes 이벤트를 수집하지 못하는 문제가 발생했다. Kubernetes 클러스터에 대한 접근권한을 확보해주어야 Kubernetes 이벤트를 수집할 수 있다는 건 자명하다. 다만 DataDog이 구체적으로 어떤 리소스에 접근하는지 알기 힘들어서 공식 문서를 뒤져보았다. 당연하지만 공식 문서에 잘 적어놨으면 이런 글을 쓰지 않았을 것이다. 공식 문서에는 RBAC가 없던 시절의 Kubernetes 배포 예제만 있다. 다행히 GitHub에 관련 문제를 논의한 티켓이 있다.

Gist 링크 하나 던져주고 이슈를 닫았다. 이제 RBAC 쓰는 곳이 꽤 많을텐데 공식 문서에 친절하게 넣어주면 안 되려나? 아무튼 코드 스니펫 베껴서 살짝 손봤더니 전부 정상작동한다 …


DataDog의 APM

DataDog의 APM 서비스는 말 그대로 Application Performance Monitoring에 초점을 둔다. NewRelic의 APM과 달리 스택 트레이스 정보를 수집하지 않는다. 그저 애플리케이션의 성능을 측정할 뿐이다. 초당 요청 수, 평균 응답속도, 오류발생률, 구간별 소요시간 등을 추적한다. 전체적으로 DataDog의 주 기능인 메트릭 측정이 인프라와 널리 인정 받는 미들웨어를 넘어서 개별 애플리케이션에 적용될 뿐이다. 쓸모는 있지만 NewRelic의 APM 수준을 기대해서는 안 된다. 그리고 몇 가지 단점이 더 있는데

  • 아직 Go, Python, Ruby만 지원한다.
  • APM 라이브러리 단독으로 작동하지 …

Image for post
Image for post

데일리의 Java 백엔드 개발자는 Docker 기반의 CodeShip Pro를 애용하는데 최근에 빌드가 급격히 느려지는 문제를 겪었다. 빌드가 느려진 원인은 다양하지만 그 중 일부는 CodeShip Pro의 캐싱 방식, 더 정확히는 도커의 캐싱 방식과 관련이 있다.

CodeShip Pro는 pom.xml 또는 build.gradle 을 보고 빌드에 필요한 라이브러리를 미리 가져와서 캐싱하기를 권장한다.

# We're using the official Maven 3 image from the Docker Hub (https://hub.docker.com/_/maven/).
# Take a look at the availabl …

Jaehoon Choi

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store