Study

    Site-to-Site VPN로 AWS와 온프레미스 환경 연결하기

    Site-to-Site VPN은 무엇인가?Site-to-Site VPN의 필요성? 온프레미스 서비스에서 클라우드 서비스로 전환할 때, 가장 큰 장애물은 역시 비용이다. 기존의 온프레미스 인프라를 효율적으로 사용하면서 클라우드 서비스를 제공한다면, 이러한 문제를 해결할 수 있을 것이다. 동일한 VPC를 사용하는 인스턴스 간에는 내부에서의 접근이 가능하다. 하지만, 기본적으로 VPC와 자체 온프레미스 네트워크와 통신할 수 없다. 그렇다면, 어떤 방법이 있을까? 가장 간단하게는 엔드포인트를 통해서 통신하는 방법이 있다. 하지만, 이 경우에는 내부에서의 접근은 어렵고 데이터를 인터넷을 통해서 주고받아야 하기 때문에 보안이 취약하다. 이러한 경우에는 IPsec(인터넷 프로토콜 보안)을 이용하여 네트워크 간의 암호..

    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..

    도대체 MLOps는 무엇일까?

    본 게시글은 프로그래머스 스쿨, "마키나락스 개발자가 알려주는 MLOps" 강의를 수강한 내용을 기반으로 작성되었습니다. MLOps란 무엇인가 MLOps란? MLOps란 무엇일까? MLOps는 'Machine Learning + Operations'를 의미한다. ML 서비스를 배포하고 유지 및 관리 해주는 핵심 기술이라고 볼 수 있다. 그럼 ML 서비스는 기존 서비스랑 어떤 차이가 있을까? 기존 서비스는 크게 Frontend, Backend, Infra의 구조를 갖고 있다. 여기에서 간단한 ML이라면 Backend에 포함하여 표현하기도 하지만, 시간이 흐르며 ML의 몸집이 점차 커지면서 별도로 Frontend, Backend, Machine Learning, Infra의 구조를 갖게 된다. Machine..