분류 전체보기
-
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~~~ 요청을 보내면 ..
-
Git - Github Actions 5가지 개념형상 관리 도구/Git 2023. 1. 3. 16:34
Github Actions는 특정한 event가 일어 났을때 내가 원하는 일을 자동으로 수행할 수 있도록 해주는 tool이다. Evnet 어떤 일이 일어났는지 지정할 수 있는 Event를 잘 이해해야 한다. Event는 Github에서 일어날 수 있는 대부분의 Event를 지정할 수있다. main 브랜치로 merge, commit push, 이슈를 누군가 열면 등등의 event를 지정할 수 있다. Workflow Workflow에는 특정한 Event가 발생 했을 때 어떤 일을 수행하고 싶은지 명시할 수 있다. 만약 push라는 Event가 발생하면 Workflow에 지정된 것들이 수행이된다. Workflow는 한마디로 요리책 같은 것이다. 만약 나한테 파스타가 먹고 싶다는 Event가 발생하면 파스타를 ..
-
배포 - AWS Elastic BeanstalkInfra/CI-CD 2023. 1. 3. 10:49
사용할 AWS 서비스들에 대한 설명 EC2(Elastic Compute Cloud) Amazon Elastic Container Service(Amazon ECS)는 확장성이 뛰어나고 빠른 컨테이너 관리 서비스이다. 이를 사용하여 클러스터에서 컨테이너를 실행, 중지 및 관리할 수 있습니다. Amazon ECS에서 컨테이너는 서비스 안에 개별 task나 여러 task를 실행한다. 사용하는 task 정의에 정의된다. 이 컨텍스트에서 서비스는 클러스터에서 지정된 수의 task를 동시에 실행하고 유지하는 데 사용할 수 있는 구성이다. AWS Fargate에서 관리하는 서버를 사용하지 않는 인프라에서 task 및 서비스를 실행할 수 있다. 또는 인프라에 대한 더 세부적인 제어를 위해 관리하는 Amazon EC2 ..
-
배포 - Travis CIInfra/CI-CD 2023. 1. 2. 14:51
Travis CI 설명? Travis CI 는 Github에서 진행되는 오픈소스 프로젝트를 위한 지속적인 통합(Continuous Integration)서비스이다. Travis CI를 이용하면 Github repository에 있는 프로젝트를 특정 이벤트에 따라 자동으로 테스트, 빌드하거나 배포할 수 있다. Travis CI의 흐름 1. 로컬 Git에 있는 소스를 Github 저장소에 Push한다. 2. Github master 저장소에 소스가 Push가 되면 Travis CI에게 소스가 Push 되었다고 얘기를 해준다. 3. Travis CI는 업데이트 되 소스를 Github에서 가지고 온다. 4. Travis CI Github에서 가져온 소스의 테스트 코드를 실행해 본다. 5. 테스트 코드 실행 후 ..
-
배포 - 운영환경을 위한 도커 image를 위한 Dockerfile작성하기Infra/CI-CD 2023. 1. 1. 14:42
Nginx를 포함하는 리액트 운영환경 이미지 생성 일단 image생성을 위한 Dockerfile을 작성한다. Dockerfile.dev -리액트 개발환경에서 필요한 이미지를 생성한다. Dockerfile - 리액트 운영환경에서 필요란 이미지를 생성한다. 개발환경 도커파일과 운영환경 도커 파일 비교 오른쪽 Dockerfile의 FROM부터 CMD까지 명령어는 운영서버에 올리기위한 build 파일을 만들기 위한 과정이다. 그리고 그렇게 build된 파일을 Nginx가 브라우저를 통해 오는 요청에 따라 적절한 파일을 제공해주는 것이다. 그렇게 하기위해서는 먼저 build된 정적인 파일이 존재를 해야 하므로 CMD 명령어로 npm run build 까지 해준다 그리고 그 다음엔 Nginx 서버를 구동하기 위한 ..