2020년 말, AWS Lambda의 새로운 기능으로 컨테이너 이미지 지원이 발표되었다. 기존 lambda 의 프로비저닝에 비해 얻을 수 있는 이점을 요약하자면 다음과 같다. - 최대 10GB 크기의 컨테이너 이미지로 패키징 및 배포할 수 있는 기능 제공 - Dependencies 관리 및 설치의 용이성 - 다른 linux distro 의 이미지에서도 사용 가능함. (다만, 좀 까다로움. aws lambdaric 를 설치해야함.) 나는 Dependencies 설치가 쉽다는 점 하나만으로 docker 이미지를 사용할만한 가치가 있다고 생각한다. Boilerplate byunjuneseok/container-image-lambda-boilerplate Deploy python lambda functions ..
Github Actions 에서의 crontab 스케쥴링? Github Actions은 crontab scheduling 을 지원한다. 적당히 간단한 job 을 주기적으로 돌리고 싶을 때, aws 에서 cron event 로 lambda 를 트리거하는 방법을 선택할 수도 있겠다. 하지만 이는 lambda 를 위한 추가적인 구현 수정이 필요하고 aws를 잘 모르는 개발자라면 이유모를 비용 청구에 대한 두려움이 있을 것이다. (사실 비용 청구는 전혀 문제되지 않을 것이다. AWS lambda의 비용청구는 100만건 단위로... 자세한 것은 문서를 참고하기 바란다.) 항시 켜두는 리눅스 서버에 cron 데몬에 의존하는 방식도 부담스럽다. 언제 꺼질지 모르는 심리적/물리적 관리비용이 있다. Github Acti..
들어가기 전에 예전에 잠깐 창업에 발을 살짝 들였을 때, 팀 사이트를 오늘 소개한 방법으로 배포한 적이 있다. 새로운 블로그를 최근에 만들었는데, 이 페이지를 배포할 방법으로 netlify 같은 서비스도 고민했지만, 그냥 깔끔하게 내가 다 만들어버리고 블로그 포스팅도 하자는 생각으로 다시 시도하면서 정리하게 되었다. 이 포스트에서는 vue, react 의 Client side application 뿐만 아니라 jekyll 과 같은 static web page 를 aws S3와 Cloudfront라는 CDN을 통해 배포하는 과정, 그리고 github Actions 을 통해 모든 것을 자동화하는 과정을 설명한다. 이 자동화 배포를 완성하기 위해서는 직접 초기 작업을 수행해야 한다. 물론 AWS CLI 를 사..
지난 블로깅을 통해 Amazon Linux 1 환경의 Elastic Beanstalk 어플리케이션을 새로운 Amazon Linux2 환경으로 마이그레이션 하는 과정을 소개하였다. 이번 포스팅에서는 Elastic Beanstalk 웹 콘솔과 Amazon Cloudwatch 를 통해서 내가 원하는 로그를 볼 수 있는 기능을 소개하려고 한다. 우리의 API 서버인 sachiel 은 모니터링을 위해 API 호출과 exception 로그를 분리해서 저장하고 있었다. 각각 /var/log/sachiel/info\_api\_call.log와/var/log/sachiel/exception.log경로로 저장하고 있었는데, 아무런 설정을 하지 않는다면 Amazon Cloudwatch 와 Elastic Beanstalk 웹..
HBsmith 는 메인 백엔드 API 서버와 백오피스 어플리케이션을 aws 의 elastic beanstalk 서비스를 이용하여 배포하고 있다. 2011년에 출시된 서비스인 만큼 많은 레퍼런스와 자료들이 존재하고 있으며, 모든 조직/서비스가 항상 컨테이너라는 기술이 항상 답이 될 수 없기 때문에 아직도 많이 사용되고 있는 서비스이다. 우리는 “Amazon Linux 2018.03 v2.9.20 running Python 3.6” 환경을 이용하여 배포하고 있었다. 그리고 새로운 기능과 보안의 이유로 2020년 4월에 출시한 Amazon Linux2 Python3 로의 마이그레이션 작업을 진행한 후기를 소개하고자 한다. 현재 우리는 “64bit Amazon Linux 2 v3.2.1 running Pytho..
새 아이폰을 구매하고 기존 아이폰에서 마이그레이션했다. 나는 마이그레이션을 하면, Google Authenticator 앱 정보가 그대로 넘어올 거라 생각했다. 사실 아무 생각도 안하고 쓰던 아이폰을 초기화했다. 😅 매일 aws 웹콘솔을 접속하는 나에게 MFA OTP를 잃어버린 사고는 매우 치명적이었다. 이걸 당장 복구하지 않는다면, 업무에 큰 차질을 빚을 수 있었다. 급한 마음에 aws 로그인 화면에서 복구할 수 있는 옵션에 진입했다. email 인증, 그리고 그 이후엔 전화번호로 ARS인증을 해야하는데 aws 시스템에 문제가 있는지, 내 전화번호로는 전화가 걸려오지 않았다. [AWS Support로 문의하십시오.] 버튼을 눌러 Support case를 남겼다. 그랬더니 30분 안으로 전화가 왔다. 인..
대규모 인프라 운영에 사람의 수작업을 최소화하려면 결국 자동화만이 해답이다. 자동화는 곧 스크립트나 소프트웨어의 영역이라는 점에서 클라우드 인프라 운영자라면 어쩔 수 없이 개발 세계를 기웃거릴 수 밖에 없게 된다. 계발 세계의 초기 진입 장벽을 고려하려면 개발자가 인프라 운영을 배우는 게 더 나아보이기도 한다. 어쨌든 인프라 운영자는 자동화를 위한 최소한의 개발 능력과 한두 가지의 언어를 익히는 일이 필수가 되었으며, 반대로 개발자도 네트워크와 스토리지는 물론이고 가상화와 구성관리까지 아우르는 전반적인 개념을 이해해야 하는 고단한 시대가 오고 말았다. 위의 인용에서 확인할 수 있듯 개발자와 운영자 사이의 장벽을 없애려는 개발 문화를 추구하는 움직임이 많은 곳에서 이루어지고 있고, DevOps 엔지니어라는..