Bars with individual years will be a better choice than age ranges because the ranged representation may hide fine details like the trend of new road constructions over the years.
I would draw a bar chart with age of roads on the X axis and number of roads on Y axis e.g. if 3 roads are 10 years old then there should be a bar 3 units high at the 10th mark of the X axis.
Based on your comment on Michael Lai's answer, I understand that there is some value in grouping the data points based on their age. That grouping can be easily represented by Colour coding. Colour coding will make different age groups easily distinguishable while preserving the fine details of each year. Labels can be placed above each group saying how many roads are in that age group.
I've added an example image. The chart is not drawn to scale, but the main concepts I suggested e.g. colour coding the age groups and bar chart with age of roads etc. should be clear in this example. Hope this helps.
Edits in response to Michael's suggestions
Michael brought up a couple of important points. How would this chart look with realistic data e.g. ~3000 roads going up to 70 years old. I simulated a realistic data set to answer this question. I assumed that the number of road constructions per year has increased since urban development has increased over the years. That means there are likely to be more new roads than old ones. So we should see an overall downward trend along the X-axis. However, if my assumption is not correct, we'll either see an upward trend or nearly flat trend in 70 years of time frame. We can see that ~3000 roads spread over ~70 years can be vizualized by following the initial guidelines in my answer.
Michael also pointed out that only the roads turning 7 (or 20, or 30) needs highlighting, instead of the entire group. We can highlight the respective columns with separate colour codes. Additional information can be conveyed with a set of bubbles/call outs above the respective columns. The ticks in the X-axis should be also highlighted to clearly indicate the age of roads represented by each highlighted column. Overall, the chart could look like the example below.
Both charts in this answer were drawn with Inkscape. Inkscape is good for prototyping, but creating a production ready chart with your real data may not be easy with Inkscape.
For rendering the charts on a browser D3.js or C3.js can be used.
I suggest Matplotlib, a Python plotting library, for rendering print quality output. High quality vector charts can be produced with Matplotlib.