윈도우 환경인 제 로컬 컴퓨터에서 aws ec2 서버로 파일을 보내야 해서 한번 보내 봅시다.

 

특정 툴 들을 사용해서 보내는 방법도 있지만..

 

뭐 자주,, 이러한 작업을 수행하는 것은 아니므로 간단하게 보낼 수 도 있습니다.

 

먼저 cmd 창을 열고 

 

간단합니다..

 

scp -i [키페어의 위치와 키페어] -r [보내는 파일] [우분투서버에서 저장할 위치]

 

이렇게만 입력해 주시면 됩니다.

 

예시 : scp -i Desktop/ppp/ ~~~~~.pem -r Desktop/mmmmm.zip ubuntu@~~~~~compute.amazonaws.com:home/ubuntu

 

이와 같이 해주시면 간단하게 옮길 수 있습니다

 

간단하죠?

APM(아파치 + PHP + MYSQL)을 설치하기도 했었는데

 

이번엔 AWS EC2 서버에 NGINX-PHP-MYSQL을 설치하고 연동시켜봅시다.

 

최근에는 패키지 설치를 통해서 매우 간단하게 설치 할 수 있습니다.

 

예전에 APM을 패키지 말고 수동 소스설치로 한번 설치 한다고 헀다가 정말

 

정신적인 고통을 많이 느꼈던 적이.... 하지만 패키지 설치는 매우 간단하여 쉽게 할 수 있습니다.

 

서버에 접속 하여 root 사용자로 접근후 apt-get update를 해줍니다. (필요없는 분도 있겠죠? 뭐 그냥 치시면 됩니다.)

그 후 apt-get install nginx 를 통해서 nginx를 패키지 설치를 해줍니다.

 

servcie nginx restart

service nginx status 

명령어를 통해서 현재 nginx 설치 상태를 확인 할 수 있습니다.

 

본인의 aws 서버의 ip주소를 입력하면 아래와 같이 nginx가 설치 되었음을 확인할 수 있습니다.

 

이제 mysql 을 설치 해봅시다.

 

똑같이 명령어 창에

 

#apt-get install mysql-server mysql-client

 

를 입력하여 줍니다. 

 

그 후 #mysql - u root -p 를 통하여 mysql 서비스 콘솔에 액세스 할 수 있다.

 

처음에는 아무 패스워드를 치거나 그냥 엔터만 쳐도 접근 할 수 있습니다.

 

mysql 비밀번호 를 설정 하는 것은 다음에 한번 다루도록 하겠습니다. 

 

구글링 하시면 어렵지 않게 하실 수 있긴 합니다.

 

그렇다면 이제 php7.2를 설치하여 봅시다.

 

#apt-get install php7.2-fpm

 

을 입력해 줍니다.

 

그 후 자신이 필요한 사항에 따라 php 모듈을 설치하시면 됩니다.

 

저 같은 경우,

 

# apt-get install php7.2-mysql php7.2-mbstring php7.2-xml php7.2-gd php7.2-curl php7.2-bz2 php7.2-zip 

php7.2-json php7.2-readline

 

을 설치해 주었습니다.

 

이 작업이 끝났다면 이제 Nginx 기본 웹사이트 구성 파일을 설정 하여 주어야합니다.

 

/etc/nginx/sites-available 로 들어가

 

vi default 

 

하시면 아래와 같은 소스가 나옵니다.

 

기존의 원본 파일을 아래와 같이 수정하여 주시면 됩니다. (주석해제 및 수정)

 

저는 나중에 쿼리스트리 사용을 위하여 $uri/ /index.php?$query_string 도 추가하여 주었습니다.

(try_files에)

 

server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm;
server_name _;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
}

 

이후 #nginx -t 를 입력하여 구성파일에 문제가 없는지를 확인하여 줍니다

 

입력시 

 

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

 

이 나온다면 오류가 없는 것입니다.

 

이제 제대로 설정이 되었는지 확인을 위해

/var/www/html에 들어가서 

test.php를 만들어 줍시다.

 

vi test.php 를 하여 <?php phpinfo(); ?>를 입력한 후 저장하여 줍니다.

 

확인을 위하여 ip주소/test.php를 주소창에 입력하여 봅시다.

 

위와 같이 php 정보 페이지가 나와야지 정상적으로 설정 된 것입니다..~!

1. DNS란?

 - 사람들은 각각을 구분해주는 예를들면 주민등록번호 같은 것 들이 있다 

 - IP address와 name을 binding

 - IP address를 직접 다루는 건 어렵기 때문에 다루기 쉽게 name으로 변환

 

2. Domain Name System

 - distributed database

 - application-layer protocol 이다.

 (core internet function 이지만 5계층 application-layer에 구현되어 있다.)

 

3. DNS services

 - 1. hostname to IP address translation

 - 2. host aliasing

 - 3. mail server aliasing

 - 4. load distribution (traffic을 분산시킨다.)

 

4. why not centralize DNS?

 (centralized DNS라면 )

 - single point of failure (그 서버하나가 죽으면 끝이다 이럴경우)

 - traffic volume (traffic이 몰림)

 - distant centralized database (먼 곳에서는 속도가 저하)

 - maintenance (유지보수가 어려움)

 - doesn't scale ! (확장성이 낮다)

 

5. a distributed, hierarchical database (관리가 편하다나는 장점)

6. DNS : root name servers

 - local name server에 접근해보고 없을 경우 root name server로 올라간다.

 - 전 세계적으로 13개의 root name servers가 있다.

 - 우리랑 가까운 지역의 root name server는 도쿄에 있다.

 

7. Local DNS name server

 - doesn't not strictly belong to hierarchy

 - " default name server"라고도 불리운다

 - 일단 여기서 찾아보고 없을경우 top level로 간다.

 - proxy server가 하는 역할과 비슷하다.

 

8. local DNS - root DNS

 - iterated query 방식 (local DNS에 로드가 많이 걸린다.)

 - recursive query 방식 ( like stack )

'학부생 공부 > 네트워크' 카테고리의 다른 글

OSI 7계층  (0) 2021.05.29
TCP(전송 제어 프로토콜) / IP(인터넷 프로토콜)  (0) 2021.05.28
SMTP (E-mail)  (0) 2020.04.12
FTP  (0) 2020.04.12
Web and HTTP  (0) 2020.04.06

1. FTP 란?

 - the file transfer protocol

 - 원격의 호스트들끼리 파일을 주고 받을 때 사용하는 protocol

 - client / server 모델

 - RFC 959로 정의된다.

 - 주로 port 21번 사용

 

 

2. 특징

 - FTP client는 port 21번을 통해 FTP server와 contact

 - (using TCP)

 - server가 file transfer command 를 받으면, server는 2nd data connection 을 한다 (client 에게) 

 - 즉 2channel 통신이다.

 - "out of band"

 - ---> 데이터를 주고받는 band 외의 다른 band에서 control 정보를 주고 받는다.

 - "state" - (current directory, earlier authentication)

 

'학부생 공부 > 네트워크' 카테고리의 다른 글

DNS (domain name system)  (0) 2020.04.13
SMTP (E-mail)  (0) 2020.04.12
Web and HTTP  (0) 2020.04.06
TCP, UDP  (0) 2020.04.06
Application Layer  (0) 2020.04.04

 

** Web

 - web page는 여러가지의 objects 들로 구성되어 있다.

    ( HTML, JPEG, Java applet, audio file ..... )

 - 각 objects 들은 URL로 지정된다 

    ( Host name + path name ) --> (www.xxxxxxx.edu + / something/pic.jpg )

 

** Web's application layer protocol

 - client - server model

  --> client : 서버로 부터 요청과 수신을 하여 web objects를 보여준다 (display)

  --> server : HTTP protocol 을 사용하여 objects 요청을 받아 보내준다.

 

 ** TCP

  --> 먼저 클라이언트가 TCP connection을 시작한다.

  --> 서버가 클라이언트로 부터 TCP connection을 수락하고

  --> 서버와 클라이언트가 메시지를 주고 받는다.

  --> 끝나면 close로 연결을 끝는다.

 

 ** HTTP

 - 텍스트 기반의 통신 규약으로 인터넷에서 데이터를 주고받을 수 있는 프로토콜이다. 이렇게 규약을 정해두었기 때문에 모든 프로그

   램 이 이 규약에 맞춰 개발해서 서로 정보를 교환할 수 있게 되었다.

 - HTTP는 상태를 저장하지 않는다 ( stateless )

 - HTTP connection 에는 매번 connection 을 만들어서 주고 받는 non-persistent HTTP 방식이 있고

                                 한번 connection 을 만들어서 여러개의 objects를 주고 받는 persistent HTTP 방식이 있다.

 - non-persistent의 경우 추가적으로 사용해야 하는 (메시지 전송과 수신을 위해) overhead가 상대적으로 더 크다.

 - 그렇다고 반드시 non-persistent방식이 좋은 것은 아니다. 

    -->  non-persistent를 사용하는데 한번에 여러개의 연결을 parallel하게 맺어 여러데이터를 한번에 보내기도 한다.

 

 ** cookies

  - HTTP는 stateless 인데 cookies 를 사용하면 stateful하게 가능하다

  - 보통 많은 웹은

    1. cookie header line of HTTP response message

    2. cookie header line in next HTTP request message

    3. cookie file kept on user's host, managed by user's browser

    4. back-end database at Web site

  - 4가지 기능을 위하여 쿠키를 사용한다.

  - 예 ) ID,PW 인증, 장바구니 등등

  - 장점 : 좀 더 편리하게 Web browsing 을 하게끔 도와준다.

  - 단점: privacy 문제가 발생 할 수 있다.

 

 ** Web caches (proxy server)

  - 자주 사용하는 정보의 경우 메인서버 까지 가지 않고

    proxy server를 두어 그쪽에서 저장해둔 정보를 빼오는 방법이다.

    (locality 적 특성을 가진다. )

  - 클라이언트 - 서버간의 통신속도를 증가시키는 것 보다 훨씬 저렴하다 (cheap!)

'학부생 공부 > 네트워크' 카테고리의 다른 글

SMTP (E-mail)  (0) 2020.04.12
FTP  (0) 2020.04.12
TCP, UDP  (0) 2020.04.06
Application Layer  (0) 2020.04.04
Internet structure  (0) 2020.03.26

 

 

 ** Layer 계층 

 -- 5계층 : Application Layer

 -- 4계층 : Transport Layer

 -- 3계층 : Network Layer

 -- 2계층 : Linked Layer

 -- 1계층 : Physical Layer

 

 ** applications  의 가능한 구조들

 -- client, server

 -- peer-to-peer(P2P)

 

 ** Client - server architecture

 -- server : 항상 켜져 있어야 한다.

               IP가 일정해야 한다. (변동이 없는)

               확장이 가능 해야 한다

 -- clients : 서버와 통신

               간헐적(즉, 항상 켜져있지 않아도 된다.)

               dynamic IP adresses

               peer to peer 간의 서로 직접적인 연결은 되지 않는다.

               (서버로 가서 db를 뒤져서 친구의 ip주소를 찾고 연결하는 방식은 가능)

 

 ** P2P architecture

 - 항상 켜져있는 서버가 필요 없다.

 - 직접적 통신이 가능

 - self scalability (서로가 스스로 확장하게 되는 구조)

 - 항상 연결 되어 있는 것이 아니므로 ip가 바뀐다 (dynamic)

 - complex management

 

**Processes communicating

 - 한 호스트 안에 있는 프로세스들은 IPC(inter-process-communication)을 통해 주고 받는다

 - 다른 호스트 사이에서는 messages를 교환 

 - 하나의 device가 (client, server) 두가지 역할을 모두 수행하는 것이 P2P architecture

 

** Sockets

 - 프로세스들은 소켓을 통해 메시지를 주고 받는다.( 마치 문 같은....) 

 - 소켓을 통해 나가 infrastructure을 통하여 통신

 

** Addressing processes

 - messages를 받기 위해서는 프로세스는 identifier를 반드시 가지고 있어야 한다.

 - host device는 IPv4의 경우 32bit IP address를 가지고 있다 (unique)

 - 하지만 스마트폰이나 컴퓨터에서 하나의 프로세스만 실행하지는 않는다.

     --> 즉 ip address만으로는 부족하다.

 - 따라서 ip address + port numbers + protocol network flow를 정의 한다.

 - 이 flow는 같은 sender와 reciever 사이에서 여러개가 정의 가능하다.

 

 ** application이 요구하는 것

 - 각 어플리케이션 별로 요구사항이 다를 수 있다. (다양)

 - 예를 들면, 영상을 다운받을 때는 너무 느리면 안되겠지만 그렇다고 처리속도(throughput)에 그렇게 예민하지는 않다

 - 게임 같은 경우에는 data loss에는 덜 민감해도 time sensitive는 매우 중요하다.

     1. data integrity(데이터 무결성) 

     2. timing

     3. throughput

     4. security

     5. ......

'학부생 공부 > 네트워크' 카테고리의 다른 글

Web and HTTP  (0) 2020.04.06
TCP, UDP  (0) 2020.04.06
Internet structure  (0) 2020.03.26
Network Core  (0) 2020.03.25
인터넷(Internet) 이란 ?  (0) 2020.03.22

+ Recent posts