전체 글

개발과 운영, 박찬우의 기술 블로그입니다.
DevOps/Cloud_클라우드

[AWS 실습] Server-less Web Service (S3, CloudFront, Route53)

Server-less Web Service (S3, CloudFront, Route53) 개요 이전 사내 웹 서비스를 서버리스로 호스팅 한 사례를 공유해보려 한다. 웹 개발자나 클라우드에 관심이 있는 사람들에게는 정말 기초적인 작업이지만 서버리스 환경을 처음 접하게 된 계기가 되어 준비하였다. 1. 신규 웹페이지 서비스 오픈 1. 웹 페이지는 개발이 완료되어 데이터 공유받음 2. 호스팅 방식 선택 3. 서비스 오픈 진행 2. 신규법인 웹페이지 호스팅 호스팅 방식 1. 본사 온프레미스에서 호스팅 2. Cloud에서 서버 생성하여 호스팅 3. AWS Service 활용하여 서버 없이 호스팅 1-1. 본사 VM 호스팅 금액: 0원(전기세...?) 관리: 서버 관리자 필요 난이도: 직접 웹서버를 구축해야 함 2..

DevOps/Cloud_클라우드

[AWS] Canned, Custom Policy 사용하여 Signed URL 생성하기

Canned Policy / Custom Policy 를 사용한 Signed URL 생성  https://cwpack0730.tistory.com/88 [AWS] CloudFront Signed URL 사용 설정Signed URL 사용 설정하기 먼저 Signed URL을 사용하러면 CloudFront 배포에서 Behavior(동작, 행동) 설정이 필요하다. 본인은 실습을 위해 새로 웹 서버를 생성하고 CloudFront로 배포중인 상태이다. CloudFrontcwpack0730.tistory.com 지난 포스팅에서 CloudFront 키 페어 생성을 완료했다. 이제 본격적으로 Signed URL을 직접 생성해보겠다.Signed URL은 보통 애플리케이션에서 자체적으로 생성하여 사용한다. 따라서 Java,..

DevOps/Cloud_클라우드

[AWS] CloudFront Signed URL 사용 설정

Signed URL 사용 설정하기 먼저 Signed URL을 사용하러면 CloudFront 배포에서 Behavior(동작, 행동) 설정이 필요하다. 본인은 실습을 위해 새로 웹 서버를 생성하고 CloudFront로 배포중인 상태이다. CloudFront 배포 목록에서 EC2와 연동한 CloudFront 배포를 선택한다. 선택한 CloudFront 배포에서 동작 탭으로 이동하여 defult 동작을 편집하였다. ! CloudFront Restrict Viewer Access 설정 ! 뷰어 엑세스 제한을 Yes로 변경하여 Signed URL을 사용했다. 신뢰할 수 있는 인증 유형으로 키 그룹을 선택할 수 있는 Trusted Key groups, 서명자(사용자)를 직접 선택할 수 있는 Trusted signer..

IaC/Ansible_앤서블

[Ansible] 출력 결과 관리 (결과값 파일로 저장, 리턴)

예전 사내에서 ansible을 처음 사용했던 때가 기억이 난다. 모든 RHEL OS 서비스(서버) 호스트들의 패스워드 만료일을 파악해달라는 요청이였는데, 서버 수가 상당했고 수작업으로 하나하나 진행하고 있었다..만, 5분의 1도 못해서 포기하고 ansible로 일괄 작업 및 자동화를 시키기로 결심했다. chage명령어를 사용해 나타나는 계정의 정보들중에서 패스워드 만기일을 나타내는 password expires 부분의 데이터만 grep 해와서 보면될듯싶은데.. ansible이 playbook 형식으로도 사용할 수 있지만, 이미 기능들이 생성되어있는 모듈들로도 충분히 진행가능한 기능인듯 싶어 모듈로 진행하였다. Inventory를 작성하여 host ec2를 명시하였다. 기능 테스트만 진행할하므로 간단히 1..

DevOps/Cloud_클라우드

[AWS] CloudFront Signed URL 개념 + URL 구조 파악

Signed URL은 CloudFront로 배포되는 파일의 사용을 제한하는 기능이다. Signed URL은 특정 날짜가 지나면 파일을 받지 못하게 하고 싶을 때, 특정 날짜 이후에 파일을 받게 하고 싶을 때, 특정 IP에서만 파일을 받을 수 있도록 할 때 사용된다. Signed URL은 크게 2가지가 있다. Canned Policy를 사용한 Signed URL : 파일 1개의 사용을 제한한다. 또한, 특정 날짜가 지나면 파일을 받지 못하게 하는 기능만 사용할 수 있다. 정책(Policy)의 내용이 URL에 포함되어 있지 않아 URL의 길이가 짧다. Custom Policy를 사용한 Signed URL : 파일 여러 개의 사용을 제한한다. 날짜가 지나면 파일 못받게 하는 기능, 날짜 이후에 받게 하는 기능..

DevOps/Cloud_클라우드

[AWS] CloudFront 캐싱 확인, 무효화 생성, 삭제

https://cwpack0730.tistory.com/79 [AWS] CloudFront 실전 구축 세팅 (EC2와 연동하기) CloudFront 배포 CloudFront 배포는 CloudFront의 가장 기본적인 단위이다. 이 배포가 독립적인 도메인을 가지게 된다. 이후 DNS 서비스인 Route 53이나 별도의 DNS 서버에서 배포 도메인을 CNAME으로 설정하면 cwpack0730.tistory.com 이전 포스팅에서 이어서 진행하겠다. CloudFront 캐싱 확인하기 배포까지 완료되었고 CloudFront에서 캐싱이 되는지 확인하겠다. cd /var/log/apache2 $ tail -f access_log 로그를 띄우고 이제 EC2 DNS로 접속해보고 CloudFront DNS로 접속하여 비..

DevOps/virtualization_가상화

[가상화] VMware vSphere 개요

VMware vSphere 란? VMware 가 vSphere라는 이름을 붙이기 시작한 것은 버전 4부터이다. vSphere로 이름을 바꾸면서 vSphere를 클라우드 기반으로 만드는 클라우드 OS라고 정의했다. 기존 VI3의 하이퍼바이저 + 관리 툴 만으로 VMware가 생각하는 비전을 이루기에 부족하다고 생각했는지 이를 지원하는 패키지 여러가지 제품을 묶어서 패키지 형식으로 만든 것이 바로 vSphere 이라고 생각하면 된다. vSphere 6에 이르면서 호스트에서 지원하는 스펙 및 성능은 나날히 증가하여 현재는 vSphere의 핵심 하이퍼바이저인 ESXi 호스트의 메모리는 12TB까지 지원하며 CPU는 480개, 클러스터 구성 시 호스트는 64개까지 지원한다. 또한, 하나의 VM에서 지원하는 vCP..

DevOps/virtualization_가상화

[가상화] x86 가상화 아키텍쳐 구현 방식

하이퍼바이저를 이해하기 위해서는 운영체제의 유저 모드와 커널 모드를 이해해야한다. 그리고 가상화와 연관된 유저 모드와 커널 모드를 이해하기 위해서는 x86 CPU의 Protection Ring 모드를 이해해야 한다. 이는 유저모드와 커널모드가 RIng 모드의 전환과 밀접한 관계가 있기 때문이다. 베이메탈에 윈도우 OS, 리눅스 OS를 설치하면 하드웨어 - 운영체제 라는 2개의 층이 형성된다. OS가 설치되면 하드웨어의 주소를 직접 다루는 부분과 어플리케이션을 다루는 부분이 분리된다. OS에서 하드웨어를 직접 핸들링할 경우에 다루는 모드를 커널모드라고 부른다. 일반적 사용자 측면인 어플리케이션 측면에서 핸들링 하는 부분을 유저모드라고 한다. 가상화를 도입하게 되면 이 부분에서 문제가 발생하게 된다. 물리 ..

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 인스턴스에 웹 서버를 구축하면 오리진으로 ..

cwpack0730
Woo DEV