Giter Club home page Giter Club logo

infra-subway-deploy's Introduction

npm node Website GitHub


인프라공방 샘플 서비스 - 지하철 노선도


🚀 Getting Started

Install

npm 설치

cd frontend
npm install

frontend 디렉토리에서 수행해야 합니다.

Usage

webpack server 구동

npm run dev

application 구동

./gradlew clean build

미션

  • 미션 진행 후에 아래 질문의 답을 README.md 파일에 작성하여 PR을 보내주세요.

0단계 - pem 키 생성하기

  1. 서버에 접속을 위한 pem키를 구글드라이브에 업로드해주세요

  2. 업로드한 pem키는 무엇인가요.

  • sm9171-nextstep-infra.pem

1단계 - 망 구성하기

  1. 구성한 망의 서브넷 대역을 알려주세요
  • 대역 : [ '192.168.8.0/26' - public 1, '192.168.8.64/26' - public 2, '192.168.8.128/27' - private, '192.168.8.160/27' - manage ]
  1. 배포한 서비스의 공인 IP(혹은 URL)를 알려주세요
  • URL : sm9171.r-e.kr:8080

2단계 - 배포하기

  1. TLS가 적용된 URL을 알려주세요

3단계 - 배포 스크립트 작성하기

  1. 작성한 배포 스크립트를 공유해주세요.
  • deploy.sh

1단계 - 지하철역 인수 테스트 작성

기능 요구사항

  • 웹 서비스를 운영할 네트워크 망 구성하기
  • 웹 애플리케이션 배포하기

망 구성

  • VPC 생성
    • CIDR은 C class(x.x.x.x/24)로 생성. 이 때, 다른 사람과 겹치지 않게 생성
  • Subnet 생성
    • 외부망으로 사용할 Subnet : 64개씩 2개 (AZ를 다르게 구성)
    • 내부망으로 사용할 Subnet : 32개씩 1개
    • 관리용으로 사용할 Subnet : 32개씩 1개
  • Internet Gateway 연결
  • Route Table 생성
  • Security Group 설정
    • 외부망
      • 전체 대역 : 8080 포트 오픈
      • 관리망 : 22번 포트 오픈
    • 내부망
      • 외부망 : 3306 포트 오픈
      • 관리망 : 22번 포트 오픈
    • 관리망
      • 자신의 공인 IP : 22번 포트 오픈
  • 서버 생성
    • 외부망에 웹 서비스용도의 EC2 생성
    • 내부망에 데이터베이스용도의 EC2 생성
    • 관리망에 베스쳔 서버용도의 EC2 생성
    • 베스쳔 서버에 Session Timeout 600s 설정
    • 베스쳔 서버에 Command 감사로그 설정

웹 애플리케이션 배포

  • 외부망에 웹 애플리케이션을 배포
  • DNS 설정

2단계 - 서비스 배포하기

기능 요구사항

  • 운영 환경 구성하기
    • 웹 애플리케이션 앞단에 Reverse Proxy 구성하기
      • 외부망에 Nginx로 Reverse Proxy를 구성
      • Reverse Proxy에 TLS 설정
    • 운영 데이터베이스 구성하기
  • 개발 환경 구성하기
    • 설정 파일 나누기
      • JUnit => h2 / Local => docker(mysql) / Prod => 운영 DB를 사용하도록 설정

3단계 - 배포 스크립트 작성하기

기능 요구사항

  • 배포 스크립트 작성하기

infra-subway-deploy's People

Contributors

sm9171 avatar stevejkang avatar brainbackdoor avatar wooobo avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.