일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Query
- RDS
- mysql
- EBS
- Error
- Linux
- VPN
- EC2
- onpromise
- 아마존
- fdisk
- x-real-ip
- DISK
- 센토스
- xen
- AWS
- ntp
- x-forward-for
- deragistration
- resize2fs
- port
- centos
- awscli
- 리눅스
- ubuntu
- DELETE
- terraform
- Windows
- nvme
- 인스턴스타입
- Today
- Total
Cloud
node 백엔드에서 원격지 웹서버의 client IP header 를 가져오는데 127.0.0.1 (undefinded) 라는 헤더값이 온다고 연락 받았습니다. 제가 proxy.conf 를 잘못 설정했나 var/log/nginx access로그를 보니 1.1.1.1 - - [30/Sep/2024:17:04:51 +0900] "POST /api/v1/aa HTTP/1.1" 200 8770 "-" "BestHTTP/2 v2.8.4" "-"2.2.2.2 - - [30/Sep/2024:17:05:04 +0900] "POST /api/v1/bb HTTP/1.1" 200 8770 "-" "BestHTTP/2 v2.8.4" "-" 값은 잘 찍히고 있었습니다. 이로 미루어 보아 헤더값이 제대로 나올 것 같다는 합리적..
테라폼을 온프라미스에서도 적용할 수 있는지 질문을 받았습니다. 하이퍼 바이저를 사용하지 않고 적용한다는 것은 별로 생각해 보지 않았고, 적용을 했을 때라도 자원을 논리적으로 프로비저닝 할 수 없으니, 그다지 효율적이지는 않아 보입니다. 그래도 안정성은 그대로 가져가면서, 자동화의 영역을 넓힐 수 있다면 안할 이유도 없어 보입니다. 단 tf 파일이 삭제될때는 어떻게 동작될지도 확인이 필요합니다.(그리고 언제적 PXE 기술을 꺼내는 것인지.)대략적인 구성을 생각해 본다면 1. IPMI 는 IP 할당 완료 ID/PW 설정 완료 2. PXE 서버 설정 (DHCP,TFTP,HTTP,FTP) 3. 테라폼 세팅 4. Kickstart 파일 설정 (윈도우는 prep) ks.cfg 하이퍼바이저를 통하지 않고 IPMI ..
RDS 구독 메세지를 테라폼을 적용해서 사용 중인데 리소스를 찾지 못했던 경험을 공유 합니다.이번에는 source_ids 를 정할때 aws 의 ids 가 아닌 identifier 를 입력해야 합니다. 자꾸 ids 를 다시 확인하라고 해서, 문제 해결에 시간이 걸렸습니다. 문법이나 내용은 맞는 것 같은데 실제 리소스를 찾지 못할때는 아래처럼 환경 설정이 어떻게 되어 있나 확인하고 적절한 리소스를 대입해서 찾아보면 좋습니다. terraform state show aws_db_instance.logdb01 정상적으로 rds 에 sns 구독을 연결 시키는 코드입니다.resource "aws_sns_topic" "rds_events_topic" { name = "rds-events-topic"}resource..
쿠버네티스를 운영하다 보면 어떤 이유에서든지 크래시난 pod 가 여러개 있습니다.가끔 일괄로 삭제하게 되는데 하나씩 하게 되면 너무 시간이 걸리기 때문에, 이럴때는 awk와 xarg 로 삭제하면 편합니다. ## 특정 에러만 삭제 kubectl get pods | grep 'Init:CrashLoopBackOff' | awk '{print $1}' | xargs kubectl delete pod ## 정상 메세지 이외 삭제 kubectl get pods --no-headers --field-selector=status.phase!=Running,status.phase!=Succeeded | awk '{ print $1};' | xargs kubectl delete pod
AWS 인프라를 오래 사용하다 보니, 4세대 인스턴스들의 사양을 변경 할 경우가 발생하였습니다.기존에 cluster 되어 있는 서비스들이었기 때문에 placement 그룹으로 묶어 놨던 서버들입니다. 사양 변경 내역을 확인하고 AWS-CLI 에서 일괄 배치를 돌렸는데 자원부족으로 타입 변경 에러가 발생하는 것을 확인하였습니다. 처음에는 감을 못잡고 좀 헤메다가 placement 그룹이 해제된다는 것을 발견! ( 제 기억으로는 예전에 해제가 되지 않았습니다.) 바로 해제하고 변경을 완료하였습니다. (아마존링크 참고)클러스터 배치 그룹의 모든 인스턴스를 중지합니다.영향을 받는 인스턴스의 인스턴스 유형을 변경합니다.클러스터 배치 그룹의 모든 인스턴스를 시작합니다.이렇게 가이드 되어 있는데, 그냥 하나씩 해..
프로젝트에 게임서버 롤링 업데이트가 필요하여 젠킨스 CI/CD를 이용하여 1대씩 패치를 진행하기로 하였습니다.이를 위해 aws elbv2 로드밸런서의 타겟 그룹에서 한대씩 deregistration 이 필요합니다.명령어는 아래와 같습니다. 기존에 있던 Deply code 에 target instance 들을 한대씩 번갈아 가며 세팅하게 하였으며, 그레이스풀하게 빠지는 시간에 맞춰 sleep 설정 하였습니다. (aws config 는 미리 설정되어 있어야합니다.)##REGISTRATIONaws elbv2 register-targets --target-group-arn arn:aws:elasticloadbalancing:ap-northeast-1:072498040640:targetgroup/project/0..
일단 계속 업데이트 할 예정입니다. 완료해서 포스팅 하려니까 자꾸 안하게 되어서요.alert.rule 업데이트 하고 amtool 로 문법체크 하여 줍니다. 더 해야될 것은 채널에 이름나올떄 alertmanager 가 아니라 각 채널의 이름이 나오는 것과, Annotations.description 을 못가지고 오는 것 같은데, 왜 그런지 확인 하는 부분이 남아있습니다. ( {{ $labels.name }} 으로 가져오면 됩니다.) global: resolve_timeout: 5m slack_api_url: "https://hooks.slack.com/services/ap1" # global Slack API URLroute: group_by: ['alertname'] group_wait: 30s..
사설 가상 서버에서는 rocky 이미지로 설치 후에 별다른 이상없이 SSH 접속이 가능하였으나, 최근 AWS EC2 에서 rocky 9 이미지 설치 후에 기본 private key 로 접속이 되지 않는 현상이 발생하였다.userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth] 여러 SSH 클라이언트(securecrt, xshell, putty) 로 테스트해본 결과 로키 리눅스에서 ssh 접속만 가능하고 나머지는 auth methods 가 모두 실패하는 현상이 발생하였다. 구글링을 해보니 최신 리눅스는 regacy encryption 을 지원하지 않는 것 같았다.해결 방법으로는 클라이언트 메소드를 바꾸거나 reqacy 를 지원..
젠킨스 파이프라인에서 여러개의 docker-compose 설정을 하던 중, 컴포즈 한개가 실행되고 다음 컴포즈 실행을 하면 먼저실행된 도커가 죽는 문제가 발생하였습니다. (run 되지 않음) docker network inspect 로 자세히 살펴보니 docker network 가 두번 째 컴포즈가 실행될때 삭제되고 새로세팅되는 것을 확인 하였습니다. 디렉토리안에 하나의 컴포즈가 있을 때에는 network 가 재 설치되도 문제가 없지만, 이미 기동하고 있는 컨테이너가 있는 상황이라면 기동중인 컨테이너가 exit 되는 상황이 생깁니다. 해결방법은 다른 디렉토리로 변경하거나, 사용 네트워크를 다르게 지정하는 방법이 있습니다. 디렉토리 변경은 확인을 했으나 각각의 네트워크를 다르게 지정하는 것은 테스트 하지 ..
SSL 테스트 방법은 일반 25번 포트를 이용하는 것과 다르게 인코딩 ID/PW 를 입력해야 한다. 먼저 ID / PW 를 인코딩 한다 $ echo -ne "username" | base64 dXNlcm5hbWU= $ echo -ne "password" | base64 cGFzc3dvcmQ= 그 후 서버 접속 openssl s_client -connect 서버주소:465 AUTH LOGIN 후에 334 VXNlcm5hbWU6 (username인코딩된 상태) dXNlcm5hbWU= 334 UGFzc3dvcmQ6 (password인코딩된 상태) cGFzc3dvcmQ= 235 Authentication successful 이후 본문 body 입력 MAIL FROM: 보낸사람 250 Sender address ..