I would recommend organizing stacks based on dependencies and business capabilities. If, say, a given ECS container relies on a DNS entry, then those probably belong in the same stack. Segregating by resource type is very arbitrary, and steals a lot of the power of Pulumi away from you, since you don't have the opportunity to build a resource based on the outputs of another resource