프로그래밍/ETC
[AWS] NAT Instance 로 PrivateSubnet 과 인터넷 연결하기
Private Subnet에서 외부 네트워크와 연결하기 보통 WAS 나 DB 등 보안이 중요한 서버들은 외부에서 접근할 수 없도록 합니다. 그래서 VPC 인프라를 구축할때 Public Subnet과 Private 서브넷을 만들어 그 안에 EC2 인스턴스를 두고, Bastion Host를 통해 Public 서브넷에서 Private Subnet으로 접속한 후, NAT gateway를 통해 인터넷 소스를 받습니다. 그래서 구성하게 되는게 AWS NAT Gateway입니다. 하지만 NAT 게이트웨이는 서울 리전 기준으로 시간 당 0.059 USD 이므로... 요금이 조금 비쌉니다. 그래서 차선책으로 EC2 인스턴스를 NAT 처리용으로 설정해 사용하는 NAT Instance를 만들어 사용할 수 있습니다. 가용성과..
[Elasticache] Serverless Cluster - Redisson Connection 문제
기존 샤드 2 레플리카 2 로 구성해놓은게 생각보다 비용이 많이나와 (42USD...) 클러스터 삭제 후 다시 생성했다.. Elasticache 생성 방식 중 Serverless 방식이 새로 나와 해당 방식으로 클러스터를 만들고 Redis Config를 수정해주고 테스트를 진행해보았다.. 테스트를 진행하니 자꾸 커넥션이 클로즈 되어 트랜잭션이 자꾸 롤백되고있었다 로그를 보니 다음처럼 계속 다른 IP host로 커넥션을 요청을 반복하고있었다 2024-01-24T12:47:37.027Z24 connections initialized for IP1/IP1:6379 2024-01-24T12:47:37.021ZIP2/IP2:6379 master and related slaves: removed 2024-01-24..
[ElasticCache] Redis Cluster command execute 에러
개요 ElasticCahce for Redis로 클러스터를 구성하고 SpringBoot에 연동을 하는 작업을 했다. 연동 확인 하고 api를 돌려봤는데 org.springframework.data.redis.RedisSystemException: Error in execution... 중략 이 나오면서 트랜잭션이 자꾸 실패가 났었다. 원인 로컬에서 Redis Connection Factory에 기본 StandAlone으로 설정이 되어있었다. @Bean public LettuceConnectionFactory lettuceConnectionFactory() { return new LettuceConnectionFactory(host, port);
[CodeDeploy] 배포 중 나타나는 에러들 해결
개요 Code Deploy를 이용해 ec2 에 서버를 배포하던 중 발생한 에러들과 해결방안에 대해 작성하려합니다. 에러 로그 확인 방법 cd /var/log/aws/codedeploy-agent.log # 에러로그 파일 위치입니다. # 배포 중 실시간으로 확인하고 싶으시다면 tail -f codedeploy-agent.log 에러 1. appsepc.yml 을 찾을 수 없다는 에러 agent 로그를 보면 중간에 다음과 같은 에러메시지가 발생하는 경우가 있습니다. ...중략 "The CodeDeploy agent did not find an AppSpec file within the unpacked revision directory at revision-relative path \\\"appspec.yml..
[기술면접] TCP/UDP 의 차이
TCP (Transmission Control Protocol): 연결 지향성 (Connection-Oriented): TCP는 연결을 성립하고 데이터를 전송한 후에는 연결을 종료하는 과정이 포함됩니다. 이는 신뢰성 있고 정확한 전송을 보장합니다. 신뢰성 및 흐름 제어: TCP는 데이터를 세그먼트로 분할하여 전송하고, 수신측에서는 세그먼트를 재조립하여 상위 계층에 전달합니다. 또한, 흐름 제어 기능을 통해 수신측의 처리 속도를 조절하여 과도한 데이터 손실을 방지합니다. 순서 보장: TCP는 데이터의 전송 순서를 보장하여 수신측에서는 정확한 데이터 순서로 재조립합니다. 높은 신뢰성: 오류 복구 기능과 재전송 메커니즘을 제공하여 안정적인 데이터 전송을 보장합니다. 사용 예시: 웹 브라우저의 HTTP 통신, ..
Mac M1 에서 Jmeter 설치하고 테스트하기
동시성 테스트를 위해 성능 테스트 도구가 필요했습니다. Jmeter를 설치하고 기본적인 테스트를 어떻게 만드는지 작성하려고합니다. Jmeter 설치하기 Mac 에서 설치하는 경우 두 가 지 방법이 있습니다. 1. Brew 를 통한 설치 터미널에서 다음 명령어를 실행하시면 됩니다. brew install jmeter 설치 후 실행은 다음과 같이 하시면 됩니다. open /opt/homebrew/bin/jmeter 2. 공식 페이지에서 다운로드 아래 링크를 타셔서 Binaries에 있는 파일을 다운로드 받으시면 됩니다. https://jmeter.apache.org/download_jmeter.cgi Apache JMeter - Download Apache JMeter Download Apache JMete..
[기술면접] SQL, NoSQL 장단점
* SQL == RDBMS ( 관계형 데이터베이스 ) 라고 할 수 있음 => SQL 이라는 언어는 관계형 데이터베이스 시스템을 제어하기 위한 전용 프로그래밍 언어이다. 따라서 관계형 데이터베이스를 SQL 이라고도 할 수 있다. SQL 장점: 명확하고 엄격하게 정의된 스키마와 관계를 통해, 데이터 무결성을 보장합니다. 단점 : 정의된 스키마에 의해 테이블의 수정이 번거롭습니다. 테이블 간의 관계를 맺고 있기 때문에 JOIN 문이 많은 복잡한 쿼리가 될 수 있습니다. 수평적 확장이 어렵습니다. NOSQL 장점: 정의된 스키마 가 없기 때문에 유연합니다. 어플리케이션에 맞는 데이터로 저장하고 key - value 구조 상 데이터를 쉽게 찾을 수 있어 데이터를 읽어오는 속도가 빠릅니다 수직 및 수평확장에 용이합..
[PostgreSQL] 알아두면 좋은 기본 명령어
PSQL 주요 Command 1. \c : 접속한 DB Instance를 변경. 여러 DB Instance들이 있고, 정보를 조회나 Query 실행 대상 DB Instance를 변경할 때 사용한다. 사용법 \c [DB Name] [Connection User} 사용예 ... # Database Instance 'messenger'에 user 'user'로 접속 postgres=# \c messenger user You are now connected to database "messenger" as user "user". ... # Database Instance 'postgres'에 user 'postgres'로 접속 messenger=# \c postgres postgres You are now con..