전체 글

전체 글

    나만의 챗봇 만들기

    "한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다."책을 읽으며 '챗GPT API를 활용한 챗봇 만들기'를 처음 봤을 때, 챗봇?... 챗봇이라고 하면 온라인 사이트에서 사람을 대신해 Q&A 해주는 것이 먼저 떠오른다. 그런 챗봇이라면, 내가 할 수 있는 걸까? 라는 생각이 들었다. 머신러닝 개발자이긴 하지만, 자연어는 잘 모르고 컴퓨터 비전만 공부해 봤던 터라 어떤 느낌인지 감이 안 왔기 때문이다. 다행히도, 책은 개발을 처음 해보는 사람도 따라 해 볼 수 있도록 낮은 난이도로 작성되어 있었다. 사용할 프로그래밍 언어인 Python부터 IDE(개발 환경) 중 하나인 Visual Studio Code 구성하는 방법부터 정말 기초부터 천천히 시작한다. 각 요소의 관계를 그려 본다거나, ..

    AWS EC2 복제하기

    AWS로 서비스를 진행하다 보면, 서비스 중인 EC2 인스턴스와 동일한 환경으로 개수를 늘리고 싶은 경우가 있다. ECS를 사용하면 간단히 개수를 조절할 수 있겠지만 그렇지 않은 경우에는 어떻게 할 수 있을까? 실행중인 EC2 인스턴스를 복제하기 위해서는 템플릿 복제와 AMI 이미지 생성이 필요하다. [주의] AMI 이미지 생성을 시작하면, 실행중인 EC2 인스턴스가 재부팅 한다. 인스턴스가 중지되도 무관한지 꼭 확인하고 진행해야 하는 점을 명심하자. AMI (Amazon Machine Image) AMI 이미지 생성 실행중인 EC2 인스턴스를 우클릭 혹은 작업탭을 선택하면 이미지 및 템플릿 항목을 확인할 수 있다. 여기서 이미지 생성을 선택한다. 이미지 이름을 입력하고 이미지 생성을 선택한다. 이미지 ..

    AWS Container Support Service (3/3)

    ECS (Elastic Cluster Service) ECS 클러스터 생성하기 ECS 클러스터는 여러 대의 인스턴스를 그룹화하고, 그룹내의 리소스를 자동으로 조정하고 관리한다. 이를 통해 Docker 컨테이너를 쉽고 효율적으로 배포, 관리 및 확장할 수 있도록 한다. 클러스터에서는 인스턴스들이 실행될 환경을 설정한다. Fargate 인스턴스를 이용하는 경우 자동으로 구성되어 별도로 설정할 필요는 없지만, EC2 인스턴스의 경우에는 인스턴스 유형이나 서브넷, 용량 등 다양한 환경 설정이 필요하다. Task 생성하기 실행하고자 하는 Docker 컨테이너를 정의하는 과정이다. 어느 인스턴스에서 어떤 Docker 이미지를 실행할 것이인지 정의한다. Task에서 하나의 인스턴스에 다수의 컨테이너가 순차적으로 실행..

    AWS Container Support Service (2/3)

    지난글에서는 ECS가 무엇인지 확인했다면, 이번에는 ECS로 서비스하기 위해서 무엇이 필요한지 알아보자. ECS로 서비스를 운영하기 위해서는 우선 컨테이너 이미지가 필요하다. 컨테이너 이미지를 저장하고 불러오기 위해서는 컨테이너 저장소가 필요하다. 대표적인 저장소인 도커 허브를 제외하고도 다양한 저장소가 있는데, 이번 글에서는 같은 AWS에서 지원하는 ECR을 활용해보자. ECR (Elastic Container Registry) ECR이란? ECR은 AWS에서 제공하는 컨테이너 이미지 저장소다. S3를 기반으로 하고 있어, 기존의 S3 이용자라면 친숙하게 느껴질 것이다. 대부분의 이미지 저장소와 주요 기능은 동일하며, 보안적인 측면에서 장점이 있다. 그리고 AWS의 다른 컨테이너 서비스들 간의 호환성이..

    AWS Container Support Service (1/3)

    Overview MicroServices Architecture 마이크로서비스 아키텍처(MicroServices Architecture)는 최근 유행하는 서비스 아키텍처의 한 방법으로, 다른 서비스 아키텍처들과 가장 큰 차이는 애플리케이션을 작고 독립적인 구성 요소로 나누어 접근하는 것이다. 각각의 애플리케이션이 서로 종속 관계가 없기 때문에, 확장이 용이하고 개발 속도를 앞당길 수 있는 장점이 있다. 또한 하나의 애플리케이션에서 문제가 발생해도 전체 프로세스가 실패할 가능성을 줄여 안정성을 높인다. 다만, 마이크로서비스는 서비스 규모가 커질수록 각 애플리케이션간의 통신을 관리하는 것이 다소 까다로울 수 있다. 이러한 장단점을 가진 마이크로서비스 아키텍처를 운영해 볼 수 있는 손쉬운 방법 중 하나가 바로..

    요즘 개발자들은 어떻게 살 것인가

    "한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다." 책을 읽으며 '요즘 개발자' 책의 내용을 한 줄로 설명하자면, 개발자로서 누구나 고민하는 주제에 대해 조언을 해주는 커리어 성장 가이드이다. 흔히 개발자들이 겪는 다양한 고충들을 어떤 식으로 풀어나갔는지, 조금 앞서 겪어 본 경험자들의 무용담이다. 이 책에서는 회고와 소통의 중요성에 대해서 이야기한다. 하지만 어디까지나 이러한 방법들은 나다움을 찾아 꾸준히 성장해 나아가기 위한 하나의 방법이다. 작가의 말을 빌려 말하자면 나다움 찾기는 커리어 성장의 여정에서 마주하는 어려움을 최소한의 시행착오로 똑똑하게 해결하는 열쇠이다. 어떤 방법이 정답이라고 가르치는 것이 아닌 나 다운 방법은 무엇일까 생각할 수 있도록 이끌어준다. 이 책을 개발자의 길로..

    근본의 Ansible?

    Ansible이란? 리눅스에서 환경을 구성하기 위해 사용하는 방법은 무엇이 있을까? 도커나 가상환경 등 여러 방법이 있지만, 기초적으로 쉘 스크립트를 기반으로 환경을 구성하게 된다. 하지만 이러한 방법으로는 다수의 서버에 동시에 동일한 환경을 배포해야 하는 상황에서는 쉽지 않다는 것이다. 이를 위해 고안된 것이 바로 IaC(Infrastructure as Code)이다. IaC는 환경의 배포와 구성을 규격화된 코드로 정의해 사용하는 것을 의미한다. 이 개념을 기반으로 하는 환경 자동화 도구의 대표적인 예시가 바로 Ansible이다. 이전의 방법론과 다르게 Ansible은 Agent가 필요하지 않는다는 장점이 있다. 즉, 따로 노드에 Ansible로 명령하거나 관리하기 위해 별도의 설치 없이 사용할 수 있..

    Slurm과 Kubernetes 정답은?

    Slurm VS Kubernetes Slurm(Simple Linux Utility for Resource Management)이란? MLOps를 이야기하면, 대부분 K8S는 많이 들어 봤을것이다. 하지만, Slurm에 대해서는 생소한 사람들도 많을 것이다. Slurm과 K8S를 비교하기에 앞서, 간단하게 알아보자. 우선 이름에서 알 수 있듯. Slurm은 리소스를 관리하기 위한 시스템이다. 그렇다면, 어떤 환경의 리소스를 다루느냐? 그건 바로 HPC(High Performance Computing) 환경이다. Slurm은 대규모 연산에 특화되어 있는 시스템으로 다수의 노드를 관리하는데 탁월한 시스템이다. 크게 slurmctld, slurmd, slurmdbd 3가지 구성요소를 가지고 있으며 slurmc..