KYIV—Travel to Dnipro or Kharkiv, cities close to Russian-occupied Ukrainian territory, and the first impression might be one of improbable normalcy. Families stroll through manicured parks. Restaurants and hotels are packed with foreigners and locals. Commerce spills onto buzzing streets.

Look closer, however, and the architecture of war is everywhere. Children study in a growing number of underground schools. Hotels sit atop makeshift bomb shelters for guests. Giant nets increasingly loom over arterial roads to foil Russian drones.

More than four years into Russia’s full-scale invasion, Ukrainians are, understandably, tired. Russia’s strategy of targeting civilian infrastructure is intended to make civilian life as miserable as possible. This past winter was among the harshest in memory, and many of those living in Ukraine suffered through it without power or heat. This summer, Russia’s drones and missiles have continued to strike water supplies and sanitation infrastructure that sustain civilian life.

As the front lines have hardened, air strikes are increasingly pounding Ukrainian cities, with Russian attacks on civilian and humanitarian areas taking a heavy toll. “It is like running a marathon, but a marathon that never ends,” the chair of the Zaporizhzhia Regional Council told our delegation during a visit to inspect the work of the United Nations Refugee Agency (UNHCR) in June. Just days before our visit,* a Russian missile had blown up the agency’s supply warehouse in Dnipro.