Introduction
Recently, I published an article titled "The Tale of Jenkins Gradually Failing to Clone Git — Fighting EFS Metadata IOPS." It described how EFS metadata IOPS exhaustion caused Jenkins to stop, and how I identified and resolved the issue in about 3 hours of investigation.
Technically, the problem was solved, but that wasn't the end of the story.
The next day, when I opened AWS Cost Explorer, I froze at the number that jumped out at me.
"$69.00"
Honestly, I thought... maybe I messed up.
This article is about cost judgment during emergency response and the accountability that follows. It's the "aftermath" of the troubleshooting article.
What Happened
As I wrote in the previous article, EFS metadata IOPS exhaustion caused Jenkins to effectively stop. And this happened on a Monday morning — the worst possible timing.
To keep Jenkins running while investigating, I made an emergency decision to change the EFS throughput mode to Provisioned Throughput at 300 MiB/s.
This decision resulted in:
- ✅ Ensured continued operation of the Jenkins environment
- ✅ Identified root cause in about 3 hours
- ✅ Implemented permanent solution
Technically, it was successful. However...
The Cost Reality
The next day, after reverting to Elastic Throughput, I became curious about the cost.
I knew that Provisioned Throughput was "expensive." But I thought, for just 26 hours, it wouldn't be that bad.
When I opened Cost Explorer:
Approximately $69
In 26 hours.
If I had left it running for a month, it would have been about $2,160 (over ¥300,000). I was relieved I changed it back quickly, but at the same time, the question arose: "Wasn't there a better option?"
Understanding EFS Pricing
I needed to properly organize the EFS pricing structure. The truth is, during the emergency response, I didn't know about Elastic Throughput as an option.
EFS has three throughput modes:
1. Bursting Throughput (Original Setting)
Pricing: Storage charges only
Throughput is determined by storage capacity. There's a baseline of 50 MiB/s per TiB, with a credit system that accumulates during low load and can be used during high load.
Advantages: No additional charges
Disadvantages: Performance degradation when credits are depleted (the problem we had)
2. Provisioned Throughput (Emergency Response Setting)
Pricing: Storage charges + throughput charges
In the Tokyo region, it's approximately $7.2/month per MiB/s.
For 300 MiB/s:
- 300 × $7.2 = $2,160/month (about ¥300,000)
For 26 hours of use:
- $2,160 × (26/720) ≈ $78
The actual measurement was $69, so the baseline throughput was probably deducted.
Advantages: Stable performance, no credits needed
Disadvantages: Very expensive, charged even when not in use
3. Elastic Throughput (The Option I Didn't Know About)
Pricing: Storage charges + actual throughput used
In the Tokyo region:
- Read: $0.04/GB
- Write: $0.07/GB
Advantages: Pay only for what you use, auto-scaling
Disadvantages: Budget management is difficult if usage is unpredictable
The Better Option
Let me recalculate.
Assuming we used about 50GB of throughput during the investigation:
| Mode | 26-hour Cost | Notes |
|---|---|---|
| Bursting | $5.6 (monthly portion) | Investigation impossible due to credit depletion |
| Provisioned | $69 | Actually selected |
| Elastic | $3.5~$5 | Didn't know about it |
Difference: Approximately $64$66 (about ¥9,000¥9,500)
If I had chosen Elastic Throughput, the cost would have been about 1/20th.
Honestly, I was stuck here. In an emergency, I should have calmly estimated costs, but due to lack of knowledge, Elastic Throughput never came to mind as an option.
Explaining to Stakeholders
This cost requires an explanation to stakeholders.
However, rather than just ending with "I made a mistake," I needed to properly organize the background of the decision and the cost-benefit analysis.
Background of the Decision
During the emergency response, I was thinking about the following points:
Situation:
- Monday morning, complete Jenkins outage
- All build jobs for the entire development team unable to execute
- Expected 3 hours to identify the cause
Option Consideration:
| Option | Advantages | Disadvantages | Decision |
|---|---|---|---|
| Continue Bursting Mode | No cost increase | Investigation difficult due to credit depletion | ❌ Not viable |
| Provisioned 300 MiB/s | Guaranteed performance Investigation possible |
High cost | ✅ Adopted |
| Elastic Throughput | Usage-based billing, affordable Auto-scaling |
Not considered due to lack of knowledge | - |
Reasoning:
- Minimize impact on the entire development team due to system outage
- Stable I/O performance needed for investigation work (find, du, etc.)
- Expected to be able to change settings the next day
- Business continuity as top priority
Cost-Benefit Analysis
Assuming a development team of 10 people at ¥5,000/hour:
Losses Avoided:
- Reduced wait time: 3 hours × 10 people = 30 person-hours
- Hourly rate conversion: 30 person-hours × ¥5,000 = ¥150,000
- Opportunity loss from deployment delays: Difficult to calculate but not negligible
Costs Incurred:
- Provisioned Throughput: ¥10,000
Cost-Benefit: Approximately 15x ROI
Looking at the numbers, the decision itself appears to have been appropriate. However, it's also true that if I had known about Elastic Throughput, I could have achieved the same effect at a much lower cost.
Creating the Report
I organized the above content and created a report for stakeholders.
The report included:
- Overview of the outage and scope of impact
- Emergency response decision process
- Cost breakdown
- Cost-benefit evaluation
- Future improvement measures and recurrence prevention
I wrote honestly that "the decision was appropriate, but it was not the optimal solution due to lack of knowledge."
Lessons and Reflection
Technical Lessons
Effectiveness of Elastic Throughput
- Optimal for spike responses
- Predictable costs with usage-based billing
- Will use as the first choice in the future
Cost Estimation, Especially in Emergencies
- "Just getting it working" is not enough
- Develop a habit of comparing options and cost impact
- Question whether there might be options you don't know about
Strengthening Monitoring Systems
- Regular monitoring of EFS metrics
- Monitor not just storage capacity but also file count and IOPS
- Preventive maintenance through early detection
Reflection: Why Didn't I Know About Elastic Throughput?
Being honest in my reflection, I only understood the EFS pricing structure "vaguely."
- Bursting mode = free
- Provisioned mode = expensive
I had this rough knowledge, but I hadn't investigated "how expensive" or "are there other options?"
Elastic Throughput was announced in 2022. In other words, my knowledge wasn't outdated — I simply hadn't researched it properly.
Especially in emergencies, take a moment to research. I regret that I lacked this habit.
Organizational Improvements
To ensure this experience becomes organizational knowledge, not just personal learning:
Knowledge Sharing
- Publish this article internally and externally
- Consider holding AWS cost optimization study sessions
Documentation
- Develop troubleshooting procedures
- Formalize decision-making flows including cost estimation
Monitoring & Alerting
- Visualize EFS usage
- Set alerts for throughput utilization exceeding 75%
These are in progress.
Conclusion
Even if you can technically resolve a problem, that's not the end.
- Cost accountability
- Reflection on decision processes
- Returning knowledge to the organization
I realized that these are all part of an engineer's "work."
The $69 this time was expensive tuition, but I believe I gained the following value:
- Deep understanding of EFS pricing structure
- Improved emergency decision-making process
- Organization-wide knowledge sharing
If I encounter the same situation again, I will choose Elastic Throughput without hesitation.
And if this experience helps someone else, then the $69 was not wasted at all.
Related Articles
The previous troubleshooting article:
/en/tech/sre/jenkins-efs-metadata-iops-issue