IT

[AWS/EC2] aws ec2 linux puppeteer 설치 및 한글 폰트 적용하기

홀롤록 2021. 9. 3. 11:00
반응형

AWS EC2 에서 Node.js 를 통해 슬랙으로 운영 현황 데이터를 전송해야 하는 경우가 생겨 작업을 진행했었다.

처음엔 console-table, markdown-table 을 사용해 전달하려 했으나 모바일 앱에서 메세지가 깨지면서 내용을 정확하게 알기가 어렵다는 이슈가 생겼고, HTML을 작성해서 image 로 전달하고자 위와 같은 작업을 진행했고, AMI 를 생성하여 배포하였다.

사용 앱/라이브러리/서비스

  • nodejs v12.22
  • aws ec2 linux1
  • node-html-to-image (라이브러리 내의 puppeteer)
  • google-chrome-stable

위 4가지를 사용했고, 이 글에서는 html을 만들어 스크린샷을 생성하는 작업을 진행하고 ./local-chromium을 사용하면서 이슈가 생겨
google-chrome-stable 설치하고 다시 진행했을 때, 이미지로 변환 후 한글이 깨져 ec2-linux 폰트 설정한 내용을 기재한다.
명령어만 나열하고 포스팅을 마친다.

$ # 서버 시간대 설정
$ sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime

$ # google-chrome-stable 관련 설정 진행
$ curl https://intoli.com/install-google-chrome.sh | bash
$ # 설치 후 스크린샷을 생성하여 확인 진행.
$ google-chrome-stable --headless --disable-gpu --screenshot https://intoli.com/blog/installing-google-chrome-on-centos/

$ # 한글 폰트 설정
$ cd /usr/share/fonts
$ sudo wget http://cdn.naver.com/naver/NanumFont/fontfiles/NanumFont_TTF_ALL.zip
$ sudo unzip ./NanumFont_TTF_ALL.zip
$ sudo rm NanumFont_TTF_ALL.zip
$ # font config 관련내용
$ # font cache 내용 갱신.
$ sudo fc-cache -r


$ # 아래는 추가적으로 필요한 경우에만 설정한다
$ # 서버 모든 유저에게 PUPPETEER_EXECUTABLE_PATH 생성해주기 위함
$ sudo vi /etc/profile
$ export PUPPETEER_EXECUTABLE_PATH=/opt/google/chrome/google-chrome
$ # vi 를 저장하고 빠져나와서 컴파일한다.
$ source /etc/profile
반응형