수업 내용 요약

ik_13038·2022년 8월 5일
0

라이징캠프 1주차

목록 보기
1/7

1주차 학습내용 정리 및 요약

1. 서버란 무엇인가?

1) 역할적, 상대적 개념
클라이언트에게 무언가를 요청 받고 이에 대응하는 서비스를 제공하는 컴퓨터 (사용자에게 데이터나 리소스를 서빙)

  • 이러한 역할적 정의에 따라 클라이언트와 서버를 구분한다.

2) 특징
클라이언트와 서버는 N : 1 관계이다.

2. 서버의 구조


일반적인 구조를 위와 같이 생각했음. (3-tier-Architecture)
서버개발자 입장에서 조금 더 기능 구현, 구체적으로 살펴보았을시에는

Client - Server - BackendLanguage - DB(DBMS)
cf) Server(ex.Apache, nginx), BL(ex.PHP), DB (Oracle, MongoDB)..

  • 크게 보면 Server에 위의 Server, BL, DB를 모두 함축하고는 한다.

3. APM이란?

  1. 정의 : Apache+Php+Mysql을 합쳐서 부르는 용어이다. 각각 웹 서버, 웹 프로그래밍 언어, DBMS 역할을 수행한다.
  • A(Apache) : 웹서버
    P(PHP) : 웹 프로그래밍 언어
    M(MYSQL) : 데이터베이스
    Apache와 MySQL이 PHP와 호환성이 좋기 때문에 주로 세 프로그램을 묶어 패키지 형태로 사용한다.
  1. APM 구동원리

Client가 인터넷 내 주소 URL을 입력, 리소스를 서버에 요청
-> 서버의 Apache 프로그램은 포트로 웹서버에 요청하여 웹서버가 사용자에게 홈페이지 정보를 전달하게 해줌 (HTML, CSS)
-> 사용자가 로그인 요청이나 다른 정보 요청하면 PHP 스크립트 실행
-> MySQL에 쿼리 질의
-> MySQL은 저장된 데이터를 DB에서 가져와 가져온 데이터와 PHP 코드를 모두 HTML 형태로 변경하고, 해당 HTML을 아파치에 전송
-> 아파치는 완성된 HTML 파일을 클라이언트 측의 컴퓨터 웹 브라우저에 응답한다.

4. AWS, EC2, RDS

  1. AWS는 가상 컴퓨터를 임대 받아 그 위에 자신만의 컴퓨터 애플리케이션들을 실행 할 수 있게 아마존에서 제공하는 서비스이다.

    사용자가 아마존 머신 이미지(AMI)로 부팅하여 아마존이 "인스턴스"라 부르는 가상 머신을, 원하는 소프트웨어를 포함하여 구성할 수 있게 하는 웹 서비스를 제공함으로써 스케일링이 가능한 애플리케이션 배치(deployment)를 장려한다.

  2. AWS RDS는 아마존 웹 서비스가 서비스하는 분산 관계형 데이터베이스이다. 애플리케이션 내에서 관계형 데이터베이스의 설정, 운영, 스케일링을 단순케 하도록 설계된 클라우드 내에서 동작하는 웹 서비스를 제공한다. EC2 인스턴스를 기반으로 운영하는 서비스이다.

  • (APM 모델 중 M을 관리에 용이한 서비스를 제공해준다고 생각하면 된다.)
  1. EC2(Elastic Compute Cloud)는 아마존 웹 서비스에서 제공하는 서비스로 안전하고 크기 조정이 가능한 컴퓨팅 파워를 클라우드에서 제공하는 웹 서비스이다. 개발자가 더 쉽게 웹 규모의 클라우드 컴퓨팅 작업을 할 수 있도록 설계되었다.

  2. RDS와 EC2의 차이

  • EC2는 내가 직접 리눅스 위에 사용하려는 DB를 설치하고 그위에 서비스
  • RDS는 EC2와 함께 사용하며 아마존에서 DB의 설정, 운영, 백업 등의 기능을 편하게 이용할 수 있게 해주는 EC2와 분리된 DB 전용서버

cf) 클라우드란?
컴퓨터 통신망이 구름과 같은 것에 싸여 안이 보이지 않고, 일반 사용자는 이 복잡한 내부를 굳이 알 필요도 없이 어디에서나 구름 속으로 손을 집어넣어(통신망에 접근해서) 자기가 원하는 작업을 할 수 있다는 것이다.

5. 서버(A+P)내에서 DB(M)을 분리하는 이유 (예시:웹)

  1. 부하분산
  • 각각의 이용률을 고려 하 나눌 시 효율적 운용이 가능
  1. Scale-out 시 문제점
    Web Server의 부하가 생기면 단순히 수를 늘리고 L4와 같은 부하분산장비로 처리하면 문제가 해결되겠지만,
    DB의 경우에는 이런 확장 및 증설이 어렵고 돈도 돈대로 나간다.

  2. DB서버는 메모리에 의존적이다.
    DB는 (web server에 비해) 거의 메모리에 의존적이다.
    사용률이 많은 서버를 운영 할 때,
    이런 상황에서 WEB과 DB를 함께 운영하게 되면 메모리 자원이 부족한 현상을 겪게 된다.

대부분은 분리해서 운용하고 있음.
cf. (다양한A+P / 하나의 M) -> 구글 내 다양한 기능(구글 - mail, drive 등등)

6. Domain Server와 Ip주소

도메인은 IP 주소를 대신하여 사용하는 주소이다.

  • Domain(도메인)이란?
    도메인은 웹 브라우저를 통해 특정 사이트에 진입을 할 때, IP 주소를 대신하여 사용하는 주소이다.
    도메인을 이용해서 한눈에 파악하기 힘든 IP 주소를 보다 분명하게 나타낼 수 있다.
    (지도 내 좌표 -> 도로명 주소와 유사
    223.130.195.95 -> www.naver.com)
    *terminal 내에서 nslookup기능으로 확인 가능

7. 기타 느낀 점 및 수행 예정 사항

다른 참여하신 분들 모두 프로젝트 경험이 많은 분들이 대다수였다. 늦었다고 생각했을 때가 정말 늦은 거라고 열심히 따라가려고 노력해야할 것 같다는 생각이 들었다.

끝으로 선생님께서 개발자 작업을 하며 소통 의 중요성을 계속해서 강조하셨다. geek한 개발자가 아닌 소통을 통해 협업하는 사람이 될 수 있도록 노력하자.

  • 과제 수행 예정 (설치 세팅 (소스코드로))
  • MySQL 쿼리문 문법 연습 및 데이터 생성 쿼리문 다양하게 작성해보기
    (CRUD)
  • PHP에 대해 잘 모르니 추후 알아보고 정리해보기
  • 리눅스 명령어 연습해보기 (CLI 환경 명령어)

출처 : 라이징캠프 수업 내용 외

APM구조 이미지
RDS 개념 / EC2 와 차이 (AWS)
Web Server와 DB를 분리하는 이유

profile
글 연습, 정보 수집

0개의 댓글