본문 바로가기

정보/Dev

(7)
SSH, Shell과 Daemon EC2 에서는 외부에서 public 서버 혹은 bastion을 사용해 private 서버로 접근하기 위해SSH 를 사용한다. 그리고 이를 사용하기 위해 SSH 전용 포트인 22번 포트를 열어 놓는다.그러면 SSH란 무엇이며 어떻게 사용하는 것인지,그것과 관련한 기타 리눅스 관련 용어 및 개념들을 설명하고자 한다. 1. SSH?"보안 셸(SSH) 프로토콜은 보호되지 않는 네트워크를 통해 컴퓨터에 명령을 안전하게 전송하는 방법입니다. SSH는 암호화를 사용하여 장치 간의 연결을 인증하고 암호화합니다. SSH는 또한 터널링  또는 포트 포워딩을 허용하는데, 이는 데이터 패킷이 다른 방법으로는 통과할 수 없는 네트워크를 통과할 수 있도록 하는 것입니다. SSH는 서버를 원격으로 제어하고, 인프라를 관리하며, 파..
Github Action을 이용한 CI/CD Workflow 이전 글에서 Docker를 통한 자동화 과정 때 사용하는 CI/CD 툴 중 하나가 Github Action이라고 설명한 바 있다. 여기에서 워크플로우가 어떻게 진행되는지를 상세히 서술해보려고 한다. 0.    ".github / workflows / action.yml"먼저, docker와 마찬가지로 github Action 또한 yml파일을 통해서 workflow를 구성한다.빌드 한 후 이를 배포에 사용하고자 하는 Repository의 .github/workflows 디렉토리를 만들고, 거기에 {action-file-name}.yml 파일에 상세한 워크플로우를 기술하면 된다.여기서 사용되는 yml은 이하 action.yml이라 부르겠다. 이 과정에서 사용되는 용어에 대해 먼저 얘기해보겠다. 1. 용어 ..
Docker (5) - CI/CD with Docker Workflow 이전의 4개의 글에서 docker에 대해 자세히 알아보았다.그러면 이제는 docker를 어떻게 사용하고, 이를 어떻게 본래의 목적에 맞게 활용하는지를 알아보겠다. 1. CI / CD소프트웨어 개발을 하는 사람이라면 많이 들어봤을 단어 두 개이다. 개발을 한다고 하더라도매번 새로운 기능을 구현하거나 버그를 발견할 때 마다 이를 fix해야 할 때 발생하는 문제가 바로 1. 개발한 것을 저장소에 통합하고2. 개발한 것을 프로덕션 환경에 배포해야하는 과정을 매번 반복해줘야 한다는 것이다.개발자는 귀찮음과 반복적인 작업을 자동화시켜 처리하는 과정을 즐기는편인데,이러한 과정 또한 마찬가지로 자동적으로 처리하게 해주는 작업을 진행한다. 이 과정이 CI/CD이다.이것에 대해 간단히 설명하겠다.CI (Continuous..
Docker (4) - docker private network 이전글에서 여러 image를 한 번에 생성 후 실행까지 하는 docker-compose에 대해 알아보았다.간단하게 단일, 또는 여러 개의 container와 docker-compose가 어떻게 다른지 정리하겠다. 0. multiple container vs docker-compose dockerfile을 통한 다중 컨테이너 실행 방식docker-compose를 통한 실행 방식image 빌드 명령docker build 명령docker-compose up 명령어를 통해 여러개의 컨테이너의 빌드와 실행이 동시에 진행됨.container 실행 명령docker run 명령선언형 툴Dockerfile.ymldocker-compose.ymlcontainer끼리 통신직접 컨테이너 별 네트워크 설정 필요.(각각의 컨테이..
Docker (3) - 다중 컨테이너를 묶어 정의하기 : docker-compose Docker가 배포, 실행의 차원에서 실행되는 것이라면 여러 개의 이미지를 각각 Dockerfile을 통한 build를 해주어야 하는가?에 대한 의문이 있다. 물론 2-3개라면 충분히 그럴수 있지만 docker를 통해 더 많은 이미지를 빌드하고, 컨테이너를 일일이 띄워야 하는 작업은 번거로울 수 있다. 여러 개의 container간의 통신이 필요하다면, 각각의 컨테이너별로 host OS를 통한 통신 설정을 해줘야한다. 이러한 것을 한꺼번에 설정 해두고 이를 실행해주는 것이 바로 docker-compose이다.우선, docker-compose에 대해 알아보자. 1. docker - compose?docker-compose란 Dockerfile과 같은 선언형 툴이다. Dockerfile.yml은 해당 이미지..
Docker (2) - Hypervisor와 Docker의 가상화 방식 앞서 말한 도커를 사용하는 이유 중 다중 컨테이너에 대한 내용이 있다.각각의 container가 실행하는 image에는 OS도 들어있다고 설명했다.그렇다면 Docker는 OS를 여러 개 실행하는 것인가? 이는 VM과는 뭐가 다른 것인가? 1. Linux 기반의 Docker도커는 LXC, 즉 Linux Container를 기반으로 만들어진 플랫폼이기에 이것의 명령어 또한 linux 기반이다.앞서서 Container라는 것은 cut-down OS를 내장하는 환경을 구축한다고 했지만,window 환경에서 Docker를 실행하려면 WSL2(Windows Subsystem for Linux)를 설치해야 한다.왜냐하면 window에서는 linux 기반의 container를 native로 실행할 수 없기 때문이다.l..
Docker (1) - Docker? 어떤 프로그램을 개발하고, 이를 테스트하거나 배포하고 실행할 때 실행 환경을 확인해야 하는 작업이 필요하다.가령 게임만 하더라도 OS와 스펙을 확인한다.개발에서도 일례로 package.json이나 package-lock.json을 통해 의존성을 확인하고 node 버전을 확인한다. 만약 소프트웨어를 개발하고, 이와 같은 일련의 환경 설정(런타임, OS 설정까지) 한 번에 제공한다고 가정해보면?환경 설정 자체는 하지 않아도 되겠지만 실질적으로는 매우 힘들다.일단 OS만 하더라도 설치에 수십 GB가 들어갈 것이다. 그러나 이를 비슷하게 처리해주는 것이 바로 Docker라는 컨테이너 기반 소프트웨어이다.Docker를 자세히 알아보자. 1. Docker란?Docker is an open platform for d..