반응형
반응형

서버를 사용하는 이유

Local 서버란 내 컴퓨터 프로젝트의 서버환경으로 내 컴퓨터에서만 돌아간다. 내가 만든 웹 사이트에 다른 사람들도 접근할 수 있도록 하기 위해서는 서버 호스팅(다른 서버를 빌리는 작업)이 필요하다.

 

AWS EC2

서버 호스팅으로 AWS(Amazon Web Servers)를 사용한다.

EC2(Elastic Compute Cloud)란 쉽게 생각해서 한대의 컴퓨터를 임대해주는 것이라고 생각하면 된다.

여기에 자신이 선호하는 OS를 설치하고, 웹 서비스를 위한 프로그램(웹서버, DB...)을 설치한다.

AWS(Amazon Web Services)에서는 인터넷을 통해 접속할 수 있는 URL(Public DNS)를 제공하는데, 

이 URL을 통해 웹 서비스를 하거나, 자신이 구입한 도메인을 붙여서 서비스 할 수 있다.

 

AWS EC2 인스턴스 생성 = 가상 컴퓨팅 환경을 만든다.

(서버를 켜고 끄는 것이 인스턴스를 실행하고 종료하는 것을 의미)

  1. 인스턴스 시작
  2. AMI(Amazon Machine Image) 선택 : AWS에서 제공하는 이미지로 운영체제를 선택한다. ex) Ubuntu Server 16.04
  3. 키 페어(key pair) 선택 / 생성 : SSH 터미널로 인스턴스 접근 시 필요한 파일로 외부에 노출되면 안된다.
    • 새 키 페어 생성 -> 키 페어 다운로드(.pem)
    • AWS EC2 접속을 위해 PUTTY에 접속해야된다. 접속 할 때 인증을 위해 Private Key 파일을 넣는데 .pem 파일을 .ppk로 변환해주어야 한다. PUTTYGEN(Putty Key Generator) 사용한다.
    • Putty 접속 시
      • Host Name(Public DNS)
      • Connection > SSH > Auth : .ppk 파일 선택
      • login as : ubuntu
  4. 보안 그룹 구성(방화벽 설정) : HTTP(80), HTTPS(443) 포트 열어주기

https://jungeun960.tistory.com/33?category=393541

 

AWS EC2(Ubuntu) 인스턴스 생성하기

1. EC2 서버 구축 AWS Console에서 EC2 인스턴스를 생성을 위해 '인스턴스 시작'을 누릅니다. Ubuntu Server를 선택합니다. 확인 누르고 이제 새로운 창이 나옵니다. '새 키 페어 생성' 누르신 후, 키 페어 ��

jungeun960.tistory.com

 

phpstorm AWS 연동하기

 내 컴퓨터에서 작업한 파일을 서버로 바로바로 업로드 하기 위해서 서버와 FTP(File Transfer Protocol)/SFTP(Secure File Transfer Protocol) 를 통해 파일을 업로드 한다. 원격 서버 연결과 배포가 가능하다. 

  • FTP(File Transfer Protocol) : 파일을 전송하는 통신 규약 (기본 포트 21), 서버에서 서비스를 열면 클라이언트에서 접속을 해서 데이터(파일)을 가져가거나 업로드 함. 보안이 좋지 않아 실무에서 사용하지 않는다.
  • SFTP(Secure File Transfer Protocol) : ssh 방식을 이용하여 안전하게 암호화된 구간에서 ftp 기능을 이용하는 것 (기본 포트 22)
    • SSH(Sucure Shell Protocol) : 네트워크 프로토콜 중 하나로 컴퓨터와 컴퓨터가 인터넷과 같은 Public Network를 통해 서로 통신을 할 때 보안적으로 안전하게 통신을 하기 위해 사용하는 프로토콜이다.
      1. 데이터 전송 ex) 소스 코드 원격 저장소 Github
      2. 원격 제어 ex) aws의 인스턴스 서버에 접속하여 해당 머신에 명령을 내리기 위해서 SSH를 통한 접속을 해야한다.

https://jungeun960.tistory.com/41

 

Phpstorm AWS 연동하기(Remote Control)

phpstorm을 키고 새 프로젝트를 만든다. phpstorm에서 만든 작업물들을 AWS에 설치된 내 서버에 올려야 한다. Tools -> Deployment -> Configuration... 클릭 왼쪽 상단에 + 버튼을 눌러 아무 이름으로 정해준다..

jungeun960.tistory.com

 

AWS 서버에 도메인 붙이기

AWS에서 인터넷을 통해 접속할 수 있는 URL(Public DNS)를 제공하는데, 이 URL을 통해 웹 서비스를 하거나, 자신이 구입한 도메인을 붙여서 서비스 할 수 있다.

  • 도메인(domain)이란 각 ip에 이름을 부여한 것. ex) www.naver.com
  1. 무료 도메인 만들기 - freenom ( https://www.freenom.com/en/index.html?lang=en )
  2. AWS 외부 도메인 연결하기 - AWS Route53 이용 

 

서버 HTTPS로 설정하기

 HTTP(Hypertext Transfer Protocol)는 서로 다른 시스템들 사이에서 통신을 주고받게 해주는 가장 기초적인 프로토콜입니다. HTTP 프로토콜의 문제점은 서버에서부터 브라우저로 전송되는 정보가 암호화되지 않는다는 것이다. 이 말은 데이터가 쉽게 도난당할 수 있다는 것이다.

이에 반해 HTTPS(Hypertext Transfer Protocol Secure) 프로토콜은 SSL(보안 소켓 계층)을 사용함으로써 이 문제를 해결했다. SSL은 서버와 브라우저 사이에 안전하게 암호화된 연결을 만들 수 있게 도와주고, 서버 브라우저가 민감한 정보를 주고 받을 때 이것이 도난당하는 것을 막아준다.

  • Let's Encrypt로 SSL 인증서를 발급받는다.
  • 전제 조건 : 인증서를 사용하려는 등록된 도메인 이름을 소유하고 있어야한다.

- Let 's Encrypt는 무료 TLS / SSL 인증서를 쉽게 얻고 설치하여 웹 서버에서 암호화 된 HTTPS를 사용할 수있는 새로운 인증 기관 (CA)입니다. 필요한 단계 대부분을 자동화하려고 시도하는 소프트웨어 클라이언트 인 Certbot을 제공하여 프로세스를 단순화합니다. 

https://jungeun960.tistory.com/38?category=393541

 

[Let 's Encrypt ] Let 's Encrypt 를 사용하여 Nginx https 설정하기(Ubuntu)

환경 - Utuntu - Nginx - aws 전제 조건 - 인증서를 사용하려는 등록 된 도메인 이름을 소유하거나 제어해야합니다.  1. 무료 도메인 발급하기 : freenom ( https://www.freenom.com/en/index.html?lang=en ) ht..

jungeun960.tistory.com

 

반응형

phpstorm을 키고 새 프로젝트를 만든다.

phpstorm에서 만든 작업물들을 AWS에 설치된 내 서버에 올려야 한다.

Tools -> Deployment -> Configuration... 클릭

왼쪽 상단에 + 버튼을 눌러 아무 이름으로 정해준다.

Type은 AWS 인스턴스를 생성할 때, pem키를 발급 받았으면 SFTP로 설정해준다.

- SFTP host: 자신의 AWS 아이피

- Private key file: 옆에 …버튼을 눌러 자신의 pem키를 설정한다.

 

이후, Test SFTP connection... 버튼을 눌러 Success 되는지 확인한다.

Mappings 탭으로 가서 Deployment path on server '이름' : 부분을 / 로 설정한다.

(이거 안하면 Tools -> Deployment -> Upload 가 활성화 되지 않는다. )

OK버튼을 누르면 끝.

 

Tip1.

Tool > Deployment > Option

On explicit save action (Ctrl+S) 를 선택하여 Ctrl+S를 눌렀을 때 변경된 내용을 자동으로 원격 전송하도록 한다.

 

Tip2.

서버 폴더를 보고 싶을 때 ( Remote Host 메뉴 )

- Tools -> Deployment-> Browse Remite Host 

반응형

 

Let 's Encrypt 전제 :

인증서를 사용하려는 등록 된 도메인 이름을 소유하거나 제어해야합니다.

( 처음에 도메인 생성도 안하고 인증서 발급받으려고 삽질함. )

1. 

To fix these errors, please make sure that your domain name was
entered correctly and the DNS A/AAAA record(s) for that domain
contain(s) the right IP address.

-> 이미 사용중인 도메인인지 확인해볼 것.

 

2.

Detail: DNS problem: NXDOMAIN looking up A for www.example.com -
check that a DNS record exists for this domain

-> 도메인이 잘 생성되었는지 확인 할 것

 

3. 

Detail : DNS problem: query timed out looking up A for example.com
Detail : No valid IP addresses found for example.com

.-> 도메인과 aws 연결을 시켰는지 확인할 것

 

반응형

환경

- Utuntu

- Nginx

- aws 

 

전제 조건

- 인증서를 사용하려는 등록 된 도메인 이름을 소유하거나 제어해야합니다. 

 1. 무료 도메인 발급하기 : freenom ( https://www.freenom.com/en/index.html?lang=en )

https://coyagi.tistory.com/entry/%EB%AC%B4%EB%A3%8C-%EB%8F%84%EB%A9%94%EC%9D%B8-%EA%B0%84%EB%8B%A8%ED%95%9C-%EB%8F%84%EB%A9%94%EC%9D%B8-%EB%B0%9C%EA%B8%89-freenom

 

[무료 도메인] 간단한 도메인 발급 (freenom)

간단한 도메인 발급 (freenom 활용) 도메인을 발급받을 수 있는 사이트는 매우 많다. 카페24, 가비아 등등.. 그중 무료 도메인발급이 가능하면서 사용자가 많은 freenom 을 사용해보자. [카페24] [가비아] 먼저..

coyagi.tistory.com

2. AWS 외부 도메인 연결 방법

http://makebct.net/aws-%EC%99%B8%EB%B6%80-%EB%8F%84%EB%A9%94%EC%9D%B8-%EC%97%B0%EA%B2%B0-%EB%B0%A9%EB%B2%95-1/?cat=989/

 

AWS 외부 도메인 연결 방법 | make BCT

외부 도메인을 AWS에 연결하는 방법을 알아 보겠습니다. 먼저, AWS에 로그인 합니다. 로그인 후, [AWS] 서비스 – 네트워킹 및 콘텐츠 전송 – Route 53 클릭 [Create Hosted Zone] 클릭 위 그림의 Domain Name에 본인 소유의 도메인을 입력하고 [Create] 클릭 Route 53이 도메인 이름을 기반으로 Hosted Zone을 생성합니다. Hosted Zone을 선택하고, [Go to Record] 클릭 레코드 중 N

makebct.net

 

1 단계-Certbot 설치

Let 's Encrypt를 사용하여 SSL 인증서를 얻는 첫 번째 단계는 certbot서버에 소프트웨어 를 설치하는 것입니다. 

먼저 저장소를 추가하십시오.

$ sudo add-apt-repository ppa:certbot/certbot

ENTER 수락 하려면을 (를) 눌러야 합니다. 그런 다음 패키지 목록을 업데이트하여 새 저장소의 패키지 정보를 선택하십시오.

$ sudo apt-get update

마지막으로 다음과 apt-get같이 Certbot을 설치하십시오 .

$ sudo apt-get install python-certbot-nginx

 

2 단계 — Nginx 설정

Certbot은 Nginx에 대해 SSL을 자동으로 구성 할 수 있지만 구성에서 올바른 server블록 을 찾을 수 있어야합니다 . server_name인증서를 요청하는 도메인과 일치 하는 지시문을 찾아서이를 수행 합니다. 새로 Nginx 설치를 시작하는 경우 기본 구성 파일을 업데이트 할 수 있습니다.

$ sudo nano /etc/nginx/sites-available/default

기존 server_name줄을 찾으십시오 .

# / etc / nginx / sites-available / default 파일
server_name example.com www.example.com;

도메인 이름을 작성하고 편집기를 종료하십시오. 

( a : 입력모드 전환 / 강제 저장 후 종료 : Esc 누른 후, :wq! )

다음을 사용하여 구성 편집 구문을 확인하십시오.

$ sudo nginx -t

오류없이 실행되면 Nginx를 다시로드하여 새 구성을로드하십시오.

$ sudo service nginx reload

Certbot은 이제 올바른 server블록 을 찾아 업데이트 할 수 있습니다. 이제 HTTPS 트래픽을 허용하도록 방화벽을 업데이트하겠습니다.

 

3 단계 — SSL 인증서 받기

Certbot은 다양한 플러그인을 통해 SSL 인증서를 얻는 다양한 방법을 제공합니다. Nginx 플러그인은 필요할 때마다 Nginx를 재구성하고 구성을 다시로드합니다.

$ sudo certbot --nginx -d example.com -d www.example.com

성공 certbot하면 HTTPS 설정을 구성 할 방법을 묻습니다.

2 번 선택을하고를 누르십시오 ENTER. 구성이 업데이트되고 Nginx가 새로 고침되어 새 설정을 가져옵니다. certbot프로세스가 성공하고 인증서가 저장된 위치를 알려주는 메시지로 마무리됩니다.

 

4 단계-Certbot 자동 갱신 확인

암호화하자 인증서는 90 일 동안 만 유효합니다. 이를 통해 사용자는 인증서 갱신 프로세스를 자동화 할 수 있습니다.

$ sudo certbot renew --dry-run

 

 

반응형

ftp-simple 플러그인 설치

Ctrl+Shift+X의 단축키를 입력하고, 상단 검색창에 ftp-simple 을 입력하면 플러그인이 뜬다.

install 버튼을 눌러 설치 해 주도록 하자.

 

ftp-simple Config 셋팅하기

F1을 누르고, ftp-simple: Config-FTP connection setting 라고 입력하면 setting 파일이 뜨게 된다.

remote(원격)서버에 ftp연결을 위한 sample코드가 있을것이다. 코드를 수정해 준다.

 

“name” 필드에는 내가 임의로 입력한 remote 서버의 이름을 지정해주자.

“host” 필드에는 EC2 instance의 ip주소를 입력해주자.

“port” 에는 ssh 연결인 22를 입력해주자. AWS EC2 instance의 security group에서 22번 포트를 열어놓아야 한다.

“username”에 AWS에 연결할 계정을 입력한다.

“privatekey”에는 .ppk파일의 경로를 입력해주면 된다. seperator는 윈도우(windows) 환경에서도 ’/’ 로 경로 구분을 해주면 된다.

-> 경로 주의 : 경로 구분 시 / 하나 말고 // 두개로 써야됨.

 

ftp-simple 에서 Workspace 오픈하기

 

F1을 누르고, Remote directory open to workspace를 선택한다.
아까 만들었던 설정파일에 적은 name명을 선택한다.
해당 서버를 선택하면 설정한 경로 및 하위경로를 탐색할 수 있게 나온다.
선택을 하면 remote(원격) 서버에서 다운받아오는 것을 확인할 수 있다.

 

+ 서버와의 연결 끊기

ftp-simple:Close all FTP connections 실행

 

참고:

https://gangnam-americano.tistory.com/26?category=976985

 

[VSC] Visual Studio Code에서 FTP로 remote(원격)서버 연동하기

[VSC] Visual Studio Code에서 FTP로 remote(원격)서버 연동하기 오늘은 Visual Studio Code로 Reactjs를 개발하는데 있어 remote서버에 FTP로 연동하여 바로 코딩하는 방법에 대해 알아보겠다. 우선, Visual Stu..

gangnam-americano.tistory.com

 

반응형

EC2에 접속해서 설치된 패키지 업그레이드를 합니다. 

sudo apt-get update

 

Nginx를 설치합니다.

sudo apt-get install nginx

 

설치가 완료되었으면 nginx를 실행하여 잘 실행되었는지 확인해 봅니다.

sudo service nginx start
sudo service nginx status

 

 

aws의 인스턴스의 IPv4 퍼블릭 IP로 브라우저에 들어가보면 

잘 설치된것을 확인할 수 있다.

참고

service nginx start // 시작
service nginx stop // 정지
service nginx restart // 재시작
service nginx reload // 설정파일을 재로드
service nginx status // 현재 상태

 

반응형

+ Recent posts