Goのバイナリが GLIBC not found で動かないとき

ローカルでビルドしたGoのモジュールをAWS Lambdaで動かしてみたところ、以下のようなエラーが発生して動かなかった。

/var/task/main: /lib64/libc.so.6: version `GLIBC_2.32' not found (required by /var/task/main)

理由としてはビルドした環境のglibcと実行環境のglibcのバージョン違い(正確にはビルドした環境のほうが新しいglibcを使っている場合に発生する?)ようだ。

なのでビルドするときにcgoを無効にすると良いらしい。ということでMakefileを書き換えて以下のようなビルドオプションでビルドし直したところ、無事実行できるようになった。

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build