
#1.Summary.
별다를 건 없고, 그냥 기본 AL2023 이미지에다가 Jupyterhub를 설치하면서 여러 삽질을 했었는데, 그 중 기억에 남는 몇 개만 개인적으로 느낀 것들 작성해보도록 하겠다.
#2.Main.
1.Python Version.
AL2023는 기본적으로 Python 3.9가 설치되어 있는데, Python 3.11이 필요한 상황이라 추가 세팅을 했다. 사실 처음에는 Python 3.12 설치에다가 라이브러리간 호환성 맞추는 게 쉽지 않았고, 개인적으로 원하는 형상이 나오지 않아서 Python 3.11로 구성을 했다. Python-3.12 버전과 Python-3.11 버전 테스트 해본 결과 큰 차이는 없었던 거 같다.
2.특정 py 실행할 때 Jupyterhub System Down.
예를 들어 배치성 실행 파일이 1번부터 10번까지 있으면 파일 크기가 큰 10번을 돌릴 때만 CPU, MEM를 많이 사용해다가 Jupyterhub가 System Down 되는 경우 발생(10번 파일 크기가 극단적으로 큰 상황도 아니였음)
a.(마운트 경로) 해당 EBS Mount된 Path에 Swap Memory를 설정하고 10 ~ 15% 부여.
sudo fallocate -l 8G /(마운트경로)/swapfile
sudo mkswap /(마운트경로)/swapfile
sudo swapon /(마운트경로)/swapfile
echo '/(마운트경로)/swapfile noen swap sw 0 0' | sudo tee -a /etc/fstab
b.Jupyterhub.service에 #MemoryMax=8G 옵션 제거.
c.Jupyterhub_config.py 옵션에
c.Spawner.environment.update({
"OMP_NUM_THREADS": "2",
"OPENBLAS_NUM_THREADS": "2",
"MKL_NUM_THREADS": "2",
"NUMBER_MAX_THREADS":"2"
A부터 C까지 설정 변경 후 Jupyterhub 재시작하였더니 정상으로 해결되었다. 꼭 8G를 할 필요는 없고, EBS Volume 크기에 따라 상대적으로 설정하면 된다.
3.Mountpoint for s3 vs s3fs
완전 똑같지는 않지만 각자의 장단점이 있는 거 같고, Mountpoint for s3가 좀 더 최근에 등장해서 이번에는 Mountpoint for s3 사용.Mountpoint for s3는 s3mount를 해도 df -TH 즉 파일 시스템이 mount-for-s3로 되어 있어서 수정 불가. 수정하고 싶으면 s3fs 사용해야 됨.
Mountpoint for s3로 mount
sudo mkdir -p /(마운트)/(경로)
sudo mount-s3 (실제 s3 버킷명) /(마운트)/(경로)
echo “s3://(실제 s3 버킷명) /(마운트)/(경로) mount-s3 netdev, nosuid,nodev,rw,allow-other 0 0” | sudo tee -a /etc/fstab
jupyter : OS 계정 설정하기 위해 (해당 uid/gid로 다시 마운트 : EX) jupyter-1000, OS 계정=1001)
mount-s3 실제 버킷명 /(마운트)(경로) —uid=1000 —gid=1001 —allow-other
%참고사항 : EC2에 Crontab 설정해서 사용하려면 Package 중에 Cronie 있어야 함.
결국은 Crond가 Systemctl Status Crond 봤을 때 Active 하고 있어야 되고, 별도 Service로 안 띄워도 된다.
결국 디렉토리든 Crontab,Crond도 다 Rsync로 땡겨 왔다.
#3.Conclusion.
하나하나 할 때마다 많은 오류들이 있었어서 타임라인을 가지고 정리를 할 수가 없을 정도였지만... Native 서비스를 활용한 Jupyterhub가 아닌 일반 EC2에 환경 구성 경험은 재밌었던 거 같다.
'#OS' 카테고리의 다른 글
| #JupyterHub 환경 구축 -2. (0) | 2025.11.14 |
|---|