Rust의 RTMP 서버를 GCP에 배포할 때 기록

6179 단어 gcpRust

소개



Rust의 RTMP 서버를 GCP에 배포하고 OBS로 동작 확인할 수 있었으므로 비망록적으로 남겨 둡니다.
별로 프로그램의 부분은 쓰고 있지 않기 때문에, 동작을 확인하는 것이 메인이 될까 생각합니다.

샘플 프로그램



htps : // 기주 b. m / ka lD rx / rst-me-a-bs / t-re / m-r / e-mp s / th-d d-rtmp_se r ょ r

이번에는이 리포지토리의 threaded_rtmp_server 라이브러리 버전을

Cargo.toml
[package]
name = "everlong"
version = "0.1.0"
authors = ["Papillon6814 <[email protected]>"]
edition = "2018"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
slab = "0.4.2"
bytes = "0.5.4"
rml_rtmp = "0.3.2"

이렇게 조정하고 실행했습니다.

Google Compute Engine 가상 인스턴스 만들기



다음은 GCP 에 액세스하여 VMインスタンス 를 만듭니다.


VMインスタンス 는 가상으로 만들어진 서버와 같습니다.インスタンスを作成 를 선택하면 VM 인스턴스 생성 페이지로 이동합니다.

거기에 이렇게 입력했습니다.
  • 이름: instance-2
  • 머신 구성
  • 시리즈 : N1
  • 머신 타입: n1-standard-2

  • 디스크 이미지: Ubuntu 18.04.1 LTS x86_64
  • HTTP 트래픽 허용
  • HTTPS 트래픽 허용

  • 이제 VM 인스턴스를 만듭니다.

    GCP에서 RTMP 통신용 포트 1935 열기


    VPCネットワーク 에서 ファイアウォールルール 를 선택합니다.



    그리고, ファイアウォールルールを作成 라고 하는 버튼으로부터, RTMP 통신용의 포트 1935 에서의 TCP 통신을 허가합니다.



    이러한 내용으로 새로운 규칙을 만들었습니다.

    VM 인스턴스에 방화벽 규칙 적용



    규칙을 작성한 것만으로는 VM 인스턴스에 적용되지 않으므로 수동으로 규칙을 설정합니다.
    VM 인스턴스 편집 화면으로 이동하여


    ネットワーク タグ 라는 항목에 앞서 만든 allow1935-server 를 추가합니다.

    Cloud SDK 배포



    terminal에서 ssh 연결을 원했기 때문에 Google Cloud SDK를 소개합니다.
    아래의 링크를 참고로 도입할 수 있다고 생각합니다.

    htps : // c ぉ d. 오, ぇ. 이 m / sdk / 도cs / 구이 cks rt-마코 s? hl = 그럼

    자신의 VM 인스턴스에 ssh 연결


    Cloud SDK 가 배포되면 VM 인스턴스에 ssh 연결합니다.

    GCP VMインスタンス 페이지에서 ssh 연결을 위해 gcloudコマンドを表示라는 항목을 선택하고 명령을 터미널에서 실행합니다.



    그러면 내 VM 인스턴스에 ssh 연결할 수 있을까 생각합니다.

    VM 인스턴스에 Rust 배포



    VM 인스턴스에서도 Rust를 실행할 수 있도록 해야 하므로 ssh 연결을 한 터미널에서 Rust 설치 명령을 실행합니다.
    ~$ curl https://sh.rustup.rs -sSf | sh
    

    이 명령으로 Rust 실행 환경을 도입할 수 있습니다.

    Rust RTMP 서버 배포



    ssh 연결된 VM 인스턴스에서,
    mkdir ~/Documents
    cd ~/Documents
    mkdir ./Github
    cd ./Github
    git clone https://github.com/Papillon-inc/Everlong.git (ここは自分のクローンしたいリポジトリ)
    

    을 실행합니다.
    이제 RTMP 서버를 도입할 수 있었습니다.

    서버 실행


    Cargo.toml 의 어느 계층에서,
    cargo build
    ./target/debug/[プロジェクト名]
    

    에서 프로그램을 실행합니다.
    $ ./target/debug/everlong
    Listening for connections on 0.0.0.0:1935
    

    이와 같이, 1935번 포트에서 RTMP의 접수가 시작되었습니다.

    OBS에서 서버가 반응하는지 확인



    OBS 을 열고設定配信 를 엽니다.



    サーバー 필드에 VM 인스턴스의 글로벌 IP와 1935로 구성된 URL을 입력합니다.rtmp://???.???.???.???:1935이런 느낌입니다!
    스트림 키는 우선 이번에는 무엇이든 괜찮습니다.

    그런 다음 캡처 할 항목을 OBS로 선택하고 配信開始 버튼을 누르면



    이 방법으로 RTMP 통신에 반응하는지 확인할 수 있습니다!



    ios의 HaishinKit를 사용하여 RTMP 서버에 연결이 잘 되었기 때문에 기회가 있다면 요약해 보겠습니다.
    이번 서버는 일단 움직여주셔서 기뻤습니다.

    참고 링크



    htps : // chick kc ぉ ck. 하테나 bぉg. 코m/엔트리/2018/09/12/203900
    htps : // 이 m/좋은 1111/이고 ms/0c3d08658560d4b91431

    좋은 웹페이지 즐겨찾기