jetalog.net

AWS EC2 인스턴스를 처음 실행 하면 몇 가지 설정을 진행해야 합니다.

Ubuntu 인스턴스를 몇 번 설정해보니 공통적으로 수행해야 하는 설정이 있어서 배치 파일로 만들어뒀습니다.


init_ubuntu.sh

clear

touch init_std.log

echo ":: AWS EC2 Instance Initialzer for Ubuntu"

echo " "
echo " "

# node 설치
echo "::::::::::::::::::::::::::::::"
echo ":: Installing node.js v8... ::"
echo "::::::::::::::::::::::::::::::"
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - &> init_std.log
sudo apt-get install -y nodejs &> init_std.log
echo ":: node.js v8 installed.    ::"
echo "::::::::::::::::::::::::::::::"

echo " "

# PM2 설치
echo ":::::::::::::::::::::::"
echo ":: Installing pm2... ::"
echo ":::::::::::::::::::::::"
sudo npm i --global pm2 &> init_std.log
echo ":: pm2 installed.    ::"
echo ":::::::::::::::::::::::"

echo " "

# git 암호 저장 설정 변경
sudo git config --global credential.helper store &> init_std.log
echo ":::::::::::::::::::::::::::::::::::::::::::"
echo ":: Changed git credential configuration. ::"
echo ":::::::::::::::::::::::::::::::::::::::::::"

echo " "

# 시간대 설정
sudo timedatectl set-timezone Asia/Seoul &> init_std.log
echo ":::::::::::::::::::::::::::::::::::"
echo ":: Timezone changed: Asia/Seoul. ::"
echo ":::::::::::::::::::::::::::::::::::"

echo " "

# 포트 포워딩 설정
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE &> init_std.log
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000 &> init_std.log
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 3001 &> init_std.log
echo ":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
echo ":: Port-forwarding configured: 80 to 3000 and 443 to 3001. ::"
echo ":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"

echo " "
echo " "

echo ":: Initialized."

echo " "

10-19: Node.js V8을 설치합니다. 필요하지 않다면 삭제합니다.

21-29: PM2를 설치한다. 필요하지 않다면 삭제합니다.

31-37: Git을 사용할 때 사용자 암호는 영구적으로 저장하도록 설정합니다.

39-45: EC2 인스턴스는 기본적으로 UTC 시간대를 사용합니다. 이를 KST인 UTC+9로 설정합니다.

47-53: 외부 80 포트를 내부 3000 포트, 외부 443 포트를 3001 포트로 포워딩합니다. 포트포워딩이 불필요하다면 삭제합니다.


사용법

  • 위 본문의 코드를 임의의 디렉토리에 init_ubuntu.sh로 저장합니다.
  • 새로 실행한 인스턴스로 업로드 합니다.
  • 다음의 명령어로 실행합니다.
    chmod +x init_ubuntu.sh && ./init_ubuntu.sh