Infra
-
배포 - 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 서버를 구동하기 위한 ..
-
배포 - 운영환경을 위한 NginxInfra/CI-CD 2023. 1. 1. 12:42
Nginx 개발 환경에서 리액트가 실행되는 과정 리액트 컨테이너 안에 개발서버가 있고 정적인 파일들이 있다. 브라우저에서 http 요청을 주면 개발서버를 통해서 브라우저에서 요청한 정적파일을 알맞게 제공을 해준다. 운영 환경에서 리액트가 실행되는 과정 운영환경에 가면 개발서버가 없어진다. 그래서 운영환경에서 브라우저가 어떠한 요청을 주면 그에 맞게 정적파일을 제공해주어야 한다. 하지만 운영환경에는 개발서버가 없다. 그렇다면 어떻게다면 어떻게 해야할까? 그때가 바로 nginx가 출현하는 시점이다. 운영환경에 배포하는 파일들 개발서버 대신에 nginx 웹 서버가 정적파일들을 제공해주게 된다. 이때 붉은색 눈금으로 표신된 정적파일들은 npm run buil명령어로 생서된 build폴더에 포함된 폴더와 파일들의..
-
배포 - 생성된 도커 이미지로 로컬에서 리액트 실행해보기Infra/CI-CD 2023. 1. 1. 11:49
이전 포스트에서 리액트를 실행 할 수 있는 도커 이미지를 생성했다. 이번엔 포스트에서는 해당 이미지를 바탕으로 컨테이너를 run해서 리액트 앱을 실행해 본다. react-app image Container로 run docker run -p 3000:3000 이미지이름 원래는 위 명령어로 실행이 가능 했었는데 리액트 쪽 업그레이드로 인해 다음과 같이 -it 붙여야만 실행가능하게 되었다. docker run -p -it 3000:3000 이미지이름 docker run -it 옵션 도커 컴포즈로 좀 더 간단하게 앱 실행하기 docker-compose를 이용한 어플리케이션 실행 docker-dompose up docker-compose.yml 에 설정한 stdin_open: true 옵션이 docker run ..
-
배포 - 도커를 이용해 간단한 리액트 앱 만들어보기Infra/CI-CD 2022. 12. 31. 13:36
리액트를 설치하기 위한 명령어 npx create-react-app react-app // 마지막은 리액트를 설치하고자 하는 디렉토리 이름이다. 리액트 개발에 대한 간략 설명 개발 단계 npm run start 리액트 앱을 실행하기 위한 명령어이다. 테스트 단계 npm run test 개발이 완료 되었다면 개발한 것에 문제가 있는지 없는지 테스트를 해볼 수 있다. 테스트는 위 명령어로 할 수 있다. 배포 단계 npm run build 테스트까지 완성이 된면 이제는 배포를 통해 다른사람도 앱을 이용할 수 있도록 운영 환경에 배포할 수 있다. 그러기 위해서는 그냥 소스를 옮기는 것이 아니라 build를 해서 운영환경에 배포할 수 있는 위한 폴더와 파일들을 생성해야한다. 위 명령어를 통해 폴더와 파일을 생성할..
-
배포 - Docker compose 컨테이너를 멈추기Infra/CI-CD 2022. 12. 31. 11:52
docker-compse를 통해 작동시킨 컨테이너들을 한꺼번에 중단 시키려면 docker compose down명령어를 통해 동작을 중지 시킬 수 있다. docker compose down 명령어 docker-compose 명령어를 실행시키려면 위와 같이 터미널을 사용해서 docker-compose.yml파일이 있는 경로까지 들어가 줘야한다. 해당 경로에서 docker-compose down 명령어를 실행하면 실제로 docker-compose가 모두 중단 된 것을 확인할 수 있다. docker compose up VS docker compose up --build docker compose -d 옵션 docker compose up -> docker compose -d up [출처 - https://ww..
-
배포 - Docker Compose 파일 작성하기Infra/CI-CD 2022. 12. 31. 11:19
Docker Compose는 컨테이너 사이에 네트워크를 연결해준다. 그러면 본격적으로 Docker Compose 파일을 작성해보자 Docker Compose 파일 생성 Docker Compose는 yaml파일로 작성된다. yaml 파일 이란? YAML ain't markup language의 약자이며, 일반적으로 구성 파일 및 데이터가 저장되거나 전송되는 응용 프로그램에서 사용되고 원래는 XML이나 JSON 포맷을 자주 사용해 왔지만, 좀더 읽기 쉬운 포맷으로 최근 각광받고 있다. 작성하게될 docker-compose파일 구조 redis서버와 node서버를 구동하는 각각 Docker Container가 있고 그리고 Container를 감싼 것을 Services라고 한다. 그리고 docker-compose..