[HomeLab] - VM 생성
·
HomeLab
지난 포스팅까지 Proxmox, Network설정을 마쳤으니 이제 VM을 생성해 보겠습니다. 이번 포스팅은 핸즈온에 가까운 포스팅이 될 것 같습니다.Proxmox 웹 인터페이스에 로그인먼저 Proxmox UI에 접속 후 로그인해주세요.ISO 파일 업로드OS를 설치하기 위해 ISO파일이 있어야 합니다. 저는 Ubuntu 24.04 server LTS(Long-Term Support) 버전으로 설치할 예정입니다. server버전은 GUI가 없지만 그만큼 리소스도 최적화되고 서버 환경에서 서비스를 제공하기 적합하기에 선택했습니다. (나중에 Desktop mode를 따로 활성화시킬 수 있습니다.) OS 이미지를 Proxmox에 업로드 하는 방법은 두가지가 있습니다. 다운받아서 올리거나 링크를 통해 업로드 할 수..
[HomeLab] - 라우터 추가
·
HomeLab
개요저번 시간까지 Proxmox 환경을 세팅했습니다. 오늘은 간단한 공유기를 추가 설치하며 네트워크 설정을 진행해보겠습니다. 동기지난 포스팅에서 Proxmox를 설치할 때 랜선이 부족해서 집에서 사용하는 공유기에 곧바로 해당 미니PC를 연결해서 구축했었습니다.  하지만 저는 메인 공유기와 미니PC 사이에 중간 공유기를 추가로 두려고 합니다. 제가 그렇게 결정한 이유를 몇 가지 설명드리겠습니다. 1.  보안 강화중간에 공유기를 추가하면 홈서버를 메인 네트워크와 분리할 수 있습니다. 이로써 홈서버의 데이터 전송이 다른 기기들의 트래픽과 겹치지 않기 때문에 해킹이나 외부 침입 시에도 메인 네트워크의 다른 장치에 미치는 위험을 줄일 수 있습니다고 판단했습니다. 이는 제가 보안권장사항을 완벽하게 준수하리라는 다짐..
[HomeLab] - Proxmox 설정
·
HomeLab
지난 시간 한정적인 리소스로 인해 미니 PC에 2개의 가상머신을 띄워서 작업하기로 결정했습니다. 그러기 위해서 선택한 것이 바로 Proxmox였는데요. 해당 포스팅에서는 Proxmox가 무엇인지 알아보고 이어서 환경세팅을 진행해보겠습니다.Proxmox란?Proxmox는 가상화 관리를 위한 오픈 소스 소프트웨어 서버입니다. 설명을 보니 VM외에도 LXC 즉, Linux Containers도 지원해주어 컨테이너 기반의 가상 환경 또한 제공해주는 것 같습니다. 이에 더해 웹 기반의 UI를 제공해주어 쉽게 가상 머신과 컨테이너를 관리할 . 수있습니다. 그런데 여기서 하이퍼바이저 앞에 "Type1"이라는 단어가 눈에 들어왔습니다. 그렇다는 것은 하이퍼바이저에 타입이 여러 개 있다는 말이기도 합니다. 공부를 하고..
[HomeLab] - 시작
·
HomeLab
Home 서버로 Kubernetes Cluster 환경을 구축하기로 마음먹었습니다. 오늘의 포스팅은 시작하는 만큼 동기, 목표에 대해서만 아주 간략하게 서술하며 가볍게 시작하려합니다.동기누군가의 지원 없이 쿠버네티스를 학습하는 것은 꽤나 어렵습니다. 제 기준에서 그 첫번째 이유는 비용이었습니다. 졸업 후 용돈을 받기엔 눈치도 보이고, 모아둔 주식을 팔아 연명하는 와중이라 EKS나 스펙 좋은 PC를 구입하는 등의 지출이 고민되었죠. 이에 따라 k3s를 사용하여 단일 노드 환경에서 가벼운 쿠버네티스 클러스터를 구축해 실습을 진행하고는 했습니다. 하지만, 리소스 부족으로 Pod를 몇 개만 띄워도 금방 사용할 수 없는 상태가 되어버렸습니다. 그러던 중 제가 활동하고 있는 "클라우드 클럽" 동아리에서 HomeLa..
[90DaysOfDevOps] 프로그래밍언어 Go 입문(Day 07~08)
·
90DaysOfDevOps
DevOps에서도 프로그래밍 언어는 학습해야 합니다. 해당 섹션에서는 Go를 학습할 수 있는 커리큘럼이 구성되어 있습니다. 이유가 뭘까요? DevOps에서 사용되는 대부분의 도구가 Python 혹은 Go로 작성되어 있습니다. 이전에 Kubernetes에서 Pod의 생명주기에 대한 이해를 위해 코드를 까보았을 때도 Go로 짜여진 코드를 보며 Go에 대한 학습에 대한 필요성을 느끼고 있었으니 잘됐습니다. 이번 챕터에 맞춰 Go언어를 학습하고, JavaScript나 Python과 같은 스크립트 언어는 이후에 따로 학습을 진행하겠습니다.Go언어의 특징컴파일-링크 모델(정적링크)Go프로그램은 정적으로 링크됩니다. 즉, 컴파일 시점에 모든 것이 바이너리 실행 파일에 포함되어 원격 시스템에 외부 종속성을 설치할 필요..
[90DaysOfDevOps] DevOps란 무엇인가(Day01~06)
·
90DaysOfDevOps
데브옵스엔지니어가 되기 위한 여정을 시작하려 합니다.누군가 저에게 데브옵스가 뭐냐고 묻는다면 저는 이렇게 말할 것 같습니다. "어.. CI/CD파이프라인을 구축하고.. 어.. 자동화된 운영을 통해 배포를.. 준비해오겠습니다." 저는 DevOps 엔지니어링에 대해 어렴풋한 이해와 얕은 지식을 갖고 있습니다. DevOps 엔지니어링에 흔히 사용되는 도구를 겉핥기로 사용해봤고, 개발을 주로 하다 인프라, 클라우드에 관심을 갖기 시작한 저에게 해당 직무는 아직은 막연한 단어였습니다. 이에 따라 한번 제대로 파보고자 합니다. 이에 따라 많은 이들이 해당 깃허브를 참고하여 학습을 진행해보고자 합니다.(클라우드클럽 6기 시즌1 스터디에 해당 주제를 갖고 진행하신 분들이 계시는데 참여하지 못한 아쉬움에 혼자 진행해보..
[k8s] Pod의 생명주기
·
Kubernetes
오늘은 쿠버네티스의 가장 작은 단위인 Pod의 생명주기를 이해하며 클러스터에서 애플리케이션이 어떻게 동작하고 관리되는지  이해해보려 합니다. Pod는 여러 상태를 갖고 있습니다. 사실 Pod의 상태변화에 대한 일반적인 관심은 보통 '왜 장애가 났는가'로 귀결되고는 합니다. 이런 경우 kubectl describe 명령을 통해 원인에 대해 파악하려는 시도를 합니다. 하지만 왜 장애가 났는 지 이전에 어떤 과정으로 장애가 발생하는 지 이해한다면 장애지점에 대해 유추할 때 보다 넓은 시야를 가질 수 있을 것이라 생각합니다. Pod의 상태Pod는 생명주기 중 딱 한번만 스케줄링됩니다. Pod가 특정한 Node에 스케줄링되고 나면, 해당 Pod는 중지되거나 종료될 때까지 스케줄링되지 않고 해당 Node에서 실행..
[AWS] 실시간의 실시간 - CloudFront, Amazon Kinesis Data Streams
·
개발
이번 포스팅에서는 Cloudwave교육과정 최종 프로젝트로서 올리브영 시스템을 구축하는 과제를 진행하며 제안한 개선사항에 대한 내용을 다루겠습니다.1. 요구사항 정의썸네일과 같이 올리브영의 현재 시스템 중에는 실시간 랭킹이라는 기능이 있습니다. 이는 앱에서만 지원하는 기능인 것으로 확인이 됩니다(아마도..!) 해당 기능은 현재 어떤 상품이 인기가 있는 지 보여주는 역할을 합니다. 하지만 이 기능을 보면 볼수록 한가지 의아한 부분이 있었습니다. 바로 실시간이라고 하지만 사실 그 랭킹은 몇 시간 전에 업데이트 된 랭킹일 수 있다는 점이었습니다. 저는 실시간이라는 키워드와 2시간 전 업데이트라는 키워드가 이중적이라고 생각했습니다. 그렇다면 올리브영은 왜 몇 시간 전 상품에도 실시간이라는 키워드를 넣어야만 했을..
훈