aws

http://status.aws.amazon.com/ https://www.expeditedssl.com/aws-in-plain-english
orestis 2020-10-15T06:14:07.012600Z

Any good/bad experiences with AWS elasticsearch? The managed offering, I mean.

lukasz 2020-10-15T13:53:39.013700Z

@orestis the price 👎 but it's pretty hands off once it's all working - 0-downtime cluster migrations is something worth paying money for. What is your use case for using ES?

orestis 2020-10-15T14:00:50.014200Z

Full text search as a secondary index. Could probably live with 1 node or perhaps 2 nodes for HA at some point.

lukasz 2020-10-15T14:28:02.018900Z

@orestis I'll stop you right there :-) You absolutely have to run your ES cluster with min 3 nodes in AWS. single node clusters cannot survive node restarts/replacements - and AWS can trigger those at any point in time. It broke our staging environment in the early days and response I got from support was "you have to run 3 nodes, otherwise we will break it again". To be honest: I wouldn't run a single node ES for anything than local development or simple testing, it's just too fragile otherwise. Other than that, I'm pretty ok with how things work in AWS but with caveats: best to deploy your cluster within the VPC and not allow any traffic from the public internet, instead relying on security groups and VPC subnets to allow access from your applications. That also means if you want to access Kibana you will have to jump through some hoops (hosts). We use ES as the full text and faceted search as well as basic analytics backend in our product, and it's fine but again, that price 😢

orestis 2020-10-15T14:29:35.019500Z

Oh. Three t3.mediums it is :)

mccraigmccraig 2020-10-15T14:54:04.021Z

if you already have k8s around then the official ES operator makes an easy alternative to the AWS managed service - https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-quickstart.html

mruzekw 2020-10-16T19:21:00.038500Z

Wow, that sounds worth looking into! Thanks

mccraigmccraig 2020-10-16T21:42:21.038700Z

it's well worth it if you are already running k8s - but if you aren't then maybe it's not something which alone would make it worthwhile to go to the effort of implementing k8s

👍 1
orestis 2020-10-15T17:21:24.022Z

@lukaszkorecki https://aws.amazon.com/blogs/database/reducing-cost-for-small-amazon-elasticsearch-service-domains/ — no mention there about single instance nodes breaking every now and then, hm. I’ll reach out to support to clarify.

lukasz 2020-10-15T17:22:56.022900Z

@orestis admittedly it was a while ago and we were on ancient ES (1.7? 2.0?) but still, having run clusters by hand I just don't trust a single node anyway

orestis 2020-10-15T17:29:54.024600Z

It’s just such a shame that full text search is such a headache, even for very small datasets. We are currently running an in-process solr server which is more than enough but has its own set of drawbacks.

lukasz 2020-10-15T17:45:03.025Z

what about full text capabilities in your primary data store?

lukasz 2020-10-15T17:45:26.025500Z

Postgres apparently can take you pretty far, of course it's not a dedicated search engine but it is capable

orestis 2020-10-15T18:22:53.027900Z

I looked into that but we also want “more like this”, tf/df and better text analysis than what Postgres fts provides. Lucene is way too low level to get decent results without a huge effort.

lukasz 2020-10-15T18:54:30.030100Z

Yeah, we're in the same boat - ES has served us well, and given our setup and data set size, it's not that painful to use - and AWS' managed service takes away a lot of the pain.

valtteri 2020-10-15T18:55:36.031700Z

I’ve been running single node ES in prod for a few years without issues. It’s a small project though and no-one would die if it crashed for a while.

lukasz 2020-10-15T19:04:38.031900Z

Yeah, not an option for us :-(

lukasz 2020-10-15T19:04:55.032200Z

(dying is not involved, but customers love to search)

valtteri 2020-10-15T19:08:38.033500Z

Yep, for a popular service I’d go HA also.

Gleb Posobin 2020-10-27T15:28:56.051300Z

What's HA?

valtteri 2020-10-27T16:07:42.051700Z

High availability

valtteri 2020-10-15T19:14:03.034600Z

How about running this in Lambda + EFS? https://github.com/valeriansaliou/sonic

valtteri 2020-10-15T19:16:22.036700Z

Dunno if it would even work but somebody had this type of idea in #off-topic some time ago

lukasz 2020-10-15T21:08:15.037400Z

Interesting. For a small project it could be worth a try, but ES is so battle tested, and original question was about the managed AWS service :-)

mruzekw 2020-10-15T21:23:36.037500Z

How would I compare the price of doing this vs the managed version? I’m guessing it would mainly depend on the number of live ES containers at anytime, but is there anything else I should consider?