서버를 사용하는 이유
Local 서버란 내 컴퓨터 프로젝트의 서버환경으로 내 컴퓨터에서만 돌아간다. 내가 만든 웹 사이트에 다른 사람들도 접근할 수 있도록 하기 위해서는 서버 호스팅(다른 서버를 빌리는 작업)이 필요하다.
AWS EC2
서버 호스팅으로 AWS(Amazon Web Servers)를 사용한다.
EC2(Elastic Compute Cloud)란 쉽게 생각해서 한대의 컴퓨터를 임대해주는 것이라고 생각하면 된다.
여기에 자신이 선호하는 OS를 설치하고, 웹 서비스를 위한 프로그램(웹서버, DB...)을 설치한다.
AWS(Amazon Web Services)에서는 인터넷을 통해 접속할 수 있는 URL(Public DNS)를 제공하는데,
이 URL을 통해 웹 서비스를 하거나, 자신이 구입한 도메인을 붙여서 서비스 할 수 있다.
AWS EC2 인스턴스 생성 = 가상 컴퓨팅 환경을 만든다.
(서버를 켜고 끄는 것이 인스턴스를 실행하고 종료하는 것을 의미)
- 인스턴스 시작
- AMI(Amazon Machine Image) 선택 : AWS에서 제공하는 이미지로 운영체제를 선택한다. ex) Ubuntu Server 16.04
- 키 페어(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
- 보안 그룹 구성(방화벽 설정) : HTTP(80), HTTPS(443) 포트 열어주기
https://jungeun960.tistory.com/33?category=393541
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를 통해 서로 통신을 할 때 보안적으로 안전하게 통신을 하기 위해 사용하는 프로토콜이다.
- 데이터 전송 ex) 소스 코드 원격 저장소 Github
- 원격 제어 ex) aws의 인스턴스 서버에 접속하여 해당 머신에 명령을 내리기 위해서 SSH를 통한 접속을 해야한다.
- SSH(Sucure Shell Protocol) : 네트워크 프로토콜 중 하나로 컴퓨터와 컴퓨터가 인터넷과 같은 Public Network를 통해 서로 통신을 할 때 보안적으로 안전하게 통신을 하기 위해 사용하는 프로토콜이다.
https://jungeun960.tistory.com/41
AWS 서버에 도메인 붙이기
AWS에서 인터넷을 통해 접속할 수 있는 URL(Public DNS)를 제공하는데, 이 URL을 통해 웹 서비스를 하거나, 자신이 구입한 도메인을 붙여서 서비스 할 수 있다.
- 도메인(domain)이란 각 ip에 이름을 부여한 것. ex) www.naver.com
- 무료 도메인 만들기 - freenom ( https://www.freenom.com/en/index.html?lang=en )
- 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
'AWS' 카테고리의 다른 글
[AWS] RDS 원격 접속 (Mysql workbench) (0) | 2020.07.26 |
---|---|
AWS RDS 생성하기 (0) | 2020.07.22 |
Phpstorm 원격서버와 AWS sftp 연결 (0) | 2020.04.29 |
[Let 's Encrypt] The following errors were reported by the server: 에러 해결 (0) | 2020.04.26 |
[Let 's Encrypt ] Let 's Encrypt 를 사용하여 Nginx https 설정하기(Ubuntu) (0) | 2020.04.26 |