Elasticsearchの公式PHPライブラリであるところのelasticsearch/elasticsearchを使ってAWSのVPC内にあるElasticsearchServiceに接続しようとする。
$builder = \Elasticsearch\ClientBuilder::create();
$builder->setHosts(['https://xxxxxx.xxxxx.es.amazonaws.com/']);
$client = $builder->build();
$client->ping();
何の問題もない完璧なるパーフェクトなコードに見えるけど、全く繋がらない。
弊社のElasticserachマスターに聞いたら以下が正解とのこと。
$builder = \Elasticsearch\ClientBuilder::create();
$builder->setHosts(['https://xxxxxx.xxxxx.es.amazonaws.com:443']);
$client = $builder->build();
$client->ping();
Hostの末尾の / を削除して :443 とポートを明示的に指定すると動く。
HTTPSだからってポートが自動的に443になると思うのはゆとり![]()
助かった ![]()