linux-lsof

사이트 확인중 이상 증상이 있는 고객이 있었다.

사용량이 많아지면 mysql.sock 에러가 발생하는 것이었다.

apache 에서 mysql 접속시 socket을 생성한다는건 일반적으로 접속을 Localhost 로 설정해야 하는데, local의 database를 사용하지 않는 상태였다.

socket을 사용하는 에러를 찾기위해 lsof 를 먼저 사용했다.

lsof | grep sock
httpd 15233 apache 5u sock 0,7 0t0 658393448 can't identify protocol
httpd 15250 apache 3u sock 0,7 0t0 658393444 can't identify protocol
httpd 15250 apache 5u sock 0,7 0t0 658393448 can't identify protocol
httpd 15258 apache 3u sock 0,7 0t0 658393444 can't identify protocol
httpd 15258 apache 5u sock 0,7 0t0 658393448 can't identify protocol
httpd 15312 apache 3u sock 0,7 0t0 658393444 can't identify protocol
httpd 15312 apache 5u sock 0,7 0t0 658393448 can't identify protocol
httpd 15314 apache 3u sock 0,7 0t0 658393444 can't identify protocol
httpd 15314 apache 5u sock 0,7 0t0 658393448 can't identify protocol

can't identify protocol mysql.sock 문제가 아니라 apache 의 sock 문제가 발생하고 있었다.

can't identify protocol 는 소켓이 완전히 닫히지 않거나 누수가 있다고 판단되는데, 확인이 필요했다. 요인은 openfile 갯수나 여러가지 요인이 있을거라 생각해서 먼저 openfile을 확인했다.

ulimit 로 확인한 openfile 갯수는 1024와 일단 수정해 줬다.

echo "* soft nofile 65535" >> /etc/security/limits.conf
echo "* hard nofile 65535" >> /etc/security/limits.conf
ulimit -Hn 65536
ulimit -Sn 65536

cat /proc/net/sockstat
sockets: used 261
TCP: inuse 17 orphan 0 tw 44811 alloc 54 mem 49
UDP: inuse 5 mem 15
UDPLITE: inuse 0
RAW: inuse 0
FRAG: inuse 0 memory 0

sockstat 를 확인시에 현재는 문제가 되는 상태는 아니었다.

이 조치 이후 추가적인 모니터링을 진행할 것이다.

AWS-IP-list

wget https://ip-ranges.amazonaws.com/ip-ranges.json

wget 으로 먼저 aws 의 IP list 를 받는다.

yum install jq

jq를 다운받는다.

jq '.prefixes[] | select(.region=="ap-northeast-2") | select(.service=="S3") | .ip_prefix' < ip-ranges.json
"52.219.60.0/23"
"52.219.148.0/23"
"52.219.56.0/22"
"52.219.144.0/22"

IP list를 필터하여 확인한다.

jq '.prefixes[] | select(.region=="ap-northeast-2") | select(.service=="S3") | .ip_prefix' < ip-ranges.json | tr -d '"'
52.219.60.0/23
52.219.148.0/23
52.219.56.0/22
52.219.144.0/22

tr 로 " 를 삭제한 예제.

NCP-VPC-Update

드디어 NCP 에도 VPC가 업데이트 되었습니다.

VPC 모드로 전환하면 파란색으로 인터페이스가 전환됩니다.

금융존은 주황색

TMI는 여기 까지고 VPC를 생성해 보겠습니다.

아직 none-rfc-1918은 지원하지 않습니다. 다른 벤더에서도 rfc1918을 쓰는것을 권장하지만, none-rfc-1918의 필요성이 가끔 있으므로 차차 업데이트 되지 않을까 생각됩니다.

VPC 이름에는 대문자를 사용할 수 없습니다.

생성할떄 public / privite 으로 지정해서 만들게 됩니다. 인스턴스를 생성할때 public 으로 생성하면 인스턴스 용도로만 사용할수있고, private 으로 생성하면 로드벨런서 용도와 일반용도를 나누어서 생성할수 있습니다.

AWS 에서 계층화 된 서브넷의 구성에서 자유도를 빼놓은 구성같습니다.

사용자가 선택할수 있는 pub/pri 구분은 서브넷을 생성할 때 만 결정할 수 있는 것 입니다.

라우팅 테이블의 메뉴가 있긴 하나, 이 라우팅 테이블은 서브넷간 통신과 VPN 통신등을 컨트롤하는거고 public / privite 은 한번 설정하면 수정할 수 없습니다.

일단 VPC 와 Subnet을 생성했으니, 한번 classic 모드와 VPC 모드 전환시도를 간단하게 진행해 보겠습니다.

classic 모드에서 인스턴스를 생성하고, 이생성한 인스턴스를 이미지로 만든후 vpc에서 이미지로 인스턴스를 생성해보겠습니다.

생성된 서버이미지를 이제 VPC 모드에서 보겠습니다.

안보입니다.

여긴어디 나는누구........그럼 어쩌지...vpc mode 로 전환 어쩌지..

짤봇!

아직 전환할수 있는 지원은 안나온거 같고..서로 풀을 공유하지 않는것으로 보입니다.

이후 3월 4일 패치내용입니다.

서버이미지 공유와 Classic 에서 VPC로 이미지 복제기능이 런칭되었습니다.

아주 칭찬해!

옮길수있는 이미지리스트는 정해져있지만 아주 수월하게 이동이 가능합니다.

https://manvscloud.com/?p=516

manvscloud 님의 블로그를 링크하며 글을 마칩니다.

AWS Certified Database - Specialty - DBS-C01 - Review

AWS Certified Database – Specialty

AWS Certified Database - Specialty 시험을 응시했다.

공부를 안하고 먼저 연습시험부터 봤다.

8월 17일 시험을봤다. 오늘까지 한달정도의 텀이 있었고 DOP를 보면서 DBS에 대한 공부도 어느정도 같이 진행이 되었다. 이때 연습시험에서 나온점수는 45%였다.

총점: 45%
주제별 채점:
1.Workload-Specific Database Design:75%
2.Deployment and Migration:0%
3.Management and Operations:50%
4.Monitoring and Troubleshooting:50%
5.Database Security:50%

공부를 하나도 안하고 본 연습시험이라 각이 보였다. 뭐 깊은 고민도 없는 상태였고, 쭉쭉 시험을 풀어나갈수있었기 때문이다.

DOP 시험후 연습시험을 또 봤다. 이시점엔 공부가 어느정도 진행된 상태였다.

공부라함은..DB 서비스들의 docs를 대충보고 FAQ를 탐독하여 어느정도 지식이 있는상태였다. 대부분의 디비를 쓴상태지만.. 넵튠은 넵튠은...! 생소했다. 그래서 좀 열심히 봤는데 이게또 한번 생성하는 거만 못했다. 16일 밤에 부랴부랴 생성해봤다.

총점: 65%
주제별 채점:
1.Workload-Specific Database Design:50%
2.Deployment and Migration:75%
3.Management and Operations:75%
4.Monitoring and Troubleshooting:50%
5.Database Security:75%

20%를 올렸다. 불안감이 엄습했다..허어....70%였으면 불안하지 않았으리라..근데 불안했다. 그래서 연습 시험보면서 봤던 문제들을 기억해서 넵튠 만들고 오로라로 전환하고 테스트를 했다. 오로라 생성이 좀 오래걸려서..새벽2시 까지 봤다. 이과정을 해보길 잘했지 안해봤으면 넵튠 문제 다 틀릴뻔했다.

https://aws.amazon.com/ko/products/databases/

일단 이걸 기반으로 공부해야한다.

아직 Timestream / QLDB / cassandra 는 시험에 나오지 않는다.

FAQ를 중점적으로 읽고 사용사례를 꼭 읽자.

DBS 는 이미 먼저 한번 공부를 했던 su - 현님의 리드가 있었기에 공부가 쉬웠다.

공부에 도움을 주신 su - 현님께 감사를 드린다.

읽어 주셔서 감사합니다.

또 읽어주세요!

AWS Certified DevOps Engineer - Professional-Review - DOP-C01

일명 DOP 라 불리는 시험으로 AWS 에서 존재하는 2개의 pro 시험중 하나이다.

1차 8월 30일
2차 9월 14일 오늘이다.

8월 30일 시험으로는

698 점이었다. 52점이 모자랐다.

시험을 보고난뒤 현타가 왔지만 자아성찰을 했다.

나는 서비스는 다써봤다.
안 써봤을리 없지.. 그많은 기간 테스트를 해봤으니, 그런데 단순테스트와 서비스에 대한 개념만으로는 나는 DOP를 통과할수 없었다. SAP 때의 지옥이 떠올랐다. 물론 SAP는 서비스 콤비네이션에 대한 질문이 주를 이루므로 각각의 상황에 알맞는 솔루션을 선택하는거라 나의 주종목인 넓고알기에 딱 어울리는 시험이었다. 그러나 DOP는 좀 달랐다.

나는 개발자로서의 경험이 1도 없는 사람이다. 엔지니어로서 오랜기간 일을했고, git 이나, svn, codecommit 등의 서비스를 써본적은 있어도 말 그대로 써본거지 실제로 내가 이걸 활용해 본적이 없는 것이다. 그렇기에 기능분기라던가 마스터 브랜치 같은 개념이나 아티펙트같은 개념이 잘 와 닿지 않았다.

이 모든건 내가 개발자가 아니기에 OPS의 의 영역엔 강할수 있어도 DEV의 영역에는 이해도가 낮았다 라고 판단했다. 그래서 시험에 떨어진 이후, 나는 CI/CD의 Best Practice를 주로 학습하고 여러명의 개발자가 코드분기 패턴이나 승인 패턴, 테스트패턴에 대한 학습을 했다.

그리고 오늘 시험보기 전에 어느정도 확신이 섰다. 내가 뭘몰랐는지에 대한 이유를 알았기 때문이었다. 역시 시험장은 솔데스크가 좋다. 영우글로벌도 좋은데..

각설하고 학습과정은 이렇다.

먼저 자격증의 요구사항을 분석한다.

https://d1.awsstatic.com/ko_KR/training-and-certification/docs-devops-pro/AWS-Certified-DevOps-Engineer-Professional_Exam-Guide.pdf

시험 안내서면 충분하다.

https://d1.awsstatic.com/ko_KR/training-and-certification/docs-devops-pro/AWS-Certified-DevOps-Engineer-Professional_Sample-Questions.pdf

샘플문항을 풀어본다.

각자의 공부방법이 있겠지만 acloudguru나 udemy 등을 이용해서 공부해도 좋다.
그리고 나는 youtube 도 애용하는 편이다.

서비스는 사실.. 뭐...


파틸아저씨의 블로그를 서비스 항목만 참고해서 aws 상에서 만들어 보고 혼자서 실습을 한다. 주로 헤딩을 하며, 생성 구성 사용을 해보고 docs를 나중에 본다.

정독은 쉽지 않다.

어느정도 준비가 되면 연습시험을 본다. 시험 한번합격시에 연습시험 쿠폰을 1개를 주니, 무료 연습시험을 꼭보자.

연습시험에서 낮은 점수를 기록했다해도, 본시험은 그보다 난이도가 낮은 문제가 많이 나오니 너무 걱정말자. 그렇지만.. 걱정 안했다가 내가 8월30일 불합격을 맛봤다.

그 이후 이주간 개발자의 방법을 알기위한 노력을 끊임없이 진행했다.

그중에 가장 많이본건 CI/CD다...

그외에 아키텍처부분은 뭐..그냥 쏘쏘.....

https://aws.amazon.com/ko/products/developer-tools/

크게는 여기서 개발자 툴의 범주를 확인했고

https://aws.amazon.com/ko/codepipeline/faqs/

https://aws.amazon.com/ko/codebuild/faqs/?nc=sn&loc=5

https://aws.amazon.com/ko/codecommit/faqs/

https://aws.amazon.com/ko/codedeploy/?c=dv&sec=srv

https://aws.amazon.com/ko/codeartifact/faq/

https://aws.amazon.com/ko/xray/?c=dv&sec=srv

람다를 운영에서 사용하는 방법을 봤다. .serverless 에서의 lambda는 컴퓨팅을 담당하지만 DOP에서의 lambda는 AWS에서의 서비스간 역할을 강하게 묶어주는 역할이 더많은것같다.

https://aws.amazon.com/ko/lambda/faqs/

AWS Lambda를 사용하여 AWS 이벤트 처리

이 부분이 중요하다. 그리고 또 Cloudfromation AWS 에서 IaC를 맡고 있으므로 굉장히 중요..그리고 Elasticbeanstalk 아직 ECS 나 EKS는 시험에 드물게 나온다.

또한 배포방식..

https://aws.amazon.com/ko/premiumsupport/knowledge-center/codepipeline-deploy-cloudformation/

이런 자습서 꼭 참고하자..보기만 해도 도움이 된다.

내가 DOP를 이해하기위해 본것들이다.

정리를 하며 본건 아니라서 좀 중구난방인데 도움이 되길 바란다.

890점으로 통과했고,

자격증 까지 나왔다.

근래에 자격증 발급속도가 당일 발급이라 만족스럽다.

읽어주셔서 감사합니다!

다음에 또 읽어주세요.!