Do you mean "great" as in good (quality ) or large (size)? It can mean both in English. But lớn means big, indicating size, doesn't it? To an English speaker, the use of "great" in this sentence would almost always be understood as good (quality). I think the VT word "hay" is better here than "lớn", but if that's wrong please explain!
For Vietnamese speaker, "bài học hay" is not the same meaning as bài học lớn. We usually use "bài học lớn" for negative situation. ex: He took advantage of my belief to deceive me. He taught me a big lesson -> Anh ta đã lợi dụng lòng tin của tôi để lừa gạt tôi. Hắn đã dạy cho tôi một bài học lớn.