전체 글

개발과 운영, 박찬우의 기술 블로그입니다.
DevOps/virtualization_가상화

[가상화] 전가상화와 반가상화

CPU의 인스트럭션 실행 (링(RIng) 구조) 전가상화와 반가상화를 이해하기 위해서는 링 구조에 대한 이해가 필요하다. 필요한 분량의 하드웨어 자원을 할당하기 위해 x86서버는 4개 (RIng 0-3)의 특권 명령을 운영체제와 어플리케이션 제공한다. 링 번호가 낮을수록 높은 권한을 가진 명령을 실행할 수 있다. 현재 가상화는 대부분 x86 서버에서 이루어지고 있다. x86 서버는 가상머신 hosted 방식과 다르게 하드웨어 위에서 곧바로 가상머신을 운영할 수 있게 디자인 되었기 때문에, 가상머신들은 그들 스스로가 컴퓨팅 하드웨어를 통제하고 있다고 여긴다. 응용프로그램은 Ring 3에서 실행되고, 운영체제는 Ring 0 에서 특권 명령 (privleged mode)을 사용하여 필요한 컴퓨팅 자원에 접근이..

DevOps/virtualization_가상화

[가상화] 하이퍼바이저란 무엇인가?

하이퍼 바이저를 직역하면 ‘ 무언가를 뛰어넘는 가리개 막 ‘ 위키백과에서의 하이퍼바이저의 정의: 하이퍼바이저는 **호스트 컴퓨터에서 다수의 운영체제를 동시에 실행하기 위한 논리적 플랫폼**을 말한다. 가상화 머신 모니터 (Vurtual Machine Monitor, VMM) 라고 부른다. 헬멧 등에서 바이저 : 여닫을 수 있는 부분 베어메탈(bare-metal)은 말 그대로 헐 벗은 금속이라는 의미이다.(의역하면 빈 깡통) 빈 깡통이니 OS가 설치되기 전의 서버라고 생각하면 된다. 옛날에는 이 서버에 OS를 직접 설치했으나 x86 서버 자체가 유닉스 서버 대비 중요도가 덜한 서비스에 사용되다 보니 OS 사용률이 평균 10%를 넘어서는 일이 많지 않았다. x86 가상화를 구현하는 핵심이 바로 하이퍼바이저고..

DevOps/virtualization_가상화

[가상화] x86 가상화를 이해하기 위한 기초 지식

x86 가상화를 이해하기 위한 기초 지식 0. x86 가상화란? *x86 가상화는 x86 기반의 게스트 운영체제 (윈도우, 리눅스) 가 하이퍼바이저라고 하는 가상화 레이어 위에서 구동하는 방식이다. *x86은 80 x 86 이라는 인텔이 개발한 마이크로프로세서 계열을 통창하여 부르는 말이며, 이들과 호환되는 프로세서들에서 사용한 명령어 집합 구조를 일컫는 말이다. x86 아키텍쳐는 CISC(Complex Instrucetion Set Computer) 기반으로 되어 있는데 CISC란 소프트웨어 특히, 컴파일러 작성을 쉽게 하기 위해 하드웨어화 할 수 있는 것은 가능한 모두 하드웨어에게 맡긴다는 원칙 아래 설계된 컴퓨터이다. 이에 반해 유닉스 시스템은 RISC(Reduced Instruction Set C..

DevOps/Cloud_클라우드

[AWS] CloudFront 실전 구축 세팅 (EC2와 연동하기)

CloudFront 배포 CloudFront 배포는 CloudFront의 가장 기본적인 단위이다. 이 배포가 독립적인 도메인을 가지게 된다. 이후 DNS 서비스인 Route 53이나 별도의 DNS 서버에서 배포 도메인을 CNAME으로 설정하면 사용자가 구매한 도메인과 연결할 수 있다. 여기서 중요한 개념이 오리진(Origin)이다. CloudFront는 CDN 서비스이기 때문에 항상 원본에서 파일을 복사해서 가져와야 한다. 즉, 파일을 가져오는 원본 서버가 오리진이다. CloudFront가 지원하는 오리진은 다음과 같다. S3 버킷 : 가장 기본적인 오리진이다. S3에 버킷을 생성하고 파일을 저장하기만 하면 되기 때문에 가장 간편하다. EC2 인스턴스 : EC2 인스턴스에 웹 서버를 구축하면 오리진으로 ..

CICD/Jenkins_젠킨스

[CICD] jenkins build & push, 서비스 run(3)

전 포스팅에서 이어서 진행한다. https://cwpack0730.tistory.com/77 [CICD] pipeline 생성 및 github/dockerhub 연동(2) 지난 시간에 jenkins를 container로 동작시키고 플러그인 설치, admin user 생성 등 초기 설정을 진행하였다. 오늘은 flask 코드가 있는 github 레포지토리와 dockerhub를 연동시켜보겠다. Github token 생성 https:/ cwpack0730.tistory.com 이전 jenkins pipeline에서 사진-8 github project란에 레포지토리 주소를 입력하였다. Dockerfile FROM python:3.8-slim COPY . /app RUN pip install flask RUN p..

CICD/Jenkins_젠킨스

[CICD] pipeline 생성 및 github/dockerhub 연동(2)

지난 시간에 jenkins를 container로 동작시키고 플러그인 설치, admin user 생성 등 초기 설정을 진행하였다. 오늘은 flask 코드가 있는 github 레포지토리와 dockerhub를 연동시켜보겠다. Github token 생성 https://cwpack0730.tistory.com/35 [Git] Authentication failed for ~ user a personal access token instead 에러 문제발생 Linux에서 Github를 사용하다 아래와 같은 에러가 발생하였다. 원인 해당 오류는 2021년 8월 이후로 git pull을 진행할 때 ID/Password 방식이 아닌 token을 이용하여 로그인을 하기 때문에 발생한 cwpack0730.tistory.co..

DevOps/Cloud_클라우드

[AWS] AWS CloudFront 개념 및 특징

CloudFront CloudFront는 개발자 친화적 환경에서 짧은 지연 시간과 빠른 전송 속도로 데이터, 동영상, 애플리케이션 및 API를 전세계 고객에게 안전하게 전송하는 고속 컨텐츠 전송 네트워크(CDN) 서비스이다. CloudFront는 CDN 서비스와 이외에도 기본 보안 기능(Anti-DDOS)을 제공한다. CDN이란? CDN(Content Delivery Network or Content Distribution Network, 컨텐츠 전송 네트워크)은 컨텐츠를 효율적으로 전달하기 위해 여러 노드를 가진 네트워크에 데이터를 저장하여 제공하는 시스템이다. 인터넷 서비스 제공자(ISP, Imternet Service Provider)에 직접 연결되어 데이터를 전송하므로, 컨텐츠 병목을 피할 수 있..

CICD/Jenkins_젠킨스

[CICD] jenkins 개념 및 설치(Container)(1)

지금 AWS를 이용하여 3tier 인프라 환경 구축을 진행중에 있는데, 단순 배포만 하자니 재미없을 것 같아 3tier 구성 겸 CI/CD 파이프리인 배포도 추가 구성해보려 하고 있다. 유명한 CI/CD 툴로는 젠킨스, 깃랩, bamboo 등이 있고 CD에만 집중된 GitOps, FluxCD, ArgoCD 등, 환경에 따라 다수의 툴들을 연동하여 사용하기도 한다. 본인은 CI/CD 구성의 진행 경험이 없다. 그래서 일단 예전 근무지에서 자주 접한 젠킨스를 활용해서 간단한 CI/CD 테스트 구성을 진행해보도록 하겠다. jenkins란 젠킨스는 java 기반의 CI/CD 툴이다. 쉽게 빌드와 테스트, 배포를 자동화하는 오픈소스 도구라고 생각하면 된다. 주로 소프트웨어 개발 및 배포 프로세스에 사용되며, 코드..

DevOps/기타_장비

[NAS] 시놀로지 NAS 외장하드 백업(USB-Copy)

지난번 Hyper Backup을 이용한 NAS 외장하드 데이터 백업을 진행하였다. Hyper Backup은 백업 데이터가 암호화되어 이를 복원하러면 다시 Hyper Backup을 사용해야 하는, 즉 NAS가 손상되면 NAS를 다시 구하기 전까지는 복원이 힘들다는 단점아닌 단점이 있었다. 오늘은 데이터가 암호화되지 않고 백업되는 USB Copy를 사용해보도록 하겠다. USB-Copy USB Copy - Synology 지식 센터 USB Copy - Synology 지식 센터 kb.synology.com USB copy는 시놀리지 NAS와 외부 저장소 장치 간에 파일을 복사하는데 사용한다. 해당 패키지에는 저장소의 효율적인 사용과 파일 찾기, 여러 복사 설정과 파일 정리 등의 기능이 존재한다. USB Cop..

DevOps/기타_장비

[NAS] 시놀로지 NAS 외장하드 백업(Hyper-Backup)

시놀로지 NAS 백업 및 보안 이번 주 고객사 측 시놀로지 NAS 장비의 백업과 보안 솔루션을 제안하는 작업이 있었다. 이에 NAS의 여러 백업 방법에 대해 새로 알게 된 정보들을 공유하러 한다. NAS 백업 5가지 방법 Synology NAS를 어떻게 백업할 수 있습니까? - Synology 지식 센터 Synology NAS를 어떻게 백업할 수 있습니까? - Synology 지식 센터 kb.synology.com 위 링크를 토대로 NAS 백업 방법을 5가지로 정리해봤다. 동일한 시놀로지 NAS 장비 다른 시놀로지 NAS 장비 외부 디스크 클라우드 서비스 내부 파일 서버 각 방법을 현재 상황과 비용에 대해서 정리해보니 NAS 장비 사용 혹은 외부 디스크 사용으로 굳혀진것 같다. 오늘은 이 중 외부 디스크..

DevOps/Cloud_클라우드

[AWS] AWS S3 심화 (HTTP Referer로 S3 접근 제한하기)

S3에 올려진 그림 파일을 원하는 도메인에서만 보여줄 수 있도록 설정해보겠다. S3는 데이터 전송량에 따라 요금을 책정하기 때문에 원하지 않는 도메인에서의 링크를 막는다면 그만큼 비용을 절감할 수 있다. HTTP Referer? HTTP Referer는 HTTP 헤더값으로서 웹 브라우저에서 생성하는 데이터이다. 링크를 어디서 클릭했느냐, 그림 파일을 어디서 보여줬느냐를 알 수 있다. S3에서는 이 Referer 값을 판단해서 파일을 보여주지 말지 결정할 수 있다. HTTP Referer 실습 이번에는 버킷을 2개 사용하겠다. 버킷 하나에 웹사이트를 구축하고 HTTP Referer를 설정한다면 정작 웹사이트의 HTML 파일을 볼 때는 HTTP Referer 설정에 막혀버리기 때문에 의미가 없다. 새로 생성..

DevOps/Cloud_클라우드

[AWS] AWS S3 심화 (정적 웹사이트 호스팅)

S3정적 웹사이트 호스팅 사용 S3를 웹 서버 형태로 사용해보겠다. 사실 저번 실습을 진행해보면 알겠지만 정적 웹사이트 호스팅 설정을 하지 않더라도 S3에 파일을 올리면 웹 브라우저로 파일에 접근할 수 있다. 하지만 그냥 사용하는 것과 정적 웹사이트 호스팅 설정을 사용하는 것은 큰 차이점이 있다. 다음은 일반적인 S3의 URL 형태이다. http://s3-ap-northeast-1.amazonaws.com/examplebucket10/Jellyfish.jpg s3-.amazonaws.com// 다음은 정적 웹사이트 호스팅을 사용한 S3의 URL 형태이다. http://examplebucket10.s3-website-ap-northeast-1.amazonaws.com/Jellyfish.jpg .s3-web..

cwpack0730
Woo DEV