- Newest
- Most votes
- Most comments
For architectural choice, you can consider well architected principles as criteria. Performance and Scalability, Cost Effectiveness, Resource Utilization and Efficiency, Dependencies with any other systems and their integrations. Even though both ECS and Batch can be a solution. Batch appears more reasonable with intermittent nature of your workload, handling dependencies between jobs efficiently and dynamically scaling resources as needed. you can consider using step functions as well. Additionally you should consider spot instances where appropriate to reduce cost, CloudWatch for monitoring job progress and resource utilization. you can visit this blog to see as a case study https://aws.amazon.com/blogs/compute/building-high-throughput-genomic-batch-workflows-on-aws-batch-layer-part-3-of-4/
In your specific use case, (where you have a single event per hour triggering incremental updates and the potential need for full rebuild jobs spanning more than 9 hours) it appears triggering jobs using Batch may be the more suitable approach, Batch can handle the dependencies between jobs, ensuring that the full rebuild job runs only when necessary. It can also manage the parallel jobs for partial rebuilds,scaling compute resources as needed.
Hi SriniV,
- Can we initiate the job externally, such as triggering it from a Step Function that receives input in JSON format and passes it to a container, which starts the job based on the input? If yes, Any reference please.
- Once the job is completed, since we're using Fargate, I believe it follows a pay-as-you-go model, right?
- Batch can handle dependencies between jobs, ensuring that the full rebuild job runs only when necessary!!. Could you provide a scenario illustrating this? We have dependencies on data stored in S3 within the script running inside the container, but not direct dependencies.
- It can also manage parallel jobs for partial rebuilds, scaling compute resources as needed!!. Is there any documentation available on this feature?
5)Also what would be the major difference if we design this using ECS?
Relevant content
- asked 2 years ago
- asked 10 months ago
- AWS OFFICIALUpdated 3 years ago
- AWS OFFICIALUpdated 8 months ago
- AWS OFFICIALUpdated 2 years ago
- AWS OFFICIALUpdated 2 years ago
Hi Srini,
Thank you for bringing up this topic.
We receive a single event per hour, which serves as a trigger to check for incremental updates. Occasionally, we may need to initiate a full rebuild job, which could potentially span more than 9 hours. Additionally, there might be scenarios where we need to run parallel jobs-partial rebuild.
My concern primarily revolves around understanding the differences in performance, technical perspective, and service behavior when comparing the execution of tasks for each step versus triggering a job.
Could you please provide insights into any core differences in executing a task for each step versus triggering a job? Also, I'm interested in understanding any potential impacts on performance or service behavior, especially since we are spinning up Fargate tasks for both scenarios.
Looking forward to your insights.