Why do we need so many axioms about sets? Sorry if this is a silly question. I just don't understand why we need axioms such as axiom of specification/replacement to ensure the existence of some sets. Can't we just use singleton axiom (given an object, there is a set containing this object) and the union operator to construct many other sets?
 A: Allow me to shed some light on how each of the axioms build off of each other to produce the desired objects in ZF. This will be a longer post because your question is surprisingly deep. For that, I apologize, but hopefully it will be a insightful journey!

Let's suppose we want a set theory which allows for sets which contain an infinite amount of elements.
The Axiom of Infinity
The axiom of infinity is important for a variety of reasons. The first is that it is the only axiom which asserts that some set exists (discounting the axiom of the empty set). It also does precisely what we want, which is that there exists some set $X$ which contains infinitely many unique elements. This is nice because it is a powerful yet relatively simple set which allows for every other set to be constructed from such.
We have a few problems, however. The first is "How do we know it contains unique elements"? This is where the next axiom comes in.
The Axiom of Extensionality
The axiom of extensionality allows us to compare sets. This grants us the ability to discern unique elements, giving rise to the infinitely many unique elements within $X$.
But wait, what exactly is in $X$? Informally, we want it to contain some of the hereditarily finite sets, as they serve as the pure building blocks to construct the universe. Thus we need another axiom which allows the creation of these finite sets.
The Axiom (schema) of Specification
Specification is arguably the most important axiom of set theory (according to Gödel, at least). It allows the existence of arbitrary subsets of any set which already exists. We can use this to produce the empty set, $\emptyset$, since it a subset of $X$.
But how do we use $\emptyset$ to build the other finite sets?
The Axiom of The Powerset
Much like how specification is used to make smaller sets, the powerset makes bigger sets! Combining this with specification, since $a\subseteq a$, for any set $a$, powerset allows us to make singletons, $\{a\}$. To construct the finite sets in $X$, we define it so that $\emptyset\in X$, and for any $a\in X$ we have that $a\cup\{a\}\in X$.
This is great, as now $X$ certainly contains infinitely many elements. However, we have not defined how to union $\cup$.
The Axiom of Union
The axiom of union allows us to do just that. To union $a$ and $\{a\}$, all we have to do is take the arbitrary union of $\{a,\{a\}\}$.
There is one last hurdle, however. We have no way of producing a set which contains $\{x,y\}$ for any $x$ and $y$. This is where the second to final axiom comes in.
The Axiom of Pairing
Pairing, combined with specification allows us to produce the set $\{a,\{a\}\}$. Thus finally we can then take the union, and produce $X$ rigorously in all its infinite glory.
The Axiom (schema) of Replacement
Lastly, now that $X$ certainly exists, we use replacement to use these building blocks as templates to produce nearly anything we desire.

So you see, each of these axioms build off one other in a necessary way to produce what we wanted; a set containing infinitely many unique elements; namely the finite sets which serve as the fundamental building blocks to produce all other sets; and ways to use these building blocks to create the universe.
Edit: I forgot to mention regularity, which among other things, essentially asserts that sets have have no infinite downward chains of containment.
