[CowAPI] 31. AWS에 Springboot 배포하기 (1)

준돌·2022년 7월 12일
1

오늘의 Cow

목록 보기
36/45

1. 문제

  • 서버의 응답이 너무 느리다.

2. 원인

  • 서버의 지역이 오레곤 이였다.
  • 참조 : cloudping

3. 해결방법

  • 서버의 지역을 이전

4. AWS 생성 (서울)

  1. IAM 생성
  • 사용자 -> 사용자 이름 -> 액세스 키 -> 사용자 만들기 -> .csv 다운 (영구 보관)
  • 사용자 그룹 -> 사용자 추가 -> 권한
  • 역할 -> AWS 서비스 -> EC2 -> 권한
  1. EC2 생성
  • 인스턴스 시작 -> 프리티어 -> 키페어 생성(영구 보관) -> 보안 그룹 생성 -> 스토리지 (30G까지 무료) -> 고급세부에서 IAM 설정 -> 생성
  1. RDS 생성
  • 데이터 베이스 생성 -> MySQL -> 프리티어 -> 퍼플릭 액세스 -> 생성
  1. S3 생성
  • 생성 -> 이름, region -> 암호화 (S3) -> 생성 -> 퍼블릭 액세스 -> 정책 설정
  1. 탄력적 IP
  • EC2 -> 탄력적 IP -> 탄력적 IP 연결 -> 인스턴스 -> 연결
## 주의 (과금)

1. 탄력적IP를 받고 어떤 인스턴스에도 연결하지 않는 경우

2. 프리티어가 아닌 유료 인스턴스에 연결하는 경우

3. 프리티어 인스턴스에 연결해놓고 해당 인스턴스를 중지시키거나 삭제하여 탄력적 IP가 붕 뜨는 경우

5. 연결 확인

  1. EC2
  • puttygen -> pem or ppk 생성 -> putty -> SSH -> Auth -> ppk -> session -> 탄력적 IP -> open -> ec2-user
  1. RDS
# EC2에 mysql 설치
sudo yum install mysql
  • 인바운드에 (MySQL, 보안그룹) 추가 -> EC2 접속 -> mysql -u {유저 아이디} -p -h {엔드포인트}

6. setting

  1. redis 설치
# 1. yum, gcc make 설치
sudo yum update -y
sudo yum install gcc make -y

# 2. redis 설치하고 gcc로 컴파일, 압축 파일 삭제
mkdir redis
cd redis
wget http://download.redis.io/releases/redis-6.2.5.tar.gz
tar xzf redis-6.2.5.tar.gz
cd redis-6.2.5
make

# 3. 디렉토리 생성 및 Redis 설정 파일 복사
sudo mkdir /etc/redis
sudo mkdir /var/lib/redis
sudo cp src/redis-server src/redis-cli /usr/local/bin/
sudo cp redis.conf /etc/redis/

# 4. redis.conf 설정파일 수정
sudo vi /etc/redis/redis.conf

-> bind 0.0.0.0
-> daemonize yes
-> logfile /var/log/redis_6379.log
-> dir /var/lib/redis 

# 5. Redis 서버 초기화 스크립트 다운로드
wget https://raw.github.com/saxenap/install-redis-amazon-linux-centos/master/redis-server

# 6. 다운 받은 파일을 /etc/init.d로 옮기고 권한을 설정합니다.
sudo mv redis-server /etc/init.d
sudo chmod 755 /etc/init.d/redis-server

# 7. redis-server 파일에 redis 항목 체크
sudo vim /etc/init.d/redis-server

-> redis="/usr/local/bin/redis-server"
-> prog=${basename $redis}

# 8. redis-Server Auto-Enable 설정
sudo chkconfig --add redis-server
sudo chkconfig --level 345 redis-server on

# 9. redis 실행 
sudo service redis-server start
redis-cli ping

# 10. redis 접속
redis-cli
  1. jenkins 설치
# 1. swap memory 만들기
sudo dd if=/dev/zero of=/swapfile bs=128M count=32 # 스왑 파일 생성 2GB (128MB x 32 = 4,096MB)
sudo chmod 600 /swapfile # 권한 변경
sudo mkswap /swapfile # 스왑 영역 설정
sudo swapon /swapfile # 스왑 공간에 스왑 파일을 추가하여 스왑 파일을 즉시 사용할 수 있도록 만든다

sudo vi /etc/fstab # /etc/fstab 파일을 편집하여 부팅 시 스왑 파일을 활성화

/swapfile swap swap defaults 0 0 # 마지막 줄에 추가

# 2. java 설치
# yum 업데이트
sudo yum update -y

# 설치 가능한 Java 버전 확인
yum list java*jdk-devel

# Amazon Linux에 Java 11 설치
sudo amazon-linux-extras install java-openjdk11

# yum 패키지의 Java 8 설치
sudo yum install -y java-1.8.0-openjdk

# 자바 버전 11로 설정
sudo alternatives --config java

# 자바 버전 확인
java -version

# 3. jekins 설치
# jenkins 패키지 추가
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key

# 자바 11버전에서 젠킨스 설치
sudo amazon-linux-extras install
sudo amazon-linux-extras install epel
sudo yum install -y epel-release
sudo yum install -y java-11-openjdk-devel
sudo yum install -y jenkins

# Jenkins port 변경 (JENKINS_PORT = "8080" -> "9090")
sudo vi /etc/sysconfig/jenkins
sudo vi /usr/lib/systemd/system/jenkins.service

# WorkingDirectory 변경 (알 수없는 변경 불가..)

# 시작
sudo service jenkins start

# 초기 비밀번호
sudo cat /var/lib/jenkins/secrets/initialAdminPassword

# 패키지 설치 및 초기 설정 완료
  1. git 설치
sudo yum update -y
sudo yum install git
  1. nginx 설치
sudo amazon-linux-extras install nginx1.12
  1. properties 수정 및 springboot 실행 (local)
  • 속도 300ms -> 32ms 로 10배 향상
profile
눈 내리는 겨울이 좋아!

0개의 댓글