국민대학교에서 "클라우드 컴퓨팅" 교과목을 진행하시는이경용 교수님의 강의 교안을 이용하여 수업 내용을 정리하였습니다 구동중인 서버에 문제 발생 시 해결 방안 =. 가능한 모든 곳에서 자원의 시작, 종료, 설정을 자동화를 하는 것을 권장 수동으로 관리되는 자원들을 줄임으로 시스템의 안정성, 일관성, 효율성을 높이도록 해야함 DevOps Development : 서비스 개발 Operations : 서비스 운용 클라우드 서비스의 등장 및 웹 서비스 보편화에 따른 Development와 Operations의 경계 모호 웹 서비스의 빠른 개선 주기로 인한 간단한 릴리즈 사이클 필요=> 코드를 활용한 서비스 배포 보편화 (IaC) Infrastructure-as-a-Code (코드를 이용한 자원 관리) ..
Infra
국민대학교에서 "클라우드 컴퓨팅" 교과목을 진행하시는이경용 교수님의 강의 교안을 이용하여 수업 내용을 정리하였습니다 AWS High Availability (고가용성) Fault-tolerance와 Scalability 관점에서 살펴보자 고가용성 (High Availability)란? 서비스를 운용하는 사람이 관리를 하지 않아도 서비스가 동작하지 않는 시간을 최소화해서 사용자에게 예측된 성능을 제공해줄 수 있는 척도 고가용성의 구현 요소들 Fault tolerance 응용예제 자체에서 문제가 발생시에도 사용자에게 영향을 전파하지 않는 능력=> fault가 failure가 되지 않게백업 서버의 구동 등 Scalability 시스템의 디자인을 바꾸지 않고도 증가하는 요청을 처리할 수 있는 능력 사용자 ..
국민대학교에서 "클라우드 컴퓨팅" 교과목을 진행하시는이경용 교수님의 강의 교안을 이용하여 수업 내용을 정리하였습니다 AWS의 Region들 us-west-2, ap-southeast-1 처럼 되어 있는 것을 볼 수 있음 => 보통은 숫자 1로 갈수록 큰 도시를 의미하며 주요 Region부터 기능이 배포됨 AWS에서 Region을 선택할 때 고려 사항들 법률적 제약 사항=> 특정 데이터는 본국을 떠나서는 안됨 등의 제약 사항 고려주요 사용자와 가까운 곳에 위치=> 응답시간 측면에서 바라봐야함지역별로 가용한 서비스가 다름=> 주로 미국 서부(us-west-2) 및 동부 (us-east-1) Region 부터 새로운 서비스가 가능해짐Region 별로 가격이 다름=> 데이터센터의 장비 가격등을 고려해보면..
국민대학교에서 "클라우드 컴퓨팅" 교과목을 진행하시는이경용 교수님의 강의 교안을 이용하여 수업 내용을 정리하였습니다 Cloud Infrastructure 하나의 데이터센터에는 일반적으로 수천대의 서버가 장착되어 있음 데이터 센터 내에 서버는 랙으로 구성됨 => 같은 랙에서는 싱글 네트워크 스위치를 통해서 연결 => 여러 랙은 고성능 네트워크 스위치로 연결 AWS Infrastructure - Region & Availability Zone (AZ) Region 물리적 지리적 위치를 기준으로 구성된 자원 세트(미국 서부, 미국 동부, 아시아 서울, 아시아 일본 지경 등..) 하나의 Region은 최소 2개 이상의 Availability Zone으로 구성됨 Availability Zone 하나 또는 ..
Linux Scurity Model은 리눅스 운영 체제에서 시스템 자원에 대한 접근 권한을 관리하고, 보안을 강화하기 위해 설계된 다양한 메커니즘을 의미함=> 사용자, 프로세스, 파일, 네트워크 자원 간의 상호작용을 제어하고, 불법적인 접근이나 해킹을 방지하는 데 도움을 줌 Linux Security Mdoel은 크게 두 가지 주요 접근 제어 방식으로 나뉨 Discretionary Access Control (DAC) DAC는 리눅스에서 가장 기본적인 보안 모델로 시스템 자원의 소유자가 파일이나 디렉토리 등의 자원에 대해 읽기, 쓰기, 실행 권한을 부여하거나 제한할 수 있음! => 파일 권한과 소유자 정보는 chmod, chown, chgrp 명령을 통해 관리 가능(객체의 주체가 접근 여부를 결정하는 분..
국민대학교에서 "클라우드 컴퓨팅" 교과목을 진행하시는 이경용 교수님의 강의 교안을 이용하여 수업 내용을 정리하였습니다 클라우드 컴퓨팅 서비스의 대중화 우선 클라우드 컴퓨팅에 대해 알아야 하는데 클라우드 컴퓨팅은 컴퓨팅을 하드웨어 관점이 아닌 소프트웨어 관점에서 활용하게 해주는 것이다! 클라우드 컴퓨팅 서비스의 특징 컴퓨터 자원의 초기 구매 없이 필요 할때 마다 대여 후 사용하는 서비스인터넷을 통한 서비스 제공업체 컴퓨터로 연결과금은 시간당 이루어 짐 (ex. CPU 4코어, 16기가 메모리는 시간당 20센트 : 전기세와 비교)컴퓨팅 자원의 유지보수, 관리 부담을 덜어 줌컴퓨팅 자원 뿐 아니라 다양한 형태의 사용자 친화형 서비스가 제공되고 있음 이렇게 클라우드 서비스 제공 업체는 자원 및 필요 소프..
set nu : 줄번호 표시(number) set ic : 검색시 대소문자 구분 X (ignorecase) set si : 자동 들여쓰기 (smart indenter) 위 옵션들을 vimrc에 넣어서 기본적으로 사용되게끔 할 수 있는데 자꾸 vimrc가 root에 대해 rw-라고 표시가 되어있는데 read only이라 저장이 안되는 이슈가 있음 (현재 Mac 사용중) 찾아보니 루트 파일 시스템이 읽기 전용(read-only)으로 마운트 되어 있다고 함 (macOS에서 보안 매커니즘?) 즉, macOS의 최신 버전에서는 보안 기능으로 인해 /usr, /System, /bin 등 루트 디렉토리가 기본적으로 읽기 전용 모드로 설정됨 => 이로 인해 시스템 파일을 수정하려고 할 때 문제가 발생하는거였음.. 시스..
프로젝트를 배포하던 중 AWS EC2에서 메모리 부족 현상으로 ssh 접속이 안되는 상황이 발생했다...(프리티어 사용중) 프리티어로 사용하게 되는 t2.micro 인스턴스 유형은 램이 1GB이기 때문에 메모리 부족현상이 일어날 수 있다! => swap file을 이용하여 swap memory 할당을 해보자!(현재 생성한 EC2는 ubuntu 환경임) EC2 램이 가득 찼기 때문에 실제 디스크의 용량을 이용하여 부족한 메모리를 대체할 공간을 swap memory 라고 함! => 보통 swap memory는 할당된 메모리의 2배를 추천하고 있다고 함! 스왑 메모리는 RAM을 대신하는 것이 아니라, RAM이 부족할 때 임시로 사용하는 비상 메커니즘으로 생각하는게 좋음=> 디스크에 저장된 스왑 메모리는 R..
EC2에 mysql을 docker를 이용해서 올려보자 https://hanjungyo.tistory.com/74 [Spring Boot] Docker를 이용해 EC2에 배포해보기EC2 인스턴스 생성 방법은 이전 포스팅을 참고해주세요!로컬에서 Docker 설정 Jar 파일 빌드하기 보통 빌드를 할 때 ./graldew clean build 를 많이 봤을텐데 이번에는 ./gradlew clean bootJar를 통해 Spring Bhanjungyo.tistory.com EC2에 docker가 설치되어있지 않다면 위 링크의 docker 설치하기 부분을 참고 EC2에 ssh로 접속을 하고 MySQL Docker Image 다운로드 sudo docker pull mysql // 제일 최신 버전 다운로드// ..
Docker를 알아보기 위해서는 컨테이너와 가상화에 대해 먼저 이야기를 해야한다! 컨테이너 그럼 컨테이너란 무엇일까? 소프트웨어와 SW를 실행하기 위해 필요한 모든 구성 파일을 포함한 소프트웨어 패키지라고 생각하면 됨! 컨테이너가 왜 필요할까? 만약 FastAPI 와 Flask를 이용해 각각 서버를 구축하기 위해 로컬에 직접 python 라이브러리들을 설치했다고 생각해보자 프로젝트 간 라이브러리 의존성 충돌 문제, python 버전 충돌 문제 등등 여러 문제들이 발생할 수 있다 => 이를 위해 프로젝트(서비스)마다 컨테이너를 만들어서 환경을 격리하는게 좋음! Dockerfile은 만들고자 하는 컨테이너의 세부사항을 적어놓은 파일이고Requirements.txt는 컨테이너 내부에 설치할 파이썬 라이브러..
CI/CD란? 일반적으로 개발을 할 때 1. IDE에 코드를 작성 2. 코드 테스트 3. 빌드 4. 빌드된 아티팩트를 배포 5. 버그가 발생 하면 1번으로 돌아가 코드를 다시 작성 의 사이클을 돌게된다 => 코드 수정은 오래 쌓아두었다가 한번에 하기보다는 짧은 주기로 빨리빨리 하는게 좋음 그래서 새롭게 떠오르고 있는 컨셉이 Continuous Integration (CI) 임!(지속적인 통합) 소프트웨어 개발 프로젝트의 풀 사이클을 짧은 주기로 돌려서 빠르게 자동화 시키고, 개선을 하자는 CI 컨셉이다 => 코드, 빌드, 테스트 부분을 자동화해서 조금 더 잦은 주기로 그 생명주기를 짧게 해보자는 이야기! Continuous Delivery / Deployment (CD) 임!(지속적인 제공 / 배포) 보..
윈도우에서 vscode를 사용하여 개발중인데터미널에서 EC2 서버(ubuntu)에 접속하려고 명령어를 쳤는데....!!!! Permissions for 'key.pem' are too open에러가 발생....😫 정말 2시간정도 구글링을 한거 같은데 우선 발생 원인은 윈도우에서 ubuntu EC2로 연결할 시에 pem파일의권한이 너무 높게 부여 되어 EC2에서 키를 거부하는 것이었다 => 윈도우에서 설정된 보안 권한이 자동으로 pem파일에 적용되어 설정된 모든 사용자가 pem의 권한을 갖기 때문 해결 방법은 2시간 동안 찾은 거치고는 꽤 간단..? 했음 1. pem 파일에 마우스 오른쪽 버튼을 눌러 속성에 들어간 후 보안탭에서 고급을 클릭 2. 상속 사용 안함을 클릭("이 개체에서 상속된 사..