쿠버네티스 전문가 양성과정 4주차 4일(1/12)

최수환·2023년 1월 12일
0

Kubernetes

목록 보기
20/75
post-thumbnail

DB

  • 데이터베이스 : 여러 사람에 의해 공유되어 사용할 목적으로 통합하여 관리되는 데이터의 집합
  • 파일 DB는 여러가지 문제가 있어 대용량 데이터에는 사용하지 않는다 (가벼운 파일에는 SQLite를 쓰긴함)
  • DBMS : 데이터베이스 관리 시스템
    • MYSQL -> Maria DB
    • MS SQL -> SQL SERVER
    • Oracle DB
    • mongo DB
    • postgresql
  • 관계형 DB(RDB) - RDBMS가 관리
    -> 데이터를 로우(row: 행)와 컬럼(column: 열)이라는 일종의 표 형태(테이블)로 저장한다.
    -> SQL : 관계형 데이터베이스를 이용하기 위한 표준 쿼리 언어, 구조화된 질의어, DB에서 정보를 얻거나 조작하거나, 갱신하는 등의 역할을 하는 쿼리 언어, DB와 소통하는 언어

데이터 : 하나하나의 자료들
테이블 : 데이터가 표로 만들어진 것
데이터베이스 : 테이블이 저장된 것

행, 로우, 레코드 : 테이블의 가로, 이름이 없다.
열, 컬럼, 필드 : 테이블의 세로, 이름이 있다. 데이터 타입이 설정되어 있다(문자, 숫자 등등)

데이터 형의 종류

VARCHAR(n) : 가변 길이 문자열
CHAR(n) : 고정 길이 문자열
INT : 정수형 숫자
FLOAT : 실수형 숫자
DATE : 날짜를 저장함
TIME : 시간을 저장함

DB서버 구축

server 측

  • yum -y install mariadb mariadb-server : mariadb설치
  • systemctl start mariadb : 시작
  • systemctl enable mariadb : 활성화
  • firewall-cmd --add-service=mysql -- permanent : 외부에서 클라이언트가 접속 가능하게 함
  • firewall-cmd --reload
  • mysql_secure_installation : 초기 DB 보안 설정
  • mariadb 실행 : mysql -u root -p -> 비밀번호 입력
  • show databases; : 데이터베이스 보기

원격에서 접속가능한 계정만들기

  • use mysql;
  • SELECT user,host FROM user WHERE user NOT LIKE '';
  • GRANT ALL PRIVILEGES ON '별'.'별' TO test@'10.0.2.%' IDENTIFIED BY '1234';
    -> 모든 DB의 모든 테이블의 권한을 가진 test (슈퍼계정)을 만든다
    📒 '별'.'별' = 모든 DB의 모든 TABLE

💡 db안에서 셸 명령어 입력 : system ~


client 측

  • yum -y install mariadb
  • mysql -h 10.0.2.15 -u test -p : 외부에서 client가 서버의 DB로 원격 접속

-- 서버측 DB구축 --

<데이터베이스 관련 SQL>

  • create database 데이터베이스 이름 : DB생성
    -> ex) create database member_db
  • drop database 데이터베이스 이름 : DB삭제
    -> ex) drop database member_db
  • USE DB이름 : 데이터베이스 사용
    -> ex) use member_db
  • show databases : DB보기

<테이블 관련 SQL>

  • show tables
  • CREATE TABLE 이름 (스펙........)
  • table 정보보기 : describe 테이블 이름, explain 테이블 이름
  • drop table 테이블 이름 : 테이블 삭제
  • alter table 테이블 이름 옵션~ : 테이블 안에 값 변경
    • alter table [테이블 이름] add [칼럼명][타입]
    • ex) ALTER TABLE member ADD COLUMN memberidx INT

<테이블 레코드 삽입/삭제/수정/조회>

  • insert into [테이블이름] values(값1,값2,...) : 레코드 삽입
    -> ex) insert into member values ('kim','김철수','35','서울');

  • select 필드이름1,필드이름2.. from 테이블이름 where 조건
    : 테이블 조회
    -> ex) select '별' from member : 테이블 모든 값 보기
    -> ex) select '별' from member where id='kim'

  • UPDATE [테이블이름] set 필드이름1 = 수정값,
    필드이름2 = 수정값... where <필터링 조건> : 테이블 값 수정
    -> ex) update member set age=45, address='대구' where name='조인영';

  • delete from <table이름> where <필터링 조건>
    : 테이블 값 삭제
    -> ex) delete from member where id='hong'

📒 select from member order by age : 나이로 오름차순 정렬
📒 select
from member order by age desc : 나이로 내림차순 정렬


웹 서비스

  • 클라이언트와 웹은 통신 프로토콜 http/80로 통신한다
  • 과거에는 웹이 html, image, css같은 정적컨텐츠를 가지고 있다가 클라이언트가 요청하면 보여주는 식이였다
  • 현재는 웹 서버를 php, jsp, asp, python같은 언어를 이용해 동적 어플리케이션으로 만들어 클라이언트가 인자(파라미터)값을 주면 웹 서버에서 계산을 통해 결과값을 클라이언트에게 반환한다
  • 3계층 구조 : 클라이언트 -> 프론트엔드 - 백엔드 - DB
    = 클라이언트 -> Web - Was - DB

xe게시판 구축

LAMP

  • L : LINUX
  • A : APACHE -> nginx로 가는 추세
  • M : MARIADB(MYSQL)
  • P : PHP -> jsp ,node, js, python로 가는 추세

    장점 : 오픈소스, 쉬운데 강력한 웹페이지 생성 가능
    LAMP관련 자료


<Apache 웹 서버 설치 및 접속>

  • yum -y install httpd
  • systemctl start httpd
  • systemctl enable httpd
  • firewall-cmd --add-service=http --permanent
  • firewall-cmd --reload
  • Apache 기본 디렉터리 : /var/www/html -> index.html
  • Apache 웹 서버 설정 파일 httpd.conf : /etc/httpd/conf 디렉터리에 존재
    • 서버의 모든 ip가 동작하는 포트 설정
    • Apache 웹 서버 프로세스를 구동할 사용자와 그룹 지정
    • 웹 서버의 기본 디렉터리 위치 지정
    • 특정 경로에 대한 지시어의 그룹

      -> AllowOverride : .htaccess 파일에 포함된 설정항목의 사용 여부를 결정
      -> Require : 인증된 사용자가 권한을 부여받았는지 확인
      ✏ Require all granted : 무조건 엑세스 차단
      ✏ Require all denied : 무조건 엑세스 허용
    • 웹 서버가 웹 서비스를 통해 표시할 디렉터리를 지정
    • 192.168.56.101/ 디렉터리로 웹에 접근하면 index.html파일의 내용을 보여준다 = 웹 서버가 표시할 기본 페이지 파일명을 지정
    • /var/log/httpd 디렉터리 : 몇시 몇분 몇초에 어떤 ip에서 웹에 접근했는지 볼 수 있다

      -> 182번 줄 아래부터 로그 파일 설정들

      -> 로그파일 로그 포맷을 설정
    • 서버에 접근하는 클라이언트에게 오류 발생시 지정한 웹페이지 뜨게 설정
      📌 여러가지 에러 상태코드

< mariadb, php 모듈 설치 및 접속 >

  • yum -y install mariadb-server mariadb php php-mysqld
  • systemctl start mariadb
  • systemctl enable mariadb

-- php 작동 확인 --

  • php -v : php 버전확인
  • cd /var/www/html
  • touch phpinfo.php
  • vi phpinfo.php 접속 후 아래 사진처럼 저장
  • systemctl restart httpd : 항상 모듈을 설치하면 재시작 해야함
    -> 웹에 192.168.56.101/phpinfo.php 접속했을 때 함수가 잘 실행되는지 확인

< xe 게시판 설치 >

  • yum -y install php-gd.x86_64
  • vi /etc/httpd/conf/httpd.conf 접속 후 아래 사진처럼 수정 후 systemctl restart httpd
  • firefox에서 xpressengine.com접속 후 제품소개에 XE1들어가서 download에 XE Core 다운
  • shell에서 Downloads디렉터리 들어가서 cp xe.zip /var/www/html로 옮긴다
  • 옮긴후 unzip xe.zip으로 압축해제
  • chmod 707 xe

< xe 게시판이 사용할 db환경 (DB랑 계정) 구축 >

  • mysql : 계정명 지정안해서 로컬호스트로 접속
  • use mysql : MYSQL DB사용
  • GRANT ALL PRIVILEGES ON xeDB.* TO XE@localhost IDENTIFIED BY '1234' : XE 계정 생성
  • mysql -u XE -p : XE 계정 접속
  • CREATE DATABASE xeDB : xe DB생성
  • 192.168.56.101/xe접속해서 3번째 mysql다운
  • 아이디 XE 비밀번호 1234 xeDB 호스트네임 127.0.0.1
    port 3306 접두사 xe
    +9 korea standard time 설정

워드프레스 구축

< php 설치 >

  • php7 이상 필요
  • yum -y install epel-release
  • wget https://rpms.remirepo.net/enterprise/remi-release-7.rpm --no-check-certificate
  • rpm -Uvh remi-release-7.rpm
  • apache서버 설치 후 start,enable
  • yum -y install yum-utils
  • yum-config-manager --enable remi-php73
  • php -v 로 버전이 7이상인지 확인
  • systemctl restart httpd
  • firewall-cmd --add-service=http --permanent
  • firewall-cmd --add-service=https --permanent
  • firewall-cmd --reload

-- php 작동 확인 --

  • cd /var/www/html
  • touch phpinfo.php
  • vi phpinfo.php 접속 후 아래 사진처럼 저장
  • 192.168.56.101/phpinfo.php 접속 잘 되는지 확인

< db설치 >

  • yum -y install mariadb-server mariadb
  • mysql_secure_installation으로 보안 설정
  • yum -y install php-mysql
  • mysql -u root -p
  • create database wordpress
  • create user wordpress@localhost identified by "qwer1234"
  • GRANT ALL PRIVILEGES ON wordpress.* TO wordpress@localhost;
  • FLUSH PRIVILEGES; : 권한 재갱신

< 워드프레스 설치 >

  • cd /tmp
  • wget http://wordpress.org/latest.tar.gz : 설치 파일 다운
  • tar xvzf latest.tar.gz -C /var/www/html : 해당 디렉터리에 압축 풀기
  • cd /var/www/html로 이동
  • chown -R apache /var/www/html/wordpress
  • systemctl restart httpd

-- 워드프레스 접속 --

  • 192.168.56.101/wordpress
  • 기타 설정 후 로그인하면 끝
profile
성실하게 열심히!

0개의 댓글