클라우드
클라우드는 구름이라는 뜻을 가지고 있으며, 데이터를 로컬 PC에나 내부 디스크에 보관하지 않고 인터넷을 통해 중앙 컴퓨터(클라우드)에 저장을 할 수 있다.(인터넷만 있으면 어디서든 접속이 가능하다)
•클라우드를 잘하려면?
- 네트워크에 대한 이해
- 서버를 운영하는 능력(주로 Linux 사용)
- 데이터베이스 사용
- 약간의 스크립트 작성
- 클라우드의 특징에 대한 이해
• 클라우드 서비스 업체(Cloud Service Provider : CSP)
- 1위 : Amazon (AWS)
- 2위 : Microsoft (Azure)
- 3위 : Google(GCP)
• 직접 관리
- 서버를 운영할 공간
- 서버를 운영할 인력
⇓
• 서버 호스팅
- 서버 관리를 전문업체에 위탁 관리를 시키는 것
- 서버 자체가 담보역할 ---> 랜탈하는 개념(월 비용만 계산)
- 대규모로 운영하면 단가가 내려감
⇓
• 웹 호스팅
- 웹 서비스만 해주는 방식
- 서버 한대에 여러 웹사이트를 운영할 수 있음
- 비용을 더욱 줄일 수 있음
⇓
• Cloud
- 서버에 가상머신을 운영, 가상 머신은 서버의 역할을 함
- 웹호스팅 보다 훨씬 효율적(비용울 더욱 줄일 수 있음)
⇓
• Container
- 운영체제에 Docker를 설치해서 그 위에 Container를 운영하는 방식
- Kubernetis를 이용해서 운영을 더욱 효율적으로 할 수 있음
• 클라우드 컴퓨팅의 특징 ⭐⭐⭐⭐
1) Multi_Tenancy (복수 점유) : IT자원을 공유
2) Self-Service : 고객이 직접 설정(각종 비용이 절감)
3) 규모의 경제 : 더 크게하면 단가를 더 낮출 수 있음
4) 동적 확장성(필요할 때 눌림/줄임)과 사용한 만큼 지불(종량제)
• 클라우드가 비용이 절감되는 이유⭐
1) 필요한 만큼만 사용할 수 있기 때문 (오토스케일링, 종량제)
2) 고객이 직접 설정하기 때문 ----> 고객이 공부해야 설정 가능(공부하는 비용 발생)
3) 대규모 : 대형 데이터센터를 운영하면 비용이 더 절감됨
• 종량제 : 사용한 만큼 지불, 사용 안하면 안내도 됨 <---> 정액제 : 사용하지 않아도 일정 금액을 내야 함
cf. 기업에서는 정액제 가능?? => 불가능
•우분투를 써야하는 이유
- 안정성이 굉장이 좋아졌다.
데이터베이스
실습준비 1) https://ubuntu.com/ 에서 우분트 22.04.LTS버전을 다운로드 2) MySQL Server 설치 - sudo apt update - sudo apt install mysql-server |
• 데이터베이스 만들기
Ubnutu에 Gnuboard 설치하기 |
Gnuboard는 PHP 언어를 사용하여 무료로 웹 게시판을 만들 수 있다.
1) 웹서버 설치 $ sudo apt install apache2 2) Database 설치 (MySQL 설치) $ sudo apt install mysql-server $ sudo mysql -u root -p // MySQL에 접속, 패스워드 없음 (그냥 엔터) mysql> create database gnuboard; // gnuboard라는 DB를 생성하기 mysql> show databases; // 잘 만들어졌는지 확인 mysql> create user board@localhost identified by '1234'; // 사용자 및 비밀번호 생성 mysql> grant all privileges on gnuboard.* to board@localhost; // board에게 gnuboard의 모든 테이블에 대한 권한부여 mysql> exit 3) 웹서버에서 사용할 언어 설치 $ sudo apt install php php-mysql php-common php-gd php-fpm php-xml php-json php-curl git 4) 게시판 소스 다운로드 $ cd /var/www/html $ sudo git clone https://github.com/gnuboard/gnuboard5 $ cd gnuboard5 $ sudo mkdir data // 사용자들이 업로드할 데이터 디렉토리 생성 $ sudo chmod 707 data // 누구나 읽고 쓰기 가능하도록 설정 5) 마무리 $ sudo apt install net-tools $ ifconfig // ip주소 확인(복사) $ sudo service apache2 restart 6) 게시판 설정 http://192.168.5.133/gnuboard5/ // 우분투ip 주소 그누보드5 설치하기 클릭 사용자 : board, 비밀번호 : 1234, DB명 : gnuboard, 웹사이트 관리자 admin/admin1234 |
gnuboard 데이터베이스를 만들어준 후 잘 만들었는지 확인을 한다.
board@localhost 사용자를 만들고 비밀번호를 1234로 설정을 한다.
board에게 gnuboard의 모든 테이블에 대한 권한을 부여한다.
그다음 위에 나오 소스 코드 그대로 순서대로 진행을 한다.
웹 브라우저에 접속을 한 다음 주소창 192.168.5.133/gnuboard5 입력을 하여 접속을 하면 그누보드 5 설치 버튼을 클릭한다.
DB명을 우분투에서 만들었던 DB명으로 입력을 해야한다.
기본 설치가 다 끝났다.
다시 주소창에 192.168.5.133/ gnuboard5를 입력 후 들어가면 그누보드 5의 기본 화면이 보인다.
잘 작동이 되는지 자유게시판에 파일을 업로드해보자.
이미지 파일을 업로드할 예정이다.
이미지 파일이 잘 올라가는 걸 보니 홈페이지가 잘 작동이 되는 걸 알 수 있다.
• 2 Tier
웹서버가 DB에 연결되는 형태를 말한다. 클라이언트/서버 환경은 하나의 클라이언트에 서버 프로세스가 하나씩 생성되는 방식이다.
• 3 Tier
클라이언트가 미들웨어로 메시지를 주고받으면서, 데이터베이스에 저장하여 사용하는 형태이다.
• SSH 실습(윈도우에서 접속해보기)
우분트 터미널에서 ive 계정을 생성을 해준다.
root 밑에 ive ALL=(ALL:ALL) ALL를 추가해준다.
Cmd 창에서 ssh 192.168.5.133 -l ive를 입력해 로그인을 해준다.
-ㅣ 옵션은 로그인 옵션이다.
AWS
• 아마존 계정 로그인
- Zone : 가상의 데이터센터(실제로는 3개 이상의 물리적인 데이터센터에 걸쳐있는 가상의 데이터 센터)
- 리전마다 Zone은 3개 이상 구성
- 리전을 따로 사용하는 이유는 VPC를 만들 수 있는 개수가 제한이 있다
• 스토리지(Storage)
- 저장 창고(데이터를 보관)
- Amazon S3(Simple Storage Service)
- 데이터를 Bucket 단위로 관리할 수 있음
- Bucket은 이름을 고유한 이름으로 만들어야 함(전 세계에서 유일한 이름으로 설정)
tjdguswl이라는 버킷을 만들었다. 파일을 업로드해보자.
hacker.jpg 파일을 업로드할 수 있다.(인터넷에 공개)
※ 인터넷에 공개할 경우
‣ 퍼블릭 읽기 액세스 권한 부여를 선택
‣ 퍼블릭 액세스 권한을 부여할 위험이 있음을 알고 있다에 체크
※ 버킷을 두 가지로 나누어서
‣ 나 혼자만 보려는 파일 ----> Private 설정
‣ 모두에게 공개하려는 파일 ----> Public 설정
‣ 특정 권한이 있는 사람에게만 공유하려는 파일 ---> ACL를 적용
• AWS 실습
CMD에서 SSH로 ive계정에 접속을 한 후, cd /var/www/html 명령어로 디렉토리를 이동을 해준다.
그다음 기존에 있던 index.html를 sudo mv index.html index.old로 변경을 해주고 sudo vi index.html 명령어로 위 코드를 작성해준다.
웹브라우저를 열고 우분투IP로 접속을 하면 AWS에서 업로드한 파일 이미지가 나오는 걸 볼 수 있다.
• AWS 실습
강사님이 주신 index.html 파일과 이미지를 다운로드해서 index.html 파일의 내용을 notepad++로 수정해보세요. |
이미지는 위에서 AWS에 올린 hacker.jpg를 사용할 것이다.(내용은 내 맘대로 수정을 한다)
notepad++로 수정한 index.html를 AWS에 업로드를 한다.(권한은 Public으로 설정을 한다)
두 가지 파일이 올라가 있는 걸 확인할 수 있다.
속성을 클릭한 후 밑으로 내리다 보면 정적 웹 사이트 호스팅이 보인다
여기에서 편집을 눌러 비 활성됨을 활성화로 바꿔준다.
정적 웹 사이트 호스팅이 활성화된 걸 볼 수 있고 이동할 수 있는 주소가 보인다.(복사를 한다)
웹브라우저에 복사한 주소을 입력을 하면 index.html에 수정한 내용과 이미지가 보인다.
※ 파일을 퍼블릭으로 설정하지 않으면 나타나는 오류
1) 403 Forbidden (권한이 없음 ----> Public으로 설정하지 않아서)
2) XML -------> 권한이 없기 때문에 뜨는 에러임
'Rookies 9기 > 클라우드 보안' 카테고리의 다른 글
클라우드 보안 6일차 (0) | 2022.10.05 |
---|---|
클라우드 보안 5일차 (0) | 2022.09.30 |
클라우드 보안 4일차 (0) | 2022.09.29 |
클라우드 보안 3일차 (0) | 2022.09.28 |
클라우드 보안 2일차 (0) | 2022.09.27 |