"We have seen a deliberate strategy of surrounding, besieging and starving innocent civilians," Obama said during a year-end news conference.
"Responsibility for this brutality lies in one place alone: the Assad regime and its allies Russia and Iran," Obama said. "The blood for these atrocities are on their hands."
Asked about the fact the US didn't get involved, Obama said, "Because I am president of the United States, I feel responsible."
But Obama said that after every option was examined "in painful detail," factors including the involvement of Russia and Iran and the lack of cohesion among the Syrian opposition required a full-scale military intervention in order to aid the situation.
"Unless we were all-in and willing to take over Syria, we were going to have problems," Obama said.
"I understand the impulse to want to do something, but ultimately what I've had to do is to think about what we can sustain, what is realistic. And my first priority has to be what's the right thing to do for America," he said.
"Based on hours of meetings ... where we went through every option in painful detail ... short of putting large numbers of US troops on the ground, uninvited, without any international law mandate, without sufficient support from Congress," it would have been impossible.
"We couldn't do it on the cheap," he said.
Obama's condemnation comes as an agreement allowing for the evacuation of the thousands of civilians left in the besieged city appeared to fall apart Friday.
Forces loyal to the Assad regime have shelled eastern Aleppo and after years of fighting, his troops have managed to break through rebel defensive lines, seizing some of the last few Syrian rebel holdouts in recent days.
The operation to evacuate thousands of refugees was halted, according to the International Committee of the Red Cross. Various reports cited violations of the cessation of hostilities as reason for the interruption.
Thousands of civilians, wounded residents, and some rebels had already been evacuated under the agreement, with many of the refugees going to rebel-held Idlib province or the Syrian-Turkish border.
Obama called for an international observer force to monitor the situation and for an orderly evacuation and access for humanitarian aid, accusing the Russian government of blocking humanitarian efforts at the UN.
"The world will not forget," he said.
Obama's criticism echoes similar condemnations issued by members of his cabinet.
"There is absolutely no justification whatsoever for the indiscriminate and savage brutality against civilians shown by the regime and by its Russian and Iranian allies over the past few weeks, or indeed for the past five years," Secretary of State John Kerry said Thursday.
And Secretary of Defense Ash Carter told reporters in London Thursday that "this tragedy reflects an incredible brutality on the part of the regime, and also their backers, including Russia."
Some Republicans have charged Obama's policy towards Syria with helping to for net the Aleppo crisis.
"This is the inevitable result of hollow words and inaction," Sens. John McCain and Lindsey Graham wrote in a statement.