Основное отличие заключается в том, что good — это прилагательное, а well — наречие.
Good переводится как «хороший» и используется для описания предметов или людей. Сочетается с существительными:
We were good friends
Мы были хорошими друзьями
Well означает «хорошо» и используется для описания действий. Сочетается с глаголами:
We knew each other well
Мы хорошо знали друг друга