DevOps (11) 리스트형 썸네일형 AWS VPC Endpoint (Interface, Gateway) 개요오늘 포스팅해볼 내용은 VPC Endpoint에 관한 내용이다. AWS의 서비스와 통신할 때 IGW를 통해 외부로 나가면 안 된다는 요구사항을 만족시키기 위해 VPC Endpoint를 사용했는데, 사용하면서 알게 된 내용들을 정리해보려고 한다.기본 구조포스팅을 시작하기에 앞서 기본 구조를 설명하려고 한다. Private Subnet에 배치되어 있는 EC2에서 동일한 계정, 리전에 있는 S3를 호출한다고 하면, EC2에서는 S3 Domain에 대한 IP를 얻기 위해 DNS Query를 실행하게 된다. 이때는 Route 53의 Public DNS를 호출하게 된다.이걸 실제로 확인해보려면 EC2에 접속해서 nslookup결과를 확인해보면 된다. 반환 결과로 나온 IP들이 AWS의 공인 IP인 것을 확인할 .. ECS Graceful Shutdown (dumb-init) 개요오늘 포스팅해 볼 내용은 init system, 그중에서도 dumb-init을 사용해서 SIGTERM을 전파하는 방법에 대해서 알아보려고 한다. 사실 dumb-init을 이번에 처음 안 것은 아니고 2년 전에도 비슷하게 포스팅을 한 적이 있다. 그런데 이번에도 비슷한 이슈를 다루며 자세히 적어두면 좋을 것 같다고 생각하여 작성하게 되었다. 내가 관리하고 있는 rails 프로젝트에는 entry point가 아래와 같이 구성이 되어 있다.ENTRYPOINT ["sh", "-c", "export DD_AGENT_HOST=$(curl ); rails"]ECS 환경에서 Datadog을 사용하려면 이렇게 사용해야 한다. export 명령어를 사용하기 때문에 sh -c가 붙게 되고, 여기에서 별 다른 설정을 하지.. Rails 프로젝트 도커 캐싱하기 1. 사건의 발단사건의 발단은 몇 달 전으로 거슬러 올라간다. Rails 프로젝트 컨테이너라이징 작업을 하던 중… 도커 빌드 속도가 너무 느려서 하나를 수정해서 배포해도 6분, 8분, 12분 이런 식으로 너무 오래 걸려서 답답해하고 있었다. 분명히 캐싱이 적용되어 있을텐데? 싶어서 아무거나 하나 눌러서 보니까 웬걸 … 캐시를 전혀 사용하고 있지 않고 있었다… ㄴㅇㄱ 다른 루비 프로젝트들은 어떻게 하고 있지? 싶어서 다른 루비 프로젝트도 보니까 그냥 느리게 사용하고 있었다.언젠간 꼭 고쳐야지 … 😔 라는 생각으로 마음속의 백로그로 가지고 있다가 며칠 전부터 드디어 파보기 시작했다.2. 캐싱 적용 방법현재 캐싱을 위해 Github Action 플러그인인 docker/build-push-action를 사용하.. Linkerd Tutorial 따라해보기 쿠버네티스 클러스터에 linkerd를 설치하고 샘플 애플리케이션을 배포하여 linkerd를 사용해 보려고 한다. k8s 클러스터는 minikube를 사용하여 진행했고, https://linkerd.io/2.16/getting-started/ 에 나온 내용을 기반으로 공부한 내용을 추가하여 포스팅을 작성한다.1. linkerd 설치local machine에 linkerd를 설치하기 위해 아래 커맨드를 입력한다.$ curl --proto '=https' --tlsv1.2 -sSfL https://run.linkerd.io/install-edge | sh$ export PATH=$HOME/.linkerd2/bin:$PATH그 이후에 정상적으로 설치되어 있는지 확인하기 위해 아래 커맨드를 입력한다. 만약 아래처.. 뉴렐릭 배포 마커 적용 방법 (w. Track Changes) ❕ 들어가며 제가 다니고 있는 회사에서는 로깅 시스템, APM 시스템으로 NewRelic을 사용하고 있습니다. 이번 글에서는 NewRelic을 조금 더 잘 활용하기 위한 기능인 배포 마커 (Deployment Marker)에 대해 소개합니다. 💡 이 글을 읽게 됨으로써 얻을 수 있는 지식은 아래와 같습니다. - 배포 마커 (Deployment Marker)가 무엇인지 - 변경 사항 추적 (Change Tracking)이 무엇인지 - 배포 마커나 변경 사항 추적을 사용하면 무엇이 좋은지 - 변경 사항 추적을 사용한 배포 마커 적용 사례 ✒️ 배포 마커(Deployment Marker) 배포 마커는 배포 시점에 APM 차트와 대시보드에 마커를 추가해 주는 기능으로, 에러가 나는 경우에 배포의 영향은 아닐지 .. Secret Manager를 사용해서 Spring Boot 프로젝트의 property값 관리하기(2) - EC2 🔐 들어가며 Secret Manager란? Secret Manager는 AWS에서 제공해주는 비밀 값 관리 서비스로, 기존에 자바 환경설정 파일에 직접 하드 코딩해서 관리하는 방식을 벗어나 AWS에서 관리하는 방식입니다. 보안 정보당 월 0.4$의 저렴한 가격으로 이용이 가능합니다. 위의 사진에 있는 예시처럼 DB 정보를 저장할 수도 있고, 인증 정보를 저장할 수도 있고, API 키를 저장할 수도 있습니다. 이번 포스팅은 2가지 단계로 진행될 예정입니다. 저번 포스팅에서는 로컬에서 Secret Manager로 접근하는 방법에 대해 다룰 예정이며, 이번 포스팅에서는 서버에서 Secret Manager를 접근하는 방법에 대해 다룰 예정입니다! 이번 포스팅에서는 저번 포스팅에서 작성했던 코드에 대해서는 다루지.. Secret Manager를 사용해서 Spring Boot 프로젝트의 property값 관리하기(1) - 로컬 환경 🔐 들어가며 Secret Manager란? Secret Manager는 AWS에서 제공해주는 비밀 값 관리 서비스로, 기존에 자바 환경설정 파일에 직접 하드 코딩해서 관리하는 방식을 벗어나 AWS에서 관리하는 방식입니다. 보안 정보당 월 0.4$의 저렴한 가격으로 이용이 가능합니다. 위의 사진에 있는 예시처럼 DB 정보를 저장할 수도 있고, 인증 정보를 저장할 수도 있고, API 키를 저장할 수도 있습니다. 이번 포스팅은 2가지 단계로 진행될 예정입니다. 이번 포스팅에서는 로컬에서 Secret Manager로 접근하는 방법에 대해 다룰 예정이며, 다음 포스팅에서는 서버에서 Secret Manager를 접근하는 방법에 대해 다룰 예정입니다! 🔑 AWS Secret Manager 만들기 Secret Mana.. Github Action과 AWS CodeDeploy를 사용하여 Spring Boot 프로젝트 CI/CD 파이프라인 구축하기 🔐 들어가며 안녕하세요! 이번 포스팅에서는 Github Action과 AWS CodeDeploy를 사용해서 CI/CD를 구축하는 방법에 대해 설명드리려고 합니다. 수동으로 매번 배포를 할 수도 있지만, CI/CD 파이프라인을 한 번 구축해두고 나면 매번 수동으로 배포할 필요가 없어 정말 편리하기 때문에 꼭 구축해보시는 것을 추천드립니다. 이 포스팅에서 구축할 파이프라인의 진행할 순서를 간단하게 그림으로 요약하면 아래와 같습니다. 개발자가 코드를 변경하고 Github에 Push 한다. Github Action이 돌아가며 빌드&테스트를 하고(CI), 문제가 없다면 압축파일(.zip)을 만든다. 만든 압축파일(.zip)을 AWS S3에 업로드한다. 업로드한 압축파일을 넘겨주며 CodeDeploy를 이용해 배포.. 이전 1 2 다음