How should I go about deploying Jaeger on AWS ECS with Elasticsearch as backend? Is it a good idea to use the Jaeger all in one image or should I use separate images?
CodePudding user response:
While I didn’t find any official jaeger reference to this, I think the jaeger all in one image is not intended for use in production. It makes one container a single point of failure, making it better to use separate containers for each jaeger component(if one is down from some reason - others can continue to operate).
I have recently written a blog post about hosting jaeger on AWS with AWS Elasticsearch (OpenSearch) service. While it is done with all-in-one, it is still useful to get the general idea of how to go about this.
Just to generally outline the process (described in detail in the post):
- Create AWS Elasticsearch cluster
- Create an ECS Cluster (running on ec2)
- Create an ECS Task Definition, configured with a jaeger all-in-one image with the elasticsearch url from the step 1
- Create an ECS Service that runs the created task definition
- Make sure security groups on your EC2 allow access to jaeger ports as described here
- Send spans to your jaeger endpoint via OpenTelemetry SDK
- View your spans via the hosted jaeger UI (your-ec2-url:16686)