전체 글
[모두를 위한 클라우드 컴퓨팅 Chapter 9] condor_status 오류
[모두를 위한 클라우드 컴퓨팅 Chapter 9] condor_status 오류
2023.08.28모두를 위한 클라우드 컴퓨팅 에서 Slave 이미지를 만드는 중에 HTCondor 클러스터에 정상적으로 조인이 되었는지를 확인할 때 condor_status 라는 명령어를 사용합니다. 슬레이브 EC2 에서 이 명령어를 입력했을 때 무반응 혹은 아래 사진과 같은 에러 메시지가 뜰 수 있습니다. 마스터 EC2 과의 통신이 제대로 이루어지지 않고 있다는 오류 메시지입니다. 이 오류는 EC2 의 보안 그룹 때문에 발생할 수 있습니다. 마스터 EC2 와 슬레이브 EC2 에 할당되어 있는 보안그룹의 Inbound Rules 을 편집해줘야 합니다. 저는 0.0.0.0/0 으로부터의 All Traffic 을 허용하는 룰을 추가하여 해결하였습니다. 다만.. 이는 매우 위험한 보안 설정이므로, 최소한의 화이트리스트만 설정..
[IaC] HashiCorp Terraform Associate 003 합격 후기
[IaC] HashiCorp Terraform Associate 003 합격 후기
2023.08.19Credly 뱃지는 48시간 이내로 발급된다고 합니다. 뱃지 나오면 글을 작성하려고 했는데, 기억이 가장 생생할 때 글을 작성하고자 합니다. Badge 가 발급되었습니다. 꺄아아아ㅏㄱ 암튼 받았습니다. 해냈습니다. 시험 끝난지 24시간 안에 도착했네요! 이 자격증을 준비한 이유 지금까지 클라우드 컴퓨팅과 관련해서 여러가지 공부를 하고 있습니다. HTC, 가상화, 컨테이너, CI/CD, AWS, GCP 등등.. 여러가지 클라우드 플랫폼을 사용해보며, 멀티 플랫폼에 걸쳐있는 인프라 관리의 필요성을 느꼈고, 그 해결책으로 찾아낸 것이 IaC 였습니다. IaC 중 대표적인 친구인 Terraform 은 굉장히 매력적으로 느껴졌습니다. 콘솔에 직접 들어가서 하나하나 만들던 것을, HCL 이라는 기깔나는 친구로 한 ..
JetBrains 는 학교 이메일 검증을 이렇게 한다
JetBrains 는 학교 이메일 검증을 이렇게 한다
2023.08.16학교 이메일로 회원가입을 하면, 교육 할인을 제공해주는 서비스들이 많습니다. 대표적으로 JetBrains 에서는 학교 이메일 인증을 한 계정을 대상으로 Free Educational Licences 를 제공합니다. JetBrains 는 수많은 학교 도메인들을 어떻게 검증할까? 에 대해서 궁금해졌습니다. 학교 도메인 검증을 위한 정규식을 쓰나..? 아니면 세계 각국의 교육청에서 학교 도메인과 관련한 API 를 제공하나..? 설마 모두 수기로 관리하지는 않겠지? 그 설마가 맞았습니다. JetBrains 는 깃허브에 .txt 파일로 모든 학교의 도메인을 관리하고 있습니다. 위 사진에서는 조선대학교, 충남대학교, 친숙한 42서울 등이 보입니다. 우리 학교는 어디있을까ㅏㅏ 찾았다.. 해당 깃허브 레포지토리는 아래..
[Terraform] 추가, 삭제된걸 너가 어떻게 알아?
[Terraform] 추가, 삭제된걸 너가 어떻게 알아?
2023.08.10이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
[CDN] 동적 데이터가 많은 서비스에서 CDN 을 사용하는 이유가 도대체 뭘까..?
[CDN] 동적 데이터가 많은 서비스에서 CDN 을 사용하는 이유가 도대체 뭘까..?
2023.08.04에 대해서 갑자기 궁금해졌습니다. 흔히들 알고있는 CDN 사용에 있어서의 이점은 이미지 파일이나, JS, CSS 등과 같이 변경되지 않은 정적인 컨텐츠를 캐싱하여, 사용자의 요청이 들어왔을 때 오리진 서버에서 응답하기보다 캐시 서버에서 응답함으로써 오리진 서버의 과부하를 막고 더 빠른 속도로 응답할 수 있다는 점입니다. 그런데.. 사용자 요청이나 데이터의 정보를 기반으로 즉석에서 생성되는 동적 컨텐츠의 경우에는, 이를 캐싱하더라도 Cache Hit Ratio가 높지 않아서 CDN 을 굳이 사용할 필요가 있을까 생각했습니다. 생각이 짧았군여.. 일반적으로 캐시 서버는 지역적으로 분산되어 있습니다. 그 이유는 사용자가 어떠한 요청을 했을 때, 가장 인접한 캐시 서버로부터 컨텐츠를 전달받아 원활한 서비스를 받..
[ssh] -i 옵션
[ssh] -i 옵션
2023.08.02chmod 700 caputdraconis.pem ssh -i caputdraconis.pem user@host AWS EC2 에 ssh 로 접속하기 위해서 -i 옵션으로 .pem 키를 명시해주며 사용합니다. 위와 같은 명령어를 입력하는 머슬 메모리와 함께 말이죠..! 그런데 이렇게 너무 당연하게 사용하는 -i 옵션이 뭐일까.. 에 대해서 갑자기 궁금해졌습니다. 파일을 명시해주니 -f 와 같은 이름일 것 같았는데 말이죠. 여기서 i 는 identity 의 i 였습니다. ssh 접속 과정 중에 필요한 RSA 인증을 위한 비밀 키를 읽어 올 아이덴티티 파일을 선택한다는 의미입니다. 아이덴티티 파일이 바로 .pem 키였던거죠..! 흐헣
[Linux] tcpdump
[Linux] tcpdump
2023.07.31tcpdump 란? 네트워크 패킷을 수집하거나 분석할 때 사용할 수 있는 명령어입니다. 대부분의 유닉스 계열에서 NIC 를 통해 송수신 되는 패킷을 가로채고 표시해주는 명령어(소프트웨어) 입니다. tcpdump 를 통해 호스트와 서버 사이에 이루어지는 통신을 들여다보며, 어떤 패킷이 어떻게 이동하는지를 확인할 수 있습니다. tcpdump 를 입력하면, 현재 호스트가 전송하거나 수신하는 패킷을 엄청난 속도로 파바바박 보여줍니다. 이는 트러블슈팅을 위해서 해석하기 힘들다는 문제점이 있습니다. 그러면 어떡해..? tcpdump 를 의미있고 보기 쉽게 사용할 수 있는 옵션들을 사용하면 됩니다. nn 옵션 프로토콜과 포트 번호, 그리고 아이피 주소 등을 숫자 그대로 표현하도록 하는 옵션입니다. 위에서 확인했던 t..
[Linux] top
[Linux] top
2023.07.30top 명령어란? 각 프로세스들의 상태, CPU와 메모리의 사용률을 확인하고 싶을 때 사용할 수 있는 명령어입니다. top 명령어를 입력했을 때 출력값은 아래와 같습니다. 출력값 중에서 눈여겨볼 곳은 어딘데..? 위에서 언급했듯이 top 명령어를 통해서 각 프로세스들의 상태, CPU/메모리 사용률을 알 수 있습니다. 여기서는 각 프로세스들의 CPU 사용률과 상태값을 어떻게 확인할 수 있는지 보겠습니다. CPU Usage top 명령어 출력값의 상단에 위치한 영역입니다. 초기값은 Cpu(s), 즉 멀티코어 CPU 의 경우 각 코어 사용률의 Average 값을 산출합니다. 전체적인 상황을 보기에 이러한 평균 값도 나쁘지 않지만, 하나의 CPU 만 빡세게 사용되고 있다면 이를 평균값으로 통해서 알아내기는 어렵..
[Linux] free
[Linux] free
2023.07.28free 명령어는? free 는 시스템의 메모리 정보를 출력하는 리눅스 명령어입니다. 단위를 megabyte 로 설정하여 출력하라는 -m 옵션을 추가하면 아래와 같은 출력값이 나옵니다. 출력값을 살펴보면 total, used, free, shared, buff/cache, available 와 같은 컬럼이 존재합니다. total 과 used 는 각각 메모리 총량과 사용 중인 메모리를 나타내는 것입니다. 그렇다면 free와 available 의 차이는? 우선 free 는 어느 프로세스도 사용하고 있지 않은 메모리를 의미합니다. 메모리를 필요로 하는 프로세스에게 바로 할당해줄 수 있는 메모리입니다. 이에 반해 available 은 프로세스에게 실질적으로 할당이 가능한 메모리입니다. 다른 프로세스가 사용중일 ..
[Linux] Syn Flooding
[Linux] Syn Flooding
2023.07.27Syn Flooding 이란? TCP 의 3-Way Handshake 과정에서 클라이언트와 서버는 위 그림과 같이 3번의 패킷 전달을 수행합니다. 클라이언트가 연결하고자 하는 서버에게 SYN 을 보내면, 서버는 그에 대한 응답으로 SYN+ACK 을 보냅니다. 서버로부터 SYN+ACK 패킷을 수신한 클라이언트는 마지막으로 ACK 패킷을 보내며 연결이 성립됩니다. 서버는 클라이언트로부터 SYN 을 받기 전에 listen() 상태를 유지하고 있습니다. 클라이언트로부터 SYN 패킷이 들어오면, 서버는 SYN Backlog 라는 "길이가 제한되어 있는 큐" 에 "Client x가 나와 연결을 하고 싶어한다!" 라고 저장합니다. 그리고 클라이언트에게 SYN+ACK 패킷을 전송하게 됩니다. 클라이언트로부터 ACK 패..
[Linux] OOME (Out-Of-Memory Error)
[Linux] OOME (Out-Of-Memory Error)
2023.07.27OOME란? 사용 가능한 메모리가 부족해서, 더이상 프로세스에게 할당할 수 있는 메모리가 없는 상황을 의미합니다. 이런 상황에서 새로운 프로세스에게 메모리를 할당하기 위해서, 종료할 프로세스를 선택하고 이를 종료함으로써 메모리를 확보합니다. 종료할 프로세스를 선택하는 기준은 무엇인가? OOM Killer 가 종료시킬 프로세스를 선택하는 기준은 oom_score 라는 값입니다. 이 값이 높은 프로세스가 다른 프로세스들보다 더 먼저 종료됩니다. 아래와 같이 oom_score를 가진 프로세스들이 있다고 가정해보겠습니다. 프로세스 1 : 4 프로세스 2 : -2 프로세스 3 : 0 프로세스 4 : 6 종료할 프로세스들은 위 4개만 존재한다고 가정했을 때, 프로세스 4 -> 프로세스 1 -> 프로세스 3 -> 프..
컨테이너에 대한 강의 추천
컨테이너에 대한 강의 추천
2023.07.20컨테이너라고 하면, 흔히들 도커+쿠버네티스 환경을 떠올립니다. 하지만 도커는 컨테이너를 다루는 도구, 쿠버네티스는 도커와 같은 컨테이너 런타임을 통해 컨테이너를 오케스트레이션 하는 자동화 도구에 불과합니다. 이들을 제대로 사용하려면 컨테이너에 대해서도 잘 알아야합니다. 저 또한 도커와 쿠버네티스를 공부하면서 컨테이너에 대한 지식이 부족함을 느꼈고, 이를 보완하기 위한 여러 자료들을 찾아보다가 좋은 강의가 있어서 글을 작성합니다. HandsOn 형식의 강의입니다. https://www.youtube.com/watch?v=mSD88FuST80