AWS & Ubuntu Server Setting - 2

Posted by lib oimb
2019. 4. 9. 11:52 개발 환경설정 및 오류

지난 시간에 AWS를 간단하게 세팅하였다. 오늘은 AWS 인스턴스에 올린 Ubuntu Server를 이용하여 서버를 한번 세팅해보려고 한다.

 

순서를 간단하게 요약하자면

 

1. root 계정에 대한 비밀번호 설정
2. AWS 인스턴스에서 root 계정으로 원격 접속 가능하게끔 세팅

3. 필요한 프로그램 설치
    3.1 JDK
    3.2 WAS
    3.3 MAVEN
    3.4 MYSQL
4. 환경설정 파일 추가 및 수정(alias,configure,profile)
5. iptables

 

이와같은 과정을 거칠것이다.

 

 

 

1. root 계정에 대한 비밀번호 설정

 

sudo passwd root

 

이후 개발용 계정을 생성해준다.

 

sudo adduser rimbong

 

다음으로 개발자 계정이 루트권한 명령어들을 사용할 수 있게 만들어준다.

 

sudo visudo

 

파일을 열면 아래 그림과 같은 부분이 보인다 이곳에 자신의 개발자 아이디 권한을 부여해준다.

 

 

 

 

2. AWS 인스턴스에서 root 계정으로 원격 접속 가능하게끔 세팅

 

AWS에 서버를 세팅할 경우 초기 상태에서는 root계정으로 접근할 수가 없다. 따라서 이를 가능하게 만들어 주기위한 과정이다.

 

첫 번째

 

sudo vi /etc/ssh/sshd_config

 

이후

 

# PermitRootLogin no 
PermitRootLogin yes

 

두 번째

 

su - root

cd ~/.ssh

mv authorized_keys authorized_keys_bak

cp /home/ubuntu/.ssh/authorized_keys .

service sshd restart

 

위 과정은 root의 ~/.ssh 디렉토리에 있는 authorized_keys를 authorized_keys_bak로 이름을 변경하고

aws에서 사용하는 ubuntu 계정의 authorized_keys를 root로 복사한 과정이다.

 

 

 

3. 필요한 프로그램 설치

프로그램중 JDK WAS MAVEN은 명령어로 다운받지 않고 tar.gz파일을 ftp를 이용해서 우분투 서버로 옮긴후 서버에서 압축을 풀어 사용할 것이다. 명령어로 다운 받아도 좋지만 개인적으로 나는 이 방법을 선호 한다.

ftp는 파일질라도 좋고 머든 좋다. 나는 모바 엑스텀을 이용해서 하였다.

 

3.1 JDK 설치

 

먼저 os가 몇 비트인지 확인한다. 참고로 저는 64비트입니다.

 

uname -a

 

오라클 사이트

 

이후 오라클 사이트에서 해당 비트에 맞게 JDK를 다운받으면 된다. 그리고 ftp프로그램을 이용해서 /java에 해당 압축파일을 넣는다.

 

sudo mkdir /java

sudo chown -R rimbong:rimbong /java

 

다음에는 압축을 풀어주시면 됩니다.

 

tar -xvzf 압축파일명

 

이후 압축이 풀린 jdk디렉토리를 실제로 사용할 경로로 옮겨줘야 한다.

 

sudo mkdir -p /usr/lib/jvm

sudo cp -r ~/jdk디렉토리명/ /usr/lib/jvm

 

JDK를 설치 했으니 환경 변수를 잡아줘야 한다.

 

sudo vi /etc/environment

 

그리고 이 환경설정이 모든계정이 로그인 했을때 적용될 수 있도록 /etc/profile을 수정해야한다.

sudo vi /etc/profile

 

위 그림과 같이 설정하면 된다. 

보통 환경변수만 잡으면 java가 실행될거라고 생각하지만 이상하게 리눅스는 그렇지 않다

심볼릭 링크까지 걸어줘야 한다.

 

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk디렉토리명/java" 1

sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk디렉토리명/bin/javac" 1
 
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk디렉토리명/bin/javaws" 1
java -version

 

정상적으로 나온다면 완료됬다.

 


 

 

3.2 WAS 설치

 

tomcat 역시 tar.gz 파일을 다운받아 ftp로 옮겨서 압축을 풀어준다.

 

톰캣 9 -> download

 

sudo mkdir /was

 

이후 /was로 압축파일을 옮긴 압축을 풀어준다.

 

 


 

3.3 MAVEN 설치

 

maven 설치 역시 톰캣과 같이 간단하다

 

sudo mkdir /maven

maven으로 옮긴후 압축을 풀면된다.

 

 


3.4 MYSQL 설치

 

sudo apt-get install mysql-server-5.7

 

이후 분홍 바탕의 설치 과정이 나온다 root계정의 비밀번호를 설정하는 과정, port 번호 설정 등 제외 하고는 크게 어렵지 않으므로 잘 읽고 설치하시면 됩니다.

설치가 끝나면 확인을 해봅시다.

 

sudo mysql --version

mysql -u root -p
password:

 

 

 

4. 환경 설정 파일 추가 및 수정

자 다음으로 환경설정 파일을 만들어주면 된다.

 

첫 번째 .aliases 파일

 

cd
vi .aliases
alias thome='cd /was/apache-tomcat-버전명'
alias tstart='/was/apache-tomcat-버전명/bin/startup.sh'
alias tstop='/was/apache-tomcat-버전명/bin/shutdown.sh'
alias tlog='tail -f /was/apache-tomcat-버전명/logs/catalina.out'
alias st='netstat -an | grep 8080'
 
alias hsh='cd /webSrc/HOMEPAGE/HOMEPAGE/shell'
alias jsh='cd /webSrc/프로젝트명/shell'

 

두 번째 .configure 파일

 

cd
vi .configure
# JAVA OPTIONS
#export _JAVA_OPTIONS='-Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m'

# CATALINA HOME
export set CATALINA_HOME='/was/apache-tomcat-9.0.17'
PATH=${PATH}:$CATALINA_HOME/bin


# MAVEN CONFIGURATION
export set M2_HOME='/maven/apache-maven-3.6.0'
export set M2=$M2_HOME/bin

export PATH=$PATH:$M2

 

그리고 이 두 파일은 관리자 계정이 로그인 될때만 적용 시킬것 이므로 ~/.profile 에 적용시키면된다

 

# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin directories
PATH="$HOME/bin:$HOME/.local/bin:$PATH"

. .aliases
. .configure

 

 

 

5. iptables

자 이제 마지막으로 포트포워딩을 위한 iptables를 세팅 해주면 된다. 

80번 포트로 인바운드된 포트를 내부 8080포트에 매핑 시켜주는 것이다.

 

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

sudo iptables -t nat -L

그리고 이를 영구 지속해주기 위해서

 

cd ~
mkdir firewall_rules_backup

cd firewall_rules_backup
iptables-save > 20190409.rules

sudo apt install iptables-persistent
iptables-save > /etc/iptables/rules.v4
sysctl -p
reboot

sudo iptables -t nat -L

 

이 댓글을 비밀 댓글로