홈페이지
┌ 정적 : 글자,그림
└ 동적 : 값입력 -> 결과
┌ 웹서버
└ 웹 애플리케이션서버
웹 애플리케션 구축해보기
클라이언트 정적 웹서버 웹
동적 애플리케이션서버
└---------┘
NGINX
asdf 버전관리 / asdf : 소스관리해줌
호환성,의존성
=================================
[실습] Ngnix,Phusion Passenger 설치 및 서비스
cd /var/www
wget http://s3.amazonaws.com/phusion-passenger/releases/passenger-6.0.12.tar.gz
※ ┌ wget : 파일
└ curl : 웹문서
sudo mkdir /var/passenger
sudo chown ec2-user /var/passenger
tar -xzvf passenger-6.0.12.tar.gz -C .var/passenger
asdf plugin add ruby
sudo yum install gcc gcc-c++ glibc glibc-common gd gd-devel openssl-devel libcurl-devel -y
asdf install ruby 3.1.1
asdf global ruby 3.1.1
echo export PATH=/var/passenger/passenger-6.0.12/bin:$PATH >> ~/.bash_profile
※ > : 새로만들기
: 마지막에 추가
source ~/.bash_profile
passenger-install-nginx-module
enter
!누르고 스페이스 바를 이용해서 Node.js만 설정
sudo dd if=/dev/zero of=/swap bs=1M count=1024
sudo mkswap /swap
sudo swapon /swap
passenger-install-nginx-module
enter
!누르고 스페이스 바를 이용해서 Node.js만 설정
1enter
enter
export ASDF_DATA_DIR=/home/ec2-user/.asdf
export ORIG_PATH="ORIG_PATH"
asdf global ruby 3.1.1
passenger-install-nginx-module
enter
!누르고 스페이스 바를 이용해서 Node.js만 설정
enter
1 enter
enter
enter
exit
sudo vi /opt/nginx/conf/nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
server_names_hash_bucket_size 128;
passenger_root /var/passenger/passenger-6.0.12;
passenger_ruby /home/ec2-user/.asdf/installs/ruby/3.1.1/bin/ruby;
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name 3.34.47.133;
root /var/www/aws-exercise-a/public;
passenger_enabled on;
passenger_app_type node;
passenger_startup_file /var/www/aws-exercise-a/app.js;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
:wq
sudo /opt/nginx/sbin/nginx //재시작하려면 뒤에 -s reload 붙이면됨
브라우저로가서 http://3.34.47.133 치면
=> AWS exercise의 A project입니다.라고 결과값이 나옴
==========================================
[실습] nginx, Phusion Passenger 서비스 명령어 추가
cd / etc/init.d
sudo vi nginx
nginx 시작 스크립트의 내용을 복사 및 붙여넣기해서 저장
sudo chmod 755 nginx
sudo service nginx start/stop/restart/reload/status
==========================================
[실습] 시스템 시작 시 자동 시작 서비스에 등록
sudo chkconfig --add nginx
sudo ntsysv
nginx 체크한 후 확인선택 체크는 버튼이동은
===========================================
다중서버환경 구축
Auto Scaling
│
│
└ 서버
애플리케이션
클라이언트 -- 로드밸런서 -- -- 데이터베이스
서버
애플리케이션
※ Auto Scaling : 인스턴스들의 수를 자동으로 늘리고 줄여준다
ex) 사용자가 많이몰릴땐 서버의수를 늘리고 적을땐 서버의수를 줄인다
※ AMI를 만들때 EC2는 중지 시켜야됨
■ AMI만들기
● aws08 이미지및템플릿에서 이미지 생성하기
이미지명 aws08-exercise-image으로 만들기
※ AMI 와 스냅샷은 작업종료시 종료시켜줘야됨
AMI ID가 노출되면 안됨
● 시작 템플릿 생성하기
aws08-exercise-launch-template
initial version
내 소유 aws08-exercise-image 선택
인스턴스 유형 - t2.micro
키 페어 - aws08-key
보안그룹 - SSH , WEB
● Auto Scaling 그룹 생성
AWS08-EXERCISE-GROUP
시작 템플릿 - aws08-exercise-launch-template 선택
네트워크 가용 영역 및 서브넷 - 2a , 2c 선택하고 다음
그룹 크기조정 원하는 용량 : 1 , 최소 : 1 , 최대 : 2
대상 추적 크기 조정 정책 선택
대상 값 : 60
축소 비활성화
태그 추가
Name / aws08-exercise-group
생성
[실습] Auto Scaling을 통한 인스턴스 자동 추가,제거
인스턴스 연결
sudo amazon-linux-extras install epel -y
sudo yum install stress -y
stress --cpu 1 --timeout 600
※ 실습을 끝낸 후 그룹내의 인스턴스들을 모두 종료하고 싶다면 목표 용량을 0으로 변경하면됨
■ AWS Elastic Load Balancing을 이용한 서버 트래픽 분산관리
[실습] Auto Scaling 그룹 , 대상 그룹 , 로드 밸런서 구성
● 로드밸런서 생성
aws08-exercise-lb
네트워크 가용 영역 및 서브넷 - 2a , 2c 선택
보안그룹 - SSH , WEB , default
작업 중간에 대상 그룹생성
● 대상 그룹 생성
aws08-exercise-target-group
상태 확인 경로 - /health 넣고 다음
aws08-exercise-group 지정해주고 포함시키고 생성
대상그룹선택 - aws08-exercise-target-group
생성
DNS 주소 복사해서 브라우저에 붙여넣으면
=> AWS exercise의 A project입니다.라고 결과값이 나옴
● 도메인으로 접속하기
Route 53
호스팅영역 클릭
busanit-lab.com 클릭
레코드 생성
별칭 선택
Application/Classic Load Balancer에 대한 별칭 선택
아시아 태평양(서울)
dualstack.aws08-exercise-lb-1928292237.ap-northeast-2.elb.amazonaws.com 선택
생성
aws08.busanit-lab.com 도메인주소에 치면
=> AWS exercise의 A project입니다.라고 결과값이 나옴