* AWS IAM Roles Anywhere 사용법을 가이드하는 글은 아닙니다.
# 발단
회사에서 여러 플랫폼을 통해 쿠버네티스 클러스터를 구성하고 있고, EKS가 아닌 클러스터의 Pod에 AWS 권한을 부여하기 위해 IAM Roles Anywhere를 설치해 사용하고 있다.
지금까지는 DevOps팀에서 제공하는 베이스이미지를 사용하는 서비스들에만 적용해봐서 문제가 크게 없었는데,
이번엔 오픈소스 앱 하나에 Roles Anywhere를 적용하게 되면서 뜬금없는 문제를 마주하게 되었다.
Roles Anywhere를 적용하기 위해선 aws_signing_helper 라는 파일이 실행되어야 한다.
해당 파일을 잘 마운트해두었고, 권한에도 이슈가 없었지만 파일이 도저히 실행되지가 않았다. (No such file or directory)
# 원인
aws_signing_helper 바이너리는 glibc (Debian/Ubuntu 계열)용으로 빌드되었는데, 해당 오픈소스 앱의 이미지( langfuse-web )는 알파인이 베이스였다.
Alpine은 기본 C 라이브러리가 musl이라서 glibc용 바이너리를 실행하면 컨테이너 안에서 No such file or directory 에러가 뜬다고 한다.
# 해결
이미지에 gcompat, libc6-compat, libgcc, libstdc++ 을 설치하여 다시 빌드해 올렸다.
(알파인에서 제공하는 glibc 호환용 패키지라고 한다)
apk add --no-cache gcompat libc6-compat libgcc libstdc++
추가로, AWS CLI를 사용할 때에도 알파인 이미지라면 이런 바이너리들을 설치해줘야 한다고 한다.
# 느낀점
Q developer 도움으로 해결하였는데,
ai가 없을 때였다면... 해결 못했을거같다. 아닌가? ㅎ
끝
'공부 > AWS' 카테고리의 다른 글
| [AWS/GithubAction] IAM Role로 github action 자격증명하기 (OIDC) (0) | 2025.05.11 |
|---|---|
| [AWS] 콘솔 상단 색 변경 Extension (0) | 2025.01.19 |
| [aws-load-balancer-controller] failed calling webhook "mtargetgroupbinding.elbv2.k8s.aws" (0) | 2024.07.17 |
| [AWS/EC2] Proxy Setup user_data (Linux, Windows) (0) | 2024.07.09 |
| [AWS EKS] 보안그룹 최소 필요사항 정리 (0) | 2024.07.01 |
댓글