diff --git a/knowledge base/cloud computing/aws/README.md b/knowledge base/cloud computing/aws/README.md
index 189425e..ac967aa 100644
--- a/knowledge base/cloud computing/aws/README.md
+++ b/knowledge base/cloud computing/aws/README.md
@@ -58,6 +58,7 @@ One can can rapidly remapping addresses to other instances in one's account and
| [EventBridge] | FIXME |
| [GuardDuty] | Threat detection |
| [Inspector] | FIXME |
+| [OpenSearch] | ELK, logging |
| [RDS] | Databases |
| [S3] | Storage |
| [Sagemaker] | Machine learning |
@@ -315,6 +316,7 @@ Examples:
[ecr]: ecr.md
[ecs]: ecs.md
[eks]: eks.md
+[opensearch]: opensearch.md
[s3]: s3.md
[sagemaker]: sagemaker.md
diff --git a/knowledge base/cloud computing/aws/opensearch.md b/knowledge base/cloud computing/aws/opensearch.md
new file mode 100644
index 0000000..081fae7
--- /dev/null
+++ b/knowledge base/cloud computing/aws/opensearch.md
@@ -0,0 +1,63 @@
+# Amazon OpenSearch Service
+
+Amazon offering for managed OpenSearch clusters.
+
+1. [Cost-saving measures](#cost-saving-measures)
+1. [Further readings](#further-readings)
+ 1. [Sources](#sources)
+
+## Cost-saving measures
+
+- Choose good instance types and sizes.
+ Leverage the ability to select them to tailor the service offering to one's needs.
+- Consider using reserved instances for long-term savings.
+- Enable index-level compression to save storage space and reduce I/O costs.
+- Use Index Lifecycle Management policies to move old data in lower storage tiers.
+- Consider using [S3] as data store for infrequently accessed or archived data.
+- Consider adjusting the frequency and retention period of snapshots.
+ By default, AWS OpenSearch takes **daily** snapshots and retains them for **14 days**.
+- Enable autoscaling.
+- Optimize indexes' sharding and replication.
+- Optimize queries.
+- Optimize data ingestion.
+- Optimize indexes' mapping and settings.
+- Optimize the JVM heap size.
+- Summarize and compress historical data using Rollups.
+- Check out caches.
+- Reduce the number of requests using throttling and rate limiting.
+- Move to single-AZ deployments.
+- Leverage Spot Instances for data ingestion and processing.
+- Compress source data before sending it to OpenSearch to reduce the storage footprint and data transfer costs.
+- Share a single OpenSearch cluster with multiple accounts to reduce the overall number of instances and resources.
+
+## Further readings
+
+- [OpenSearch]
+
+### Sources
+
+- [Cost-saving strategies for AWS OpenSearch(FinOps): optimize performance without breaking the bank]
+- [OpenSearch cost optimization: 12 expert tips]
+- [How do I reduce the cost of using OpenSearch Service domains?]
+- [Right-size Amazon OpenSearch instances to cut costs by 50% or more]
+- [Reducing Amazon OpenSearch service costs: our journey to over 60% savings]
+
+
+
+
+
+[opensearch]: ../../opensearch.md
+[s3]: s3.md
+
+
+
+[how do i reduce the cost of using opensearch service domains?]: https://repost.aws/knowledge-center/opensearch-domain-pricing
+
+
+[cost-saving strategies for aws opensearch(finops): optimize performance without breaking the bank]: https://ramchandra-vadranam.medium.com/cost-saving-strategies-for-aws-opensearch-finops-optimize-performance-without-breaking-the-bank-f87f0bb2ce37
+[opensearch cost optimization: 12 expert tips]: https://opster.com/guides/opensearch/opensearch-capacity-planning/how-to-reduce-opensearch-costs/
+[right-size amazon opensearch instances to cut costs by 50% or more]: https://cloudfix.com/blog/right-size-amazon-opensearch-instances-cut-costs/
+[reducing amazon opensearch service costs: our journey to over 60% savings]: https://medium.com/kreuzwerker-gmbh/how-we-accelerate-financial-and-operational-efficiency-with-amazon-opensearch-6b86b41d50a0
diff --git a/snippets/aws.fish b/snippets/aws.fish
index 2f3bbab..2c262ef 100644
--- a/snippets/aws.fish
+++ b/snippets/aws.fish
@@ -75,7 +75,7 @@ aws iam list-instance-profiles | grep -i 'ssm'
sudo ssm-cli get-diagnostics --output 'table'
# Check instances are available
-aws ssm get-connection-status --target "i-0915612ff82914822" --query "Status=='connected'" --output 'text'
+aws ssm get-connection-status --query "Status=='connected'" --output 'text' --target "i-0915612ff82914822"
# Connect to instances if they are available
instance_id='i-08fc83ad07487d72f' \
@@ -96,3 +96,6 @@ set instance_id 'i-0915612f182914822' \
&& aws ssm wait command-executed --command-id "$command_id" --instance-id "$instance_id" \
&& aws ssm get-command-invocation --command-id "$command_id" --instance-id "$instance_id" \
--query '{"status": Status, "rc": ResponseCode, "stdout": StandardOutputContent, "stderr": StandardErrorContent}'
+
+aws imagebuilder list-image-recipes
+aws imagebuilder get-image-recipe --image-recipe-arn 'arn:aws:imagebuilder:eu-west-1:012345678901:image-recipe/my-custom-image/1.0.12'