2016-10-13 22 views
0

Amazon EC2インスタンスでgRPCサーバー/クライアントを構築しようとすると問題が発生しました。Amazon EC2でgRPCサーバーを構築する

インスタンスA(プライベートIP:例:1.2.3.4)があります。一方

from concurrent import futures 
import time 
import math 

import grpc 

import helloworld_pb2 

_ONE_DAY_IN_SECONDS = 60 * 60 * 24 

class Greeter(helloworld_pb2.GreeterServicer): 

    def SayHello(self, request, context): 
    return helloworld_pb2.HelloReply(message='Hello, %s!' % request.name) 


def serve(): 
    server = grpc.server(futures.ThreadPoolExecutor(max_workers=10)) 
    helloworld_pb2.add_GreeterServicer_to_server(Greeter(), server) 
    server.add_insecure_port('1.2.3.4:50051') 

    server.start() 
    try: 
    while True: 
     time.sleep(_ONE_DAY_IN_SECONDS) 
    except KeyboardInterrupt: 
    server.stop(0) 

if __name__ == '__main__': 
    serve() 

は、インスタンスBは、プライベートIP 2.3.4.5を持っているようサーバーコードがある、と私はそれ

from __future__ import print_function 

import grpc 

import helloworld_pb2 


def run(): 
    channel = grpc.insecure_channel('1.2.3.4:50051') 
    stub = helloworld_pb2.GreeterStub(channel) 
    response = stub.SayHello(helloworld_pb2.HelloRequest(name='you')) 
    print("Greeter client received: " + response.message) 


if __name__ == '__main__': 
    run() 

クライアントとサーバのコードの実行にクライアントスクリプトを実行したいと思いますローカルマシン上で私はEC2クラスタ上でそれらを実行しようとするただし、クライアントがサーバー

Traceback (most recent call last): 
    File "helloworld_client.py", line 47, in <module> 
    run() 
    File "helloworld_client.py", line 42, in run 
    response = stub.SayHello(helloworld_pb2.HelloRequest(name='you')) 
    File "/usr/local/lib/python3.4/dist-packages/grpc/_channel.py", line 481, in __call__ 
    return _end_unary_response_blocking(state, False, deadline) 
    File "/usr/local/lib/python3.4/dist-packages/grpc/_channel.py", line 432, in _end_unary_response_blocking 
    raise _Rendezvous(state, None, None, deadline) 
grpc._channel._Rendezvous: <_Rendezvous of RPC that terminated with (StatusCode.UNAVAILABLE,)> 

を見つけるために失敗したスクリプトが実行されている取得する私は何をすべきか?

ありがとうございました。

答えて

0

問題がどこにあるかわかりました。 Security Group - Input - types - すべてのトラフィックを設定することにより、サーバーとクライアント間の接続が機能します。

関連する問題