본문 바로가기

Infra & Tools9

[Linux] Linux는 무엇이고, Ubuntu는 무엇일까 개요 Linux는 커널을 기반으로 하는 운영체제이고, Ubuntu는 Linux의 배포판이다. 목차 1. 리눅스에 대해 알아보자. 리눅스를 왜 많이 사용할까? 커널은 무엇일까? 운영체제는 무엇일까? 운영체제와 커널의 차이는 무엇일까? 2. 우분투에 대해 알아보자. 우분투를 사용하는 이유 3. 정리 1. 리눅스에 대해 알아보자. 리눅스(Linux)는 1991년 9월 17일 리누스 토르발스가 처음 출시한 운영 체제 커널인 리눅스 커널에 기반을 둔 오픈 소스 유닉스 계열 운영 체제 계열 이다. 리눅스를 왜 많이 사용할까? 안정한 운영체제이다. 사용자의 수가 많은 시스템이다. 많은 프로세스를 동시에 실행할 수 있다. windowOS, macOS와 같이 미리 정의되고 제한된 OS가 아닌 사용자가 커스텀하여 OS를 .. 2023. 2. 5.
배포란 ? 배포 ? 만든 작업물을 외부 환경에 공개하는 일. 1. FTP 나 원격저장소로 설치 & 실행 FTP를 통해 서버에 소스 코드를 업로드하거나 GitHub와 같은 코드 원격 저장소를 통해 코드를 업로드하고, 이후 서버에 접속하여 소스 코드를 실행시킴. → 그러나, 한 서버에 여러개 서비스를 실행할 경우, 각 서비스는 독립적이지만, 같은 실행 환경을 공유하고 있기 때문에 부작용이 발생할 수 있음. → ‘코드를 실행하는 환경'과 ‘베포의 독립성'에 대한 이슈를 제기하게 됨. 2. VM 위에 배포 VM으로 리눅스 환경을 구축하여, 이 위에서 실행할 수 있음. VM을 사용하여 테스트 환경과 똑같은 운영체제 환경을 구축 할 수 있음. 3. 컨테이너 기반 (Docker) 으로 배포 코드 개발 → Dockerfile 을.. 2022. 6. 2.
가상화 기술과 도커 OS 하드웨어 리소스를 관리하는 소프트웨어. 사용자와 하드웨어 사이 매개체 역할을 함. 가상화 기술이란 ? 하드웨어 리소스를 추상화하여 소프트웨어화 하는 기술. (예를 들어, 가상화 기술을 통해, 또다른 운영환경 (CPU 1코어, Memory 2G, Ubuntu 16.04) 처럼 소프트웨어를 만듬) → 하드웨어 리소스를 추상화했기 때문에 서비스에 자원을 자유롭게 할당할 수 있음. → OS에 관계없이 동일한 환경에서 소프트웨어를 구동할 수 있음. → 특정 리소스만큼 할당된 가상화 공간을 제공받음. 가상화 기술 종류 VM (Virtual Machine) → VM은 하드웨어를 가상화하는 기술 중 하나로, 컴퓨터에 기본적으로 설치한 OS 위에 Hypervisor라는 소프트웨어를 통해 여러 OS (Guest OS.. 2022. 6. 2.
모놀리스와 마이크로서비스 소프트웨어 아키텍처 패턴. 모놀리스 (Monolith) 아키텍처 모놀리스 아키텍처란 하나의 소프트웨어를 구성하는 모든 모듈을 한 프로젝트에서 관리함. → 한 프로젝트 내에 모든 모듈과 코드가 있음 → 소프트웨어가 비규적 단순 → 그러나, 애플리케이션 코드가 많아지고 서비스가 확장되면 전체 구조나 코드 흐름을 쉽게 이해하기 어려움. 한 프로젝트 내에 있는 코드이므로, 모든 코드가 결합되어 있기 때문에 사이드 이펙트가 일어날 수 있음. ⇒ 모놀리스 아키텍처는 하나의 소프트웨어를 하나의 프로젝트로 개발하는 아키텍처임. 마이크로서비스 아키텍처 마이크로 서비스는 하나의 소프트웨어를 구성하는 컴포넌트들을 독립적인 프로젝트들로 분리하여 관리함. → 각각의 컴포넌트들을 마이크로 서비스라고함. → 개발과 배포도 분리된 .. 2022. 6. 2.
[AWS RDS/ mariaDB] AWS RDS 환경 구축하기 이번 포스팅에서는 AWS RDS 인스턴스를 생성하여, IntelliJ 내 프로젝트와 연동하는 과정에 대해 알아보자. 사용할 DB는 mariaDB입니다. DB 선택 이유는 이전 포스팅에서 확인해주세요~ (이번 포스팅에서 RDS를 EC2 서버와 연결하는 것은 다루지 않습니다!) 1. AWS RDS에 접속하기 AWS 링크 👉🏻 https://ap-northeast-2.console.aws.amazon.com/ 2. RDS 인스턴스 생성하기 (1) 데이터베이스 생성 버튼을 클릭한다. (2) 데이터 생성 방식 선택 - [표준 생성] 선택 (3) 엔진 옵션 - [MariaDB] 선택 (4) 템플릿 - [프리티어] 선택 (5) 상세설정 - DM 인스턴스 클래스 : db.t2.micro -1 vCPU, 1 GIB RA.. 2020. 8. 5.
CI & CD 에 대해 알아보자. 목차 1. CI/CD에 대해 알아보자. 2. CI/CD 연동 시 구조에 대해 알아보자. 1. CI/CD에 대해 알아보자. CI (Contious Integration)은 지속적 통합이다. 지속적 통합이라는 것은 어떤 의미일까? 코드 버전 관리를 하는 VCS (Git,SVN 등)에 PUSH를 하면 자동으로 테스트와 빌드가 수행되어 안정적인 배포 파일을 만드는 과정이다. CD (Contious Deployment/Continuos Delivery)는 지속적인 배포/지속적인 서비스제공이다. 지속적인 배포란, 빌드 결과를 자동으로 운영 서버에 무중단 배포까지 진행되는 과정이다. 이러한 과정이 왜 필요하게 된 것일까? 이를 알아보기 위해 아래에는 Red Hat 문서에 있는 글을 가져와 보았다. CI/CD는 애플리.. 2020. 7. 26.