본문 바로가기
반응형

hwanshell107

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.
AWS Fargate를 사용해 jenkins master <-> agent를 구성해보자. Part 3. 목차. https://hwan-shell.tistory.com/375 (Jenkins ECS Fargate 설명) https://hwan-shell.tistory.com/376 (네트워크 구축) https://hwan-shell.tistory.com/377 (ECS, Cloud Map, EFS 구축) https://hwan-shell.tistory.com/378 (Jenkins Node 설정 및 테스트) 이번에는 AWS Fargate jenkins의 셋팅을 하고, Master Agent구조를 만들어보겠습니다. 이것의 장점은 Agent가 실행되고, 빌드를 모두 마치면 자동으로 종료된다는 겁니다. 우선 젠킨스에 들어가서 기본적인 설치를 끝낸 후 PlugIn을 설치해 줍니다. 1. Install plugin .. 2023. 4. 3.
AWS Fargate를 사용해 jenkins master <-> agent를 구성해보자. Part 2. 목차. https://hwan-shell.tistory.com/375 (Jenkins ECS Fargate 설명) https://hwan-shell.tistory.com/376 (네트워크 구축) https://hwan-shell.tistory.com/377 (ECS, Cloud Map, EFS 구축) https://hwan-shell.tistory.com/378 (Jenkins Node 설정 및 테스트) 이번장에선 AWS Fargate, Cloud Map, EFS 셋팅을 해보겠습니다. 우선 Fargate에서 사용할 Cloud Map를 구현합니다. 1. AWS Cloud Map # Define Jenkins Cloud Map resource "aws_service_discovery_private_dns_n.. 2023. 4. 2.
AWS Fargate를 사용해 jenkins master <-> agent를 구성해보자. Part 1. 목차. https://hwan-shell.tistory.com/375 (Jenkins ECS Fargate 설명) https://hwan-shell.tistory.com/376 (네트워크 구축) https://hwan-shell.tistory.com/377 (ECS, Cloud Map, EFS 구축) https://hwan-shell.tistory.com/378 (Jenkins Node 설정 및 테스트) 이번에는 Jenkins에서 사용할 Network를 Terraform으로 만들어 봅니다. Terraform 구조는 다음과 같습니다. |-- main.tf |-- resources | |-- cloud_map | | `-- main.tf | |-- ecs | | `-- main.tf | |-- efs | |.. 2023. 4. 1.
AWS Fargate를 사용해 jenkins master <-> agent를 구성해보자. Info AWS Fargate를 사용해서 Jenkins를 구축하는 간단한 프로젝트를 진행해 봅니다. 목차. https://hwan-shell.tistory.com/375 (Jenkins ECS Fargate 설명) https://hwan-shell.tistory.com/376 (네트워크 구축) https://hwan-shell.tistory.com/377 (ECS, Cloud Map, EFS 구축) https://hwan-shell.tistory.com/378 (Jenkins Node 설정 및 테스트) AWS Fargate로 Jenkins master agent를 구성했을 때의 장단점은 다음과 같습니다. 장점 Agent를 관리할 필요가 없다. 여러 곳에서 Build를 해도 Throughput이 발생하지 않는다. .. 2023. 4. 1.
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.
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.
반응형

스킨편집 -> html 편집에서