반응형

개발 330

AWS Elastic Beanstalk 생성 시 The instance profile aws-elasticbeanstalk-ec2-role associated with the environment does not exist

EB 생성 시 예전과 동작이 달라져서 시간을 버린김에 공유 차 글을 작성해본다. EB 를 사용할 일이 있어서 AWS 계정 하나 생성해서 EB 생성을 해보려고 하니 아래 오류가 계속 발생하면서 생성이 되지 않았다. > The instance profile aws-elasticbeanstalk-ec2-role associated with the environment does not exist. 좀 찾아보니 아래와 같이 예전엔 자동으로 aws-elasticbeanstalk-ec2-role 에 관련 권한을 자동으로 포함시켜주었으나 언제부터인지는 모르겠으나 앞으론 EC2 role 을 생성해서 등록시켜줘야 한다. 링크 아래 사진이 EB 생성 시의 메뉴인데 [EC2 인스턴스 프로파일] 부분이 optional 로 선..

개발/Infra 2024.03.23

테크스펙 문서를 작성해보면서 느낀점

어쩌다보니 테크스펙 문서들을 작성해보게 되었다. 테크스펙 문서가 어떤 문서인지에 대해서는 다른 곳에서 너무 잘 이야기해주고 있어서 패스하겠다. https://blog.banksalad.com/tech/we-work-by-tech-spec/ https://infraeng.dev/tech-spec/ 처음엔 누군가 시켜서 작성을 하게 되었다가 장점을 맛본 뒤에는 누가 시키지 않더라도 테크 스펙 문서를 작성하게 되었다. 아래에 상황들에 놓여져 있다보니 자연스럽게 테크 스펙 문서를 작성하게 되었던 것 같다. 특정 서비스의 히스토리와 관련 도메인을 아는 사람들이 퇴사하면서 나 밖에 남지 않았고 서비스를 개선하려거나 기능 추가를 하려고 할 때, 관련 배경이나 도메인을 모르는 팀원들이 대부분이라 리뷰를 받기 어렵다. ..

[Kafka] retention.ms 가 지난 message 가 읽히는 이유

배경 kafka 에 특정 토픽에서 메세지를 찾는 중 retention 기간이 지난 메세지가 존재하는 것을 확인했다. 토픽 리텐션 기간을 확인 시 retention.ms=604800000 를 확인할 수 있었는데 해당 ms -> day 로 변환 시 7일이다. 그러나 09-11 에 조회 시 08-29 메세지가 조회되어서 관련해서 검색하게 되었다. 수행 명령어 ./kafka-topics --bootstrap-server ... --describe --topic .... 수행 결과 - segment.ms = 604800000 (7일) - delete.retention.ms = 86400000 (1일) - segment.bytes = 1073741824 (1GB) - retention.ms = 604800000 (..

개발 2023.09.13

maxLifeTime 무제한으로 발생한 이슈

요즘 대부분의 회사에서는 MSA 로 서비스가 구성되어 있다. 그렇다면 자신이 담당하고 있는 서비스에서 다른 서비스에 API 를 호출하게 되는 경우가 필연적으로 생기게 되는데 이 때 파악하지 못한 곳에서 문제가 생겨 훗날 기억하기 위해 글을 작성하게 되었다. WebClient 기반으로 A 서비스의 API 를 호출하고 있다고 가정해보자. 이 때 A 서비스는 AWS EB 기반의 blue-green 으로 구성되어 있으며, beanstalk 의 environment url (active.beanstalk.com) 은 route 53 에 test.com 에 연결되어 있다고 해보겠다. A 서비스가 배포할 시에 각 blue - green 환경의 url 을 스왑하는 형식으로 구성되어 있다. 좀 더 쉽게 표현하면 다음과 ..

개발/Spring 2023.05.16

kiensis, spark, ....

chatGPT 라는 놈을 요즘 아주 유용하게 사용하고 있다. 예전엔 질문들을 할 곳이 마땅치도 않아서 블라인드 it 엔지니어 게시판에 질문글 올리거나 했는데.. 나는 로그를 수집하고 프로세싱 과정을 거쳐 어딘가에 저장을 할텐데 어떤 식으로 처리를 하는지 일련의 과정들이 궁금해졌다. kinesis 와 spark 를 사용한다는 전제 하에 얘기를 해보겠다. kinesis 와 spark 는 어쨌든 실시간 데이터를 분석하고 처리하는 시스템인데.. 큰 차이점이 있다고 한다. kinesis 는 aws 에서 제공하는 서비스로 실시간 데이터를 수집하고 처리 및 분석을 하고 spark 는 오픈소스이며 대량의 데이터를 병렬로 처리할 수 있다고 한다. 그리고 데이터를 처리하기 위해 여러 라이브러리들을 제공하는 것으로 보인다...

private method 까지 테스트 코드를 짜야할까

먼저, 테스트 코드를 짜기 쉬운 코드가 있고 테스트 코드를 짜기 어려운 코드가 있을 것 같다. 내가 생각하는 테스트 코드를 짜기 쉬운 코드는 다음과 같다. 막상 생각하려니 잘 생각이 나질 않는다. SOLID 원칙을 적절히 지킨 코드 하나의 메소드가 여러 행위를 구현하지 않은 코드 (1의 연장선이겠지만) 길이가 짧은 메소드 (2의 연장선이겠지만) if, else 가 적은 메소드 만약 이런 코드가 존재한다면 어떻게 테스트 코드를 짜야할까? fun register(request: Request) { checkValidPhone(request.phone) checkValidEmail(request.email) checkAgreeMarketing(request.isAgreeMarketing) val user = ..

많은 조건들을 처리하는 코드를 어떻게 해야 유지보수에 좋은 코드가 될까 - 작성중

나중에 귀농을 한다고 생각해보자. 나는 비닐하우스에서 어떠한 작물을 키우는데 이 작물은 귀해서 키우기 굉장히 까다로웠다. 나는 이런 까다로운 조건을 알기 귀찮아서 자동화 작업을 외주로 맡겼으며, 자세한 조건은 모르지만 작물을 키우기 위해선 아래와 같은 조건들을 지켜야 한다고 가정해보자. 1. 매일 작물이 말랐을 때마다 물을 줘야 한다. 이때 작물의 성장에 따라 말라가는 속도가 다르다. 2. 물을 줄 때 작물의 성장 정도에 따라 물의 양을 다르게 주어야만 한다. 3. 이 작물은 해가 가장 높게 떴을 때에 해당하는 시간 대에 햇살을 쐬게 해주어야 한다. 4. 이 작물은 병에 잘 걸린다. 잎사귀가 썩고 나서부터 1시간 뒤 내에 병에 맞는 약을 뿌려주어야 살 수 있다. 이 작물이 걸릴 수 있는 병의 가짓수는 5..

반응형