Ruby용 서버 스켈레톤

기본 요건

서버 구현에 필요한 Gem:

  • google-protobuf (이 튜토리얼에서 사용된 3.2.X)
  • grpc (이 튜토리얼에서 사용된 1.2.X)

서비스 정의를 다운로드하고 다음 디렉터리 구조를 만듭니다.

[base_dir]
├── certificates
├── lib
├── protos
    └── booking_service.proto
└── server.rb

인터페이스 설명에서 Ruby 라이브러리를 생성합니다.

$ cd [base_dir]
$ grpc_tools_ruby_protoc -I protos --ruby_out=lib --grpc_out=lib protos/booking_service.proto

서버 구현

스켈레톤 코드가 필요한 경우 Google 담당자에게 문의하세요.

TLS 없이 서버 테스트

초기 테스트의 경우 TLS를 사용 중지할 수 있습니다.

$ cd [base_dir]
$ ruby server.rb --disable_tls

프로덕션 환경에는 적합하지 않습니다.

프로덕션 인증서 구성

서버에서 TLS를 사용 설정하려면 다음 파일이 필요합니다.

  • certificates/server.pem PEM 형식의 서버 인증서 체인
  • certificates/server.key 서버 인증서 체인의 비공개 키
  • certificates/trusted_client_roots.pem 클라이언트를 인증할 때 신뢰되는 루트 인증서

신뢰할 수 있는 클라이언트 루트 인증서 집합은 클라이언트를 인증할 때 사용됩니다. Mozilla와 같은 기관에서 신뢰할 수 있는 루트 집합을 가져오거나 현재 Google Internet Authority G2에서 권장하는 루트 집합을 설치할 수 있습니다. 후자의 경우 때때로 루트 인증서를 수동으로 업데이트해야 할 수 있습니다.

최종 디렉터리 구조

[base_dir]
├── certificates
    ├── server.pem
    ├── server.key
    └── trusted_client_roots.pem
├── lib
    ├── booking_service_pb.rb
    └── booking_service_services_pb.rb
├── protos
    └── booking_service.proto
└── server.rb