
상황 및 맥락 회사에서 AWS RDS를 데이터베이스로 사용하는데, 일반 클라이언트에서 접속하기 어려움 public 접근을 막아두었기 때문에 별도의 바스티온 호스트가 필요하다는 이야기가 나왔음 바스티온 호스트라는 단어 자체를 처음 들어서 따로 찾아봄 Bastion Host 배스천 호스트 또는 바스티온 호스트라고 불리는데, Bastion은 보루나 요새라는 뜻으로 외부 공격을 막고자 쌓은 군사적 기지에서 유래했다고 한다. Private 사설망에 위치한 DB나 WAS 등 중요한 리소스들은 일일이 보호된 내부망에 직접 접속해야 하는데 운영 편의상 불편함이 발생한다. 이러한 내부 네트워크에 접근하기 위해 구축된 Public 환경의 호스트로 해당 호스트로만으로 접근할 수 있도록 하는 역할을 주로 한다. 당연하게도 일..
문제 $ docker compose build 작성한 코드로 docker compose 빌드를 하려고 하는데 아래와 같은 에러가 발생 npm ERR! code E401 npm ERR! 401 Unauthorized - [service development 4/5] RUN --mount=type=secret,id=npmrc,target=/root/.npmrc npm ci: #0 29.25 npm notice #0 29.25 npm notice New major version of npm available! 8.19.4 -> 9.7.2 #0 29.25 npm notice Changelog: #0 29.25 npm notice Run `npm install -g npm@9.7.2` to update! #0 2..
TL;DR MongoDB는 최초로 설치할 때 single node 로 생성되니, 트랜잭션을 사용하기 위해서는 Replica 설정이 반드시 필요하다. Too Long MongoDB 를 사용 중에 트랜잭션으로 데이터 일관성을 유지해야 하는 상황이 생겼다. Mongoose를 ODM으로 쓰고 있기 때문에 찾아본 결과, session을 활용하면 되었다. const session: ClientSession = await mongoose.startSession(); session.startTransaction(); try { // Add to do statement // Commit the changes await session.commitTransaction(); } catch (error) { // Rollbac..
가장 많이 사용하지만, 매번 잊어버리고 다시 검색하게 되는 주요 psql 명령어 정리 postgresql 클라이언트 실행 $ psql -U -d # 예. $ psql -U postgres -d postgres # 예. 기본 데이터베이스로 실행 $ psql postgres psql 명령어 데이터베이스 조회 # 데이터베이스 전체 조회 postgres=# \l # OR # SQL 문 활용 SELECT datname FROM pg_database; 기타 DB 정보 조회 -- schma (table) list # \t -- user list # \du -- function(extension) list # \df 권한 및 유저 관리 # 로그인 상태 유지하머 슈퍼유저로 생성 CREATE USER WITH LOGIN ..
소개 AWS에서 코드를 실행할 수 있는 서qj리스 컴퓨팅 서비스로, 개발자가 코드 단위로 작업을 구현하고 이벤트 기반 작업에 적합하다. 예. 데이터 업데이트, 파일 변환, 알림 전송 등 장점 관리 및 유지보수 용이: 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행할 수 있다. 저렴한 비용: 사용한 리소스에 대해서 비용을 지불하기 때문에 상대적으로 트래픽이 많지 않으면 보다 효율적이다. 확장성과 유연성: 트래픽이 많아지면 자동으로 확장되기 때문에 서버를 관리할 필요가 없다. 빠른 배포: 간단히 코드를 업로드하고 구성을 설정하면 신속하게 배포를 할 수 있다. 단점 제한된 환경: 서버리스 환경이 아닌, 특정 서버 설정이 필요한 인프라 기반의 환경에서는 사용하기 어려울 수 있다. 복잡성: 단순하지 않고 복..
이벤트 핸들링을 위해 AWS Lambda Function을 사용하는데, 이 경우 테스트는 어떻게 하는 게 좋을지 궁금해졌다. API를 실제로 Postman 등으로 실행시켜보는 차원이 아니라 직접 테스트 코드를 짤 때 어떤 식으로 처리하는지에 대한 궁금증이었다. 단순하게 unit test로 특정 클라우드 기능을 mocking하는 것 외에 e2e를 어떻게 구현할 수 있을지 찾아보았다. AWS 공식 문서에 따르면 1. 클라우드 테스트 2. 모의 객체 테스트 3. 에뮬레이터 테스트 이렇게 3가지를 명시하고 있다. 클라우드에서 테스트 실제 클라우드에 보안, 서비스, 인프라 관련 설정을 입력하여 코드를 배포하는 방법 실제 환경과 동일하기 때문에 가장 정확한 테스트 방법 테스트를 자동화하려면 콘솔 외부에서 실행 (예..
문제 Container Insights의 로그 솔루션 fluentd로 진행하다가 오류 발생. 제대로 동작하지 않음 kubectl apply -f fluentd.yaml 해결 공식문서에 따르면 아래와 같이 Fluentd 대신 Fluent Bit를 사용하라고 권장함 Fluent Bit를 설치하여 컨테이너에서 Logs로 로그를 전송하려면 CloudWatch 1) amazon-cloudwatch 네임스페이스 생성 kubectl apply -f 2) 로그를 전송할 클러스터 이름 및 리전 정보가 담긴 cluster-info 를 ConfigMap 로 생성 ClusterName=cluster-name RegionName=cluster-region FluentBitHttpPort='2020' FluentBitReadFr..