AdonisJS 앱 및 Redis를 Digital Ocean에 배포하는 방법

소개



Digital Ocean 앱 플랫폼은 배포를 4단계로 단순화합니다.
  • 리포지토리 선택
  • 앱 이름 및 지역 설정
  • 환경 변수 설정
  • 플랜 선택

  • 이 블로그에서는 Redis가 필요한 AdonisJS 앱을 Digital Ocean에 배포하는 방법을 알아봅니다.

    시작하기


  • 아직 리포지토리가 없는 경우 이 리포지토리를 포크하고 복제합니다.

  • $ gh repo fork https://github.com/vicradon/tic-tac-toe.git
    


    Github CLI가 없으면 수동으로 할 수 있습니다.
  • 복제 후 전역적으로 adonis CLI를 설치합니다(Linux의 경우 sudo 사용).

  • $ npm i -g @adonis/cli
    


  • 그런 다음 .env 파일을 만듭니다.

  • $ cp .env.example .env
    


  • 마지막으로 앱 키 생성

  • $ adonis key:generate
    


    이 키는 .env 파일에 복사됩니다. 그것을 기록해 두십시오. 추후에 활용하도록 하겠습니다.

    Redis 클러스터 배포



    앱에 Redis가 필요하므로 Redis를 별도로 배포해야 합니다.

    1단계: 데이터베이스 페이지로 이동



    new database page으로 이동하여 Redis 클러스터를 생성합니다.



    2단계: 데이터 센터 선택



    대부분의 사용자에게 가장 가까운 데이터 센터를 선택하십시오.



    3단계: 데이터베이스 클러스터 이름 선택



    기본값으로 두거나 새 이름을 선택할 수 있습니다. 계속하려면 Create a Database Cluster 버튼을 클릭하십시오.


    Digital Ocean이 Redis 클러스터를 프로비저닝하는 동안 Adonis 앱을 배포합니다.

    Adonis 앱 배포


    1단계: 리포지토리 선택




    2단계: 앱 이름, 지역 및 분기 선택



    이전에 했던 것처럼 가장 가까운 앱 이름과 지역을 선택하세요. 여기에서 지점을 선택할 수도 있습니다.

    3단계: 앱 구성



    Digital Ocean은 앱이 실행되는 대상을 스마트하게 감지할 수 있습니다.


    몇 가지 환경 변수를 설정해야 합니다.

    REDIS_HOST , REDIS_PORTREDIS_PASSWORD 값을 얻으려면 이전에 배포한 데이터베이스 클러스터로 이동하고 표시된 시작 페이지를 건너뜁니다.



    연결 세부 정보 섹션에서 호스트, 포트 및 암호를 볼 수 있어야 합니다.


    각각의 값을 복사하고 앱의 배포 페이지에서 환경 변수로 설정합니다.

    앱 키와 Redis 연결



    프로젝트의 환경 파일에서 APP_KEY 값을 가져옵니다. REDIS_CONNECTIONprod로 설정했는지 확인하십시오. 총 5개의 환경 변수가 있어야 합니다.

    실행 명령 설정





    실행 명령을 npm run prod 로 설정합니다. 그러면 disabled .env file 으로 앱이 실행됩니다.

    4단계: 앱 계획 설정



    기본계획을 선택하고 Launch Basic App 버튼을 클릭합니다.


    앱은 몇 분 안에 배포되어야 합니다. 다음은 제가 직접 배포한 앱입니다.

    TLS에 대한 참고 사항



    Digital Ocean의 Redis 클러스터에는 SSL이 활성화되어 있습니다. 이는 stunnel 을 구성하지 않고 redis-cli 를 사용하여 연결할 수 없음을 의미합니다. 또는 redli을 사용하여 SSL을 통해 Redis 클러스터에 연결할 수 있습니다.

    Adonis는 ioredis를 기본redis 클라이언트로 사용합니다. ioredis SSL을 통해 클러스터에 연결하려면 구성에 tls 호스트가 필요합니다. 앱에서 config/redis.js 파일을 확인하면 prod 변수에 tls 객체가 보입니다.

      prod: {
        host: Env.get("REDIS_HOST"),
        port: Env.get("REDIS_PORT"),
        password: Env.get("REDIS_PASSWORD"),
        db: 0,
        keyPrefix: "",
        tls: {
          host: Env.get("REDIS_HOST"),
        },
      },
    


    결론



    이 자습서에서는 AdonisJS 앱과 Redis 클러스터를 Digital Ocean에 배포하는 방법을 배웠습니다. 앱 개발자를 위한 Digital Ocean 제품의 배포 용이성을 경험하셨습니다. 또한 Redis 클러스터의 전송 계층 보안에 대해 자세히 알아보았습니다.

    이 튜토리얼이 마음에 드셨다면 my website에서 내 뉴스레터를 구독하고 에서 나를 팔로우할 수도 있습니다. 읽어 주셔서 감사합니다. 안녕 ✌🏾🧡.

    좋은 웹페이지 즐겨찾기