Infra
-
AWS - S3 Simple Storage ServiceInfra/클라우드 2023. 8. 5. 15:00
S3 - Simple Storage Service 객체 스토리지 (객체는 파일을 의미한다.) 파일 업로드,다운로드,검색 가능 무제한 용량 다양한 인증 / 권한 부여 S3 - 특징 리전 기반 서비스(가용 영역이 합쳐져서 region이 된다. 데이터 센터가 분산되어 있는 것과 마찬가지이다.) 매우 안전 내구도를 가진다. eleven 9 (file이 깨지지 않는다.) 상대적으로 빠르지 않다. CDN과 연동가능하다. (cloud front라고 불리는 AWS 서비스 존재한다. ) static web page 기능 지원 필요에 따라 버저닝(versioning)기능 사용 가능(같은 파일을 여러번 업로드해도 각각의 버전을 유지 옵션을 활성화해야 한다.) 다양한 요금 옵션으로 비용 절감 가능 사용예 클라우드 저장소(개인..
-
AWS - CLI 설치 및 간단히 사용해 보기Infra/클라우드 2023. 8. 5. 14:06
IAM - 보안자격증 - 액세스 키 만들 프로파일을 이용한 IAM Role 사용하기 콘솔을 통해 Role ARN을 알아내고 메모장 등에 기입한다. config파일을 열고 profile 아래 내용을 참고해서 편집한다. [profile iam] role_arn = arn:aws:iam::[계정번호]:role/iam-full source_profile = default profie의 두줄의 문장을 추가해주면 되는데 우선 role-arn에 대한 내용을 넣어준다. 두번째로 source_profile에 해당하는 내용을 넣어주는 role_arn을 assume(사용할)사용자가 누군지 명시하는 것이다. 이곳에 default를 넣어주면 기본사용자를 의미하게 된다. .aws/ config 파일 [default] region..
-
배포 - Multi App을 만들기 위한 Docker Compose 파일 작성하기Infra/CI-CD 2023. 1. 6. 15:30
docker-compose.yml 작성 nginx,프론트엔드, 백엔드, MySQL 각각을 컨테이너를 위한 도커파일을 작성했다. 하지만 그들 컨테이너들을 다 작동 시킨다고 생도 컨테이너 환경 특성사 서로 독립적으로 존재하기 때문에 별도의 설정을 하지 않으면 독립된 컨테이너 끼리 서로 통신을 할 수 없다. 그래서 이번 게시물에서는 컨테이너들을 서로 연결시켜주기 위해서 Docker Compose를 작성한다. docker-compose.yml verion: "3" services: frontend: build: dockerfile: Dockerfile.dev context: ./frontend volumes: - /app/node_modules - ./frontend:/app stdin_open: true ng..
-
배포 - Multi App을 만들기위한 Dockerfile (Nginx)Infra/CI-CD 2023. 1. 6. 13:45
Nginx를 위한 도커 파일 만들기 클라이언트에서 Request를 보낼 때 Nginx를 이용해서 프론트와 서버에 나눠서 보내 줄 수 있다. 어떤 형태로 URL을 보내는지에 따라 나눠 보내진다. Nginx 프록시 기능 Nginx는 어떤식으로 프록시 기능을 제공할까? 클라이언트에 요청을 보낼때 정적 파일을 원하는 경우 Nginx 설정에 따라 자동적으로 ReactJS를 통해 응답을 보내주고, API 요청일 경우에는 NodeJS를 통해 응답을 보내준다. Nginx가 요청을 나눠서 보내주는 기준을 URL로 location이 /로 시작하는지, /api로 시작하는지에 따라서 나뉜다. Proxy기능을 위한 Nginx설정 전체 프로젝트를 위한 root 폴더에 프록시를 위한 nginx 폴더를 생성해주고 그안에 nginx ..
-
Nginx - default.confInfra/서버 2023. 1. 6. 13:23
지시어 예시 nginx : default.conf user nginx; # 프로세스의 실행되는 권한. 보안상 root를 사용하지 않습니다. worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; upstream docker-server { server server:8080; } server { listen 80; server_name localhost; location / { root /usr/share/ngi..
-
배포 - Multi App을 만들기위한 Dockerfile (MySQL)Infra/CI-CD 2023. 1. 5. 19:07
DB 구성 개발 환경 운영 환경 Docker를 이용한 MySQL DB 구성 MySQL Dockerfile 작성 Dockerfile FROM mysql:5.7 MySQL을 시작할 때 Database와 Table이 필요한데 그것들을 생성할 장소를 만들어 준다. Database와 Table 만들기 initialize.sql DROP DATABASE IF EXISTS multiapp; CREATE DATABASE multiapp; USE multiapp; CREATE TABLE lists ( id INTEGER AUTO_INCREMENT, values TEXT, PRIMARY KEY (id) ); 한글도 data로 저장가능하도록 설정 한들도 data도 저장이 가능하도록 설정파일에 추가할 내용을 작성한 뒤에 Do..
-
배포 - Multi App(ReactJS/NodeJS)와 위한 Dockerfile 만들기Infra/CI-CD 2023. 1. 5. 16:08
ReactJS - 프로트 서버 Dockerfile.dev FROM node:16-alpine WORKDIR /app COPY package.json ./ RUN npm install COPY ./ ./ CMD ["npm","run","start"] Dockerfile 위 파일에서 구동할 nginx 서버는 정적 파일을 serve하기 위한 프론트엔드 영역내에서 사용될 nginx이다. 정적file serve를 위한 Nginx 서버 설정 location / {} 안에 root 뒤에 명시된 경로에 build폴더를 넣어 두면 location/ 경로로 요청이 왔을때 해당하는 요청이 왔을때 의도된 적절한 파일이 대응해서 응답될 수 있다. root 뒤에 명시된 경로는 기본적으로 지정된 것도 있지만 해당 설정파일을 통해 ..
-
배포 - Docker를 이용한 복잡한 어플리케이션 만들기 (설계)Infra/CI-CD 2023. 1. 5. 12:46
풀스택 어플리케이션 (multi-container application) 구현 기능 1. 클라이언트에 input box에 글을 입력한다. 2. 입력된 data가 NodeJS로 구성된 API서버를 거쳐친다. 3. API 거치 data가 MySQL DB에 저장되 된다. 4. DB에 저장된 data는 다시 클라이언트에 출력된다. 5. 이후에 컨테이너를 삭제했다 다시 생성해도 저장된 데이터는 남아있도록 한다. 두가지 설계 방식 Nginx의 Proxy를 이용한 설계 Nginx를 이용하여 클라이언트에서 오는 요청을 백엔드 서버와 프론트 서버로 나눠주는 구조이다. 클라이어트와 프론트앤드 백앤드 서버들간 사이에 Nginx가 자리하고 있다. 클라이언트가 여러가지 요청을 보낼때 location/api~~~ 요청을 보내면 ..