소규모 웹사이트 구축해보기

호밀빵 굽는 쿼카·2022년 12월 27일
0

NHN Cloud

목록 보기
11/16

소규모 웹사이트 구축

1. 네트워크 망 만들기

Vpc 생성(10.0.0.0/16 넒은 대역으로!) ➡️ internet gateway 장비만 생성 ➡️ routing에서 internet gateway 연결! ➡️ routing table에 INTERNET_GATEWAY 추가된것 확인 가능

2. 용도에 맞게 subnet 구분해서 만들기

3. private_subnet에 Db server 만들기 (rds for mysql 사용)

  • 기본 = 고가용성 사용 안함 => 비용과 직결되므로
  • 고가용성 사용안하더라도 부가적으로 사용되는 서비스가 있기때문에 사용하는 고객들도 있음
  • 우리는 고가용성 사용해서 만들것!!!
  • rds for db는 내부 인터널 도메인만 만들어지기 때문에 내부 네트워크 가능
  • Security group을 사용하지 않고 따로 사용자 접근제어를 사용함( rds for mysql > 백업 &Access 제어 에서 관리)
  • 사용자 접근제어에 0.0.0/0 삭제하고 웹 Ip 적어주면 그 ip만 접근 가능

4. mgmt 인스턴스 생성

  • mgmt 인스턴스를 통해서만 외부-내부/내부-내부 연결되도록 설정할 것
  • Mgmt 인스턴스는 22번 포트를 통해 나가고 들어옴
  • 나는 vpn (사설 ip) 사용하기 때문에 myip.com에서 맨 위 공인 ip를 사용
  • 이후 mgmt-server에 floating ip 연결

5. 사용자 스크립트를 통해 웹서버용 인스턴스 생성

#! /bin/bash 

yum install -y libjpeg* libpng* freetype* gd-* gcc gcc-c++ gdbm-devel libtermcap-devel

yum install -y httpd* 

curl -O https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh epel-release-latest-7.noarch.rpm

curl -O http://rpms.remirepo.net/enterprise/remi-release-7.rpm
rpm -Uvh remi-release-7.rpm

yum install -y yum-utils
yum-config-manager --enable remi-php72
yum install -y php php-common php-opcache php-cli php-gd php-curl php-mysqlnd php-mysqli

systemctl start httpd
systemctl enable httpd
yum install -y mysql
systemctl start mysql
yum install -y unzip

wget -P /var/www/html/ https://kr2-api-storage.cloud.toast.com/v1/AUTH_070792726ea940d48e10bcc2cdb4b1da/container/php.zip
unzip /var/www/html/php.zip -d /var/www/html/

6. 생성한 web-1 웹서버의 이미지를 생성한다

Web-1 웹서버 정지 후 이미지 생성 (이름: web)

7. Object storage 통해 mgmt-server에 .pem key를 가지고 옴

동작 원리 : pem키를 object storage에 넣음 ➡️ url 생성될것 ➡️ 그 url을 통해 mgmt-server에 pem 키 복사

Container 생성 ➡️ folder 생성 ➡️ folder 안에 객체 업로드 ➡️ pem 키 url 복사 ➡️ mgmt-server 접속 ➡️ sudo su로 root계정으로 전환 ➡️ wget url ➡️ pem키 다운로드 완료

8. Mgmt-server를 이용해서 web-1 서버로 접속

여기서 중요한것이, mgmt-server에서 web-1로 접속하려면 둘다 사설네트워크에 있기때문에 mgmt-server의 사설 ip가 22번 포트로 열려있어야 접속이 가능
mgmt-server의 사설ip = 10.0.1.16
이렇게 접속 가능스크립트 잘 돈것도 확인 가능log도 확인 가능

추가)) Web-1 은 private에서만 사용가능하므로 사설 Ip만 생성 가능 -> 플로팅 ip 생성 불가능!

8. 생성해놓았던 web 이미지를 통해 web-2를 생성

9. web-1 과 web-2 사이의 LB 설정

1) Load Balancer를 설정해줌

2) 추가로 floating ip를 할당해 외부에서 접근할 수 있도록 함
지금은 통신 불가능이기 때문에 LB와 웹서버들이 통신할 수 있도록 설정

3) 결과
mgmt-server의 floating ip를 url 입력하면 ➡️ 새로고침하면 ip2개가 왔다갔다하는것을 확인가능. 라운드 로빈으로 균등하게 분배된다는 뜻!

10. Db 서버 접속

아이디 : hw / 비번 : 비밀번호
아까 전에 고가용성 사용하는 것에 체크 했으므로 candidate master 생성된것도 확인할 수 있음

11. DB 스키마/테이블 생성

콘솔에서 스키마 생성 후 테이블 생성

중요한것!!!! mgmt-server 접속 후 ➡️ web-1 / web-2 접속 (여기서 중요한것이 sudo su 즉, 관리자 계정으로 변경해주고 접속가능)

12. Db 정보 넣기

1) Php mysql db 정보 변경

2) 웹사이트에서 데이터 넣으면 mysql db에 정보 저장되는 것 확인 가능

profile
열심히 굽고 있어요🍞

0개의 댓글