본문 바로가기

개발노트

(94)
AWS ECS Faragate 를 쓸 때 이유없이 container health check failed 가 뜬다면 TL;DR. Faragate Platform Version 1.4.0 을 쓰지 말고 1.3.0 을 써보면 문제가 해결될 수 있다. 사내에다가 정리해놓은 문서가 있고, 모든 내용을 다 옮기기엔 가려야할 내용도 많고 번거로워서 결론만 간추려서 작성함 ---- container health check 방법을 `CMD-SHELL,echo hello` 로 해도 container health check failed 의 이유로 task 가 container 들에게 sigterm 을 보내서 컨테이너가 종료되고, ELB 는 종료된 컨테이너로 계속 트래픽을 보내고 있어서 client 에게는 502 Bad Gateway 응답이 나가는 상황이 간헐적으로 발생하고 있었음. 이 때만 해도 문제를 쉽게 해결할 수 있을 거라 생각했..
맥 발열과 CPU Throttling 코로나로 인해 재택근무를 하고 있다. 집 안에서 나의 사무 공간은 2층 남서향인 방이다. 이 곳은 11시가 지나면 햇빛이 직사되어 곧 온도가 올라가기 시작하고, 해가 다 지고 나서야 온도가 내려가는 그런 공간이다. 보일러 온수파이프라인이 지나가는지, 겨울에도 이 공간이 집에서 가장 따뜻한 곳이다. 아직까지도 날씨가 따뜻해지면서 그런 것인지 모르겠지만, 4월 초쯤부터 업무용으로 지급받은 맥북 2018 15-inch 모델이 이륙소리를 내면서 CPU throttling 이 걸리는 때가 잦아지기 시작했다. Mac Fans Control 프로그램도 깔아서 팬 속도 조절도 해보고 했지만, 온도가 90도를 넘어갈 때도 있었다. 그런데 온도가 90도 넘어가더라도 CPU 는 Throttling 이 걸리지 않을 때도 있었..
AWS lambda function 배포 자동화 하기 배경 사내에서 AWS 를 위주로 인프라가 구성되어 있긴 하지만, 거의 대부분 갖춰져있는 구성이 많기도 하고 내가 AWS 자체에 아직 익숙하지 않은 상황이었다. 업무를 보다보면 가~끔 aws lambda function 으로 구성해놓은 부분에 코드 수정이 필요한 경우가 생겼는데, 그 때마다 AWS web console 에서 inline edit 기능을 이용하여 직접 수정했었다. 불편하긴 하지만 다른 방법에 대해 딱히 생각해보지 못했다. 수정할 일이 자주 있는 것도 아니기도 하다는 합리화를 하면서. 이 lambda 코드를 어찌됐든 형상관리를 하긴 해야겠기에 git repo 에다가 똑같은 코드로 관리하고 있긴 했었는데, 이 과정이 많이 번거롭기도 하고 사람이 실수하기 딱 좋았다. 양 쪽(git repo, la..
AWS CodePipeline 을 이용한 배포에서 ApplicationStop 조차 시작하지 않고 보류중(pending) 상태일때는? 배포 생성 후에 ApplicationStop 조차 실행되지 않을 때에는 Target EC2 machine 에 가서 codedeploy-agent 가 제대로 실행되고 있는지 확인을 가장 먼저 하자. 다른 단계에서 hang 이 됐다면 그 문제를 찾아봐야할텐데, 가장 먼저 실행이 돼야하는 ApplicationStop 도 시작조차 안 되고 pending 인 상태가 오랫동안 보이면, codedeploy-agent 가 제대로 실행되고 있는지를 가장 먼저 의심해봐야 한다. 특히, 이미 (다른 사람들이) 갖춰놓은 Infrastructure 가 있고, 거기에서 다른 건 안 건드리고 배포만 하려고 했을 때 대부분 인스턴스는 배포가 잘 되는데 특정 인스턴스에만 배포가 실패하는 경우가 있다. 이 때 codedeploy 자체를..
Docker For mac - mutagen "unable to ensure path does not exist: path exists" 최근 Docker for mac 을 이용하여 개발환경을 만드는 과정에서 소스 코드 동기화를 volume 을 이용해서 하다보니, 속도가 너무 느려서 mutagen 을 내장한 버전인 Docker for mac 2.3.4.0 를 이용하게 됐다. 근데 개발하다보니 mutagen 에서 양방향(host container) sync 가 잘 안 되서 Ready 가 아니라 Error 라고 뜨길래 Troubleshoot 에서 Run Diagnostics 를 실행하여 진단해보니, sync 될 필요 없는 디렉토리도 sync 되고 있는데 해당 디렉토리에 파일이 이미 존재하고 있는 것으로 인식이 되는 것이 문제였다. "unable to ensure path does not exist: path exists" 그래서 .docker..
Mac 에서 cmd + y 로 Redo 하기 (karabiner-element) 윈도우에서 control + y 로 redo 하는 것이 습관이 되서 그런가, 맥에서 cmd + shift + z 를 눌러서 redo 를 하는게 이 글을 쓰게 할 정도로 너무나 귀찮았다. Rubymine 이나 일부 프로그램에서는 자체적으로 새로 key binding 을 해서 cmd + shift + z 와 cmd + y 모두 redo 로 동작하도록 되어있긴 하지만, 슬랙이나 기타 다른 OSX native app 들에서 redo 를 하려면 cmd + shift + z 를 눌러야만 했다. 너무나 귀찮은 것. 계속 귀찮음을 느끼다가 도저히 안 되겠어서, Capslock 을 왼쪽 클릭으로 바인딩해서 쓰는데 사용하고 있는 karabiner-element 를 이용해 내 맥북의 osx 전역에서 cmd + y 로 red..
aws-cli 이용하여 특정 tag 에 해당하는 ec2 instance 의 private IP 알아내기 AWS 매뉴얼을 확인하면 된다 https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html describe-instances — AWS CLI 1.18.97 Command Reference Note: You are viewing the documentation for an older major version of the AWS CLI (version 1). AWS CLI version 2, the latest major version of AWS CLI, is now stable and recommended for general use. To view this page for the AWS CLI version 2, click ..
git branch 전환을 좀 더 간편하게 gcop() { git branch -a | grep -v remotes | grep "$1" | head -n 1 | xargs git checkout } `~/.zshrc` 파일에 위 함수를 선언하기. 그러면 `gcop API-1000` 과 같이 편하게 브랜치의 부분 이름으로 전환을 할 수 있다.