** Process
-정의
ㄴ 운영체제에서 현재 구동중인 소프트웨어의 단위
ㄴ 실행파일을 통해 소프트웨어를 실행하면 HDD에서 메모리로 소프트웨어가 올라감
Multi Processing
ㄴ 동시에 여러 개의 프로세스를 구동시키는 cpu의 기술
ㄴ cpu의 코어가 동시에 여러 개의 작업을 하면서, 마치 여러 개의 소프트웨어가 동시에 진행되는 것처럼 보이게 하는 기술
- 개발자의 Multi processing 활용
ㄴ 개발자가 일부로 소프트웨어를 여러 개의 프로세스로 개발할 수는 있음
예시) 롤 클라이언트, 롤 게임, 롤 음성채팅
ㄴ 개발자가 일부로 프로세스를 나누는 경우
ㄴ Process 는 Ram 에서 상호 독립적임
예시)
1. 프론트엔드 & 백엔드 독립 개발
2. 관리자용 Web, 사용자용 Web
3. 데이터 수집 및 데이터 저장 모듈
- 구현 방법
1. Child - Process (부모 프로세스, 자식 프로세스)
자식끼리는 상호작용이 없지만 부모가 종료되면 자식도 종료됨
2. PM2
npm install pm2 이렇게 하면 프로젝트 파일에 설치됨
Sudo -g => 우분투 자체에 설치가 됨
현재 실행 중인거 볼수 있다.
stop 시킬 수 있다.
delete 시킬 수 있다.
pm2 start index.js --name web-server
이름 변경 가능하다
개발할 때 사용하지 않는다 배포할때 사용한다.
**AWS Essential
-EC2 여러 기능
ㄴ Elastic Cloud Computing
ㄴ Was에 있는 여러 서비스 중에서 컴퓨팅 서비스 카테고리에 포함됨
-인스턴스 유형
1. T시리즈
ㄴ 범용 인스턴스
ㄴ 컴퓨팅, 메모리, 네트워킹 등 모두 균형있게 잡혀 있음
ㄴ 가격이 저럼하다 대신에 기본적으로 정해진 수준의 스펙을 제공하다가 트래픽이 몰리는 시점이 오면 Burst 모드를 동작시킴
ㄴ Credit 개념이 존재함
1-1 T시리즈의 세대
ㄴ 2세대와 3세대가 있다
ㄴ 3세대는 Burst에 제한이 없다
2. M시리즈
ㄴ 범용 인스턴스
ㄴ 항상 일관적인 성능을 냄
ㄴ 5~7세대가 존재함
- CPU 종류
ㄴ intel , amd, was
ㄴ 시작 템플릿 : 미리 저장해서 만들어 놓을 수 있다.
ㄴ saving plans & 예약인스턴스 : 비용감소 (인스턴스 약정)
ㄴ AMI 운영 체제 이미지 그날의 서버상태 개발한 코드 등 파일로 만들어 둘 수 있다.
ㄴ 네트워크 및 보안
탄력적 ip 주소 // 고정된 ip 를 받을 수 있다.
ㄴ 로드 밸런싱 : 분산 처리// 요청이 들어왔을때 어디로 보내줄지 정해주는 것
서버 하나로 감당 할 수 없기에 어떤 서버로 결정지을지 정하는 것
ㄴ 오토 스캐일링 : 트래픽에 따라서 성능을 늘리던 인스턴스를 늘리던 하는 것
** AWS Storage Service
ㄴ AWS 에는 여러 서비스 카테고리 존재함
-대표적인 종류
- EBS
ㄴ ssd 기반의 내장 스토리지(컴퓨터 하드웨어적인거)
ㄴ 무조건 ec2와 함게 쓰여야 함
ㄴ 설정한 용량만큼 비용이 부과됨 ( 용량을 늘리게되면 못줄임)
ㄴ Block Level Storage 구조 ( 수정에 용이하다 )
예시 ) 서버 내부 데이터베이스 , 운영체제 설치, 코드 파일
2. S3
ㄴ HDD 기반의 외장 스토리지
ㄴ 용량이 무제한, 사용한 만큼 비용을 냄
ㄴ Object Level Storage 구조 (파일을 저장할 때, 해당 파일이 Object 라는 단위로 저장이 됨)
ㄴ 부분수정에는 불리함
ㄴ 입력은 한번인데 , 읽기는 많은 작업에서 주로 사용됨
예시 ) 웹을 통해 저장 & 제공되는 멀티미디어, 데이터베이스 백업 파일
3. EFS
ㄴ SSD 기반의 외장 스토리지
ㄴ 용량이 무제한이며, 사용한 만큼 비용을 냄
ㄴ 애초에 여러 EC2에 접근하도록 설계가 되어 있음
ㄴ File Level Storage
ㄴ 파일 단위로 저장되는데, 파일 자체를 덮어 씌우는 구조는 아님
ㄴ여러명에서 실시간 수정이 가능함
예시 ) 여러 instance 의 공용 작업 공간 (코드)
4. RDS
ㄴ SSD 기반의 외장 데이터베이스
-s3 활용
ㄴ aws는 개발 툴을 제공함
ㄴ 내가 만든 소프트웨어 내에서 이 개발 툴을 이용해 s3같은거에 접근할 수 있음
예시) 이미지를 첨부받는 api 등
- 프론트엔드로부터 요청이 옴(일반적인 text,img 파일)
2-1 img파일을 EBS에 저장함
2-2 img 파일을 s3에 저장함
- 저장된 경로를 가져옴
- 그 경로를 DB에 저장함
- 프론트엔드에서 이미지를 요구할 때는, 이미지 파일을 주는게 아닌 DB에 저장된 이 경로를 반환한다.
aws IAM : 하위 계정
Multer : 이미지를 첨부받아서 저장하는 패키지
Aws-sdk : was 서비스를 사용하게하는 개발 툴 패키지
게시글작성기능 거기에 이미지를 첨부받도록 해준다
두가지 방법이 있다
2.네이버 블로그 처럼 섞여 있는 형태
1 번째 방법으로 진행한다
글따로 이미지 따로 첨부받는 형태
1 level
이미지 하나로 가정하고 읽기 쓰기 수정 삭제
이건 쉽다 정해진 코드 따라치면 됨
2 level
이미지가 여러개라고 가정한다
게시글 생성 삭제는 별로 크게 영향이 없다
수정)
2level 에바다 싶으면
ebs s3 저장해보고