본문 바로가기
반응형

프로그래밍174

AmazonLinux2에 EC2에 쿠버네티스 설치하기. AWS EC2에 Kubernetes를 설치하는 방법에 대해 설명합니다. OS는 AmazonLinux2을 사용합니다. (AmazonLinux2023은 Kubernetes Cluster 설치가 안되더군요. 버그인지는 모르겠지만... 8시간 삽질하다가 포기했습니다....) 1. Docker 설치 Kubernetes는 CRI(Container runtime interfaece)가 있어야 컨테이너를 실행시키고 관리할 수 있게 됩니다. 2023년 기준 docker내부에서는 containerd 라는 CRI를 사용하고 있고, docker를 설치하면 containerd를 쿠버네티스가 사용할 수 있게됩니다. 하지만 docker자체를 설치하는 것만으로도 오버헤드를 줄 수 있지만, 여기선 간단하게 구성하는 것을 목표로 하기 .. 2023. 7. 2.
AWS Session manager 란? (설명 및 설정 방 EC2를 접속할 때 기본적으로 SSH를 통해서 접속합니다. SSH를 통해서 접속하려면 SSH key가 필요하고 EC2 Inbound 22 port를 허용해 줘야 합니다. SSH를 사용하게 되면 Key 없이는 접속할 수 없고, Key를 분실하거나 탈취 당하게 되면 해킹의 우려가 있습니다. AWS에서는 Session manager를 통한 EC2접속을 할 수 있는 서비스를 제공해주고 있습니다. AWS Session manager architecture AWS Session Manager로 접속할 수 있는 방법은 3가지 입니다. 1. IGW를 통한 접속 2. VPC Endpoint를 이용한 접속. (인터넷 연결이 안되도 접속이 가능 합니다.) 우선 Session Manager의 메커니즘에 대해 알아 봅시다. 1.. 2023. 5. 6.
X-Forwarded-For(XFF) 헤더란? X-Forwarded-For(XFF) 헤더는 HTTP 요청 헤더 중 하나로, 클라이언트의 IP 주소를 식별하는 데 사용됩니다. 주로 프록시 서버나 로드 밸런서를 사용할 때 클라이언트의 원래 IP 주소를 전달하기 위해 사용됩니다. 프록시 서버나 로드 밸런서를 거친 경우, 웹 서버는 클라이언트의 실제 IP 주소가 아닌 프록시 서버나 로드 밸런서의 IP 주소를 받게 됩니다. X-Forwarded-For 헤더는 이러한 문제를 해결하기 위해 사용되며, 프록시 서버나 로드 밸런서가 이 헤더를 추가하고 클라이언트의 원래 IP 주소를 전달합니다. 웹 서버는 X-Forwarded-For 헤더 값을 사용하여 클라이언트의 실제 IP 주소를 얻을 수 있습니다. 예를 들어, X-Forwarded-For 헤더는 다음과 같이 표시.. 2023. 5. 1.
AWS EBS와 IOPS에 대한 설명. AWS 에서는 EBS라는 볼륨 장치를 제공하고 있습니다. 이 볼륨 장치 종류는 다음과 같습니다. - Solid State Drive(SSD) 볼륨 - 하드 디스크 드라이브(HDD) 볼륨 - 이전 세대 볼륨 이렇게 구성되어 있고 선택할 수 있습니다. 여기서 알아볼 건 가장 많이 사용되는 SSD볼륨 입니다. SSD볼륨은 크게 2가지 형태로 나뉩니다. - 범용 SSD 볼륨 - Provisioned IOPS SSD 볼륨 이것들에 대해 자세히 알아 봅시다. 그 전에 IOPS에 대해 알아보고 넘어갑시다. 1. IOPS IOPS (Input/Output Operations Per Second)는 EBS 볼륨의 성능을 측정하는 중요한 지표 중 하나로, 초당 입출력 작업 수를 나타냅니다. 즉, 높으면 높을수록 파일의 읽.. 2023. 4. 30.
쿠버네티스 공부 커리큘럼. 도커 공부를 어느정도 한 것 같아서 쿠버네티스에 대해 공부를 하고자 합니다. 불과 몇년 전까지만 해도 쿠버네티스를 사용하는 기업들이 많지 않았던 것 같은데... 2~3년 만에 거의 표준이 되었다 싶이 많은 기업들에서 사용하고 있습니다. 이러한 시대에 뒤쳐지지 않기 위해? 쿠버네티스에 대해 공부하는 기록을 남기고자 합니다. 제가 선정한 공부 커리큘럼입니다. 쿠버네티스 소개 및 아키텍처 이해 쿠버네티스의 역사, 목적 및 기능 쿠버네티스 아키텍처 및 구성 요소 (마스터 노드, 워커 노드, etcd 등) 쿠버네티스 오브젝트 및 API 리소스 파드(Pod), 서비스(Service), 레플리카셋(ReplicaSet), 디플로이먼트(Deployment), 스테이트풀셋(StatefulSet) 등 기본 오브젝트 이해 C.. 2023. 4. 23.
Ubuntu Docker Image로 docker in docker 만들기 윈도우에서 리눅스 환경으로 개발을 하고싶거나 할 때 사용하면 유용할 것 같습니다. 윈도우에서 도커를 설치했다면 Dockerfile을 만들어 줍니다. FROM ubuntu:latest RUN apt-get update && \ apt-get install -y apt-transport-https ca-certificates curl software-properties-common RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - RUN add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ st.. 2023. 4. 1.
도커 Images size total은 실제 용량과 같을까? https://hwan-shell.tistory.com/370 도커의 Image layer 이 글을 작성하게 된 계기는 Container를 띄울 때 Container에 생성한 파일과 디렉토리들이 어디에 저장되고 관리되는지 궁금해서 찾다가 작성하게 되었습니다. 우리는 Docker를 사용할 때 아무생각 없 hwan-shell.tistory.com 도커에서는 Image layer라는 개념을 통해 공통된 Image layer를 공유합니다. $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE hwani 1 3801c0b7b8a8 7 minutes ago 999MB hwani 2 3801c0b7b8a8 7 minutes ago 999MB node latest 0e0ab07.. 2023. 3. 30.
도커 syslog, rsyslog를 사용하여 log수집하는 방법. 도커를 실행하면 기본적으로 모든 stdout, stderr에 대한 출력 값을 볼 수 있습니다. $ docker logs [Container ID] 를 입력하면, 도커에서 실행된 모든 stdout, stderr를 확인할 수 있습니다. 1. syslog syslog는 유닉스/리눅스의 로그 정보를 담고 있는 파일입니다. 도커 log는 --log-driver=syslog 명령어를 사용해서 Host의 syslog로 전송이 가능 합니다. $ docker run -it --log-driver=syslog ubuntu root# echo hwani 그 후 컨테이너를 빠져나와서 Host의 syslog를 확인해보면 hwani라는 단어가 찍힌 것을 확인할 수 있습니다. # cat /var/log/messages | grep.. 2023. 3. 21.
도커의 네트워크 (브릿지, 호스트, 논) Docker로 Container를 만들면 기본적인 네트워크가 만들어집니다. 각 컨테이너마다 가상 네트워크 인터페이스를 만드는데, 이 인터페이스는 veth로 시작합니다. 그리고 veth로 시작하는 인터페이스는 각 컨테이너마다 생성되게 됩니다. [root@ip-172-31-11-2 overlay]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9b771db5bd22 mysql "docker-entrypoint.s…" About an hour ago Up About an hour 3306/tcp, 33060/tcp reverent_hypatia 73d16586cf36 ubuntu "/bin/bash" 26 hours ago Up 41 sec.. 2023. 3. 14.
도커의 Image layer 이 글을 작성하게 된 계기는 Container를 띄울 때 Container에 생성한 파일과 디렉토리들이 어디에 저장되고 관리되는지 궁금해서 찾다가 작성하게 되었습니다. 우리는 Docker를 사용할 때 아무생각 없이 Image를 pull받아서 Docker container를 실행합니다. Docker Image를 받아오면 sha 256으로된 hash값들이 보이고 이를 pull하면서 받오게 됩니다. 저런 hash값들의 정체가 무엇인지, Container에서 파일과 디렉토리를 생성하면 어디에 저장되는지 등을 알아보려 합니다. 1. Docker image layer Docker image는 layer로 이루어져 있으며, 각 layer 계층은 모두 Read only로 구성됩니다. 그 후 마지막 layer 위에 Co.. 2023. 3. 13.
도커 볼륨/마운트 설명과 차이점. Docker를 실행하게 되면 프로세스 위에 Container가 돌아가게 됩니다. 이런 Conatainer들은 Docker image를 기반으로 만들어지고 실행됩니다. 이러한 Container들은 Image layer위에 write형식으로 데이터들을 저장하게 됩니다. 그리고 이러한 것들을 sha256 digest 형태로 저장하고 관리하게 됩니다. 저 layer는 Overlay2 드라이버로 저장되며, /var/lib/docker/image/overlay2/layerdb/sha256 경로에 저장되게 됩니다. 여기에 Container에 작성되고 저장된 모든 데이터와 파일들이 담겨있습니다. 단, Container가 지워지면 기존에 write형식으로 저장되었던 layer도 지워지게 됨으로, Image로 해당 Con.. 2023. 3. 12.
JavaScript의 Garbage Collection Garbage collection Garbage collection은 다음과 같은 형태로 발전해 왔습니다. Reference-counting garbage collection 단순한 알고리즘 방식으로 객체의 참조 횟수를 counting하여 0이 되면 메모리에서 release시키는 방식입니다. 하지만 해당 알고리즘은 순환참조(circular references)에 취약합니다. 서로가 서로를 참조해버리면 메모리에서 release가 안되며 이는 메모리 누수(Memory leak)이 발생되는 원인이 됩니다. Internet Explorer 6 and 7에는 이러한 알고리즘 방식이 사용되어 Memory leaks가 발행한다고 알려져있습니다. 최신 Garbage collection에는 해당 알고리즘을 사용하고 있지.. 2023. 2. 22.
V8 Engine의 integer, string이 메모리 어디에 할당 되는가? JavaScript는 debug하기가 어렵습니다. 때문에 node에서 컴파일러로 사용되는 V8 engine의 docs를 보거나, 여러 사람들이 작성한 Reference를 봐야합니다. 책 JavaScript Deep Dive에서 간략하게 JavaScript메모리에 대해 설명하고 있는데, 이를 좀 더 파보려고 합니다. 1. V8 Engine 메모리 구조 V8 Engine에는 기본적으로 Stack과 Heap메모리가 있으며, Literal을 저장하기위한 Constant pool이 있습니다. 2. Integer가 저장되는 방식. Integer는 기본적으로 V8 engine의 stack pointer에 저장됩니다. 저장되는 영역은 SMI(Small Integer)라는 곳에 저장되는데, 운영되는 OS에 따라 32Bi.. 2023. 1. 23.
Docker에서의 -i -t의 의미 Docker를 사용할 때, 도커 컨테이너를 실행 후 해당 컨테이너에 접근하기 위해서 위 옵션을 붙여서 사용합니다. 물론 -d(Detached)로 실행한다면 위 옵션은 필요하지 않겠죠. 그럼 -i와 -t는 무슨 역할을 하며 이거 2개의 옵션이 없으면 도커 컨테이너 내부에 접근해서 명령어를 실행하지 못할까요? 이것을 설명하기에 앞서 UNIX는 다음과 같은 말을 합니다. "everything is a file". 이 글을 읽고 저 문장이 무엇을 뜻하는지 이해하시면 성공한 겁니다~ 1. -i (STDIN) https://docs.docker.com/engine/reference/commandline/exec/ docker exec docker exec: The `docker exec` command runs a.. 2023. 1. 15.
Part 3. DevOps vs SRE ?(공통점과 차이점) 앞선 글에서 DevOps와 SRE가 하는 역할에 대해 간략하게 적어봤습니다. DevOps : https://hwan-shell.tistory.com/361 Part 1. DevOps 란 무엇일까? DevOps란 무엇일까?... 이 글을 작성하고 있는 지금 시점에서 저는 Streami 회사에서 1년 4개월 동안 DevOps Engineer로 근무를 하고 있습니다. 하지만 아직까지도 DevOps의 정의를 설명해 보라고 누군가 질 hwan-shell.tistory.com SRE : https://hwan-shell.tistory.com/362 Part 2. SRE란 무엇일까? DevOps에 대해 공부하는 도중에 SRE란 개념이 나왔고 이 개념이 저를 햇갈리게 했습니다. DevOps == SRE 인 것 같았거든.. 2022. 10. 2.
반응형

스킨편집 -> html 편집에서