이 글은 서비스 배포를 위해 서버를 공부하며 알게 된 내용을 담고 있습니다.
1. EC2 (Elastic Compute Cloud)
"Amazon Elastic Compute Cloud(Amazon EC2)는 500개가 넘는 인스턴스, 그리고 최신 프로세서, 스토리지, 네트워킹, 운영 체제 및 구매 모델의 옵션과 함께 워크로드의 요구 사항에 가장 잘 부합할 수 있도록 가장 포괄적이고 심층적인 컴퓨팅 플랫폼을 제공합니다." (출처: Amazon EC2)
아마존은 가상 컴퓨팅 플랫폼을 '인스턴스' 단위로 제공한다.
CPU, 메모리, 스토리지 및 네트워킹 용량에 따라 인스턴스 유형이 다양하다.
❓ SSD와 HDD의 차이
SSD (Solid-State Drive)
- 파일에 액세스하는 속도가 빠름
- 앱을 가속
- 부팅 시간이 단축됨
- 충격에 강하다
- 전력 사용량이 적다
HDD (Hard-Disk Drive)
- 안에 동그란 디스크가 돌아감
- GB 당 가격이 저렴함 — 용량에 강점이 있음
- 움직이는 부품, 진동 및 높은 온도의 문제를 가짐
EC2 인스턴스는 SSH를 통해 키 페어 파일(.pem, .ppk)을 가지고 할 수 있다.
2. SSH (Secure Shell)
원격 호스트에 접속하기 위해 사용되는 보안 프로토콜
❓ 여기서 'shell' 이란?
운영 체제 상에서 다양한 운영 체제 기능과 서비스를 구현하는 인터페이스를 제공하는 프로그램.
사용자와 운영 체제의 내부 사이의 인터페이스를 감싸는 층이다. 커널과 사용자 간의 가교 역할을 하는 것으로, 사용자로부터 명령을 받아 그것을 해석하고 실행하는 역할을 한다. CLI 환경을 떠올리면 된다.
기존 원격 접속은 '텔넷(Telnet)'이라는 방식을 사용했는데, 암호화를 거치지 않아 데이터가 탈취당할 위험이 있었다. 이 과정을 암호화하는 게 SSH이고, 클라우드 서비스는 서버에 원격 접속 시에 이러한 SSH 보안 과정을 필수적으로 거치도록 하고 있다.
SSH의 여러 보안 방식 중 가장 대중적인 방식은 '키🔑'를 사용하는 것이다. 사용자와 서버가 각각 키를 가지고 있고, 키 페어 파일은 사용자에게 발급되는 키인 것이다. 암호화 방식은 '대칭키' 암호화와 '비대칭키(공개키)' 암호화 방식이 있다.
1) 대칭키 암호화
사용자와 서버가 하나의 키를 공유한다.
한쪽에서 공유된 대칭키로 정보를 암호화하면, 다른 쪽에서 대칭키로 암호화를 풀어서 정보를 받는 구조이다.
정보 교환 후에는 대칭키가 폐기되고, 연결할 때마다 새로운 대칭키를 발급받게 된다.
2) 비대칭키(공개키) 암호화
서버의 공개키(.pub)와 사용자의 개인키(.pem)로 키 페어가 생성된다.
(1) 사용자가 키 페어를 생성하고, 공개키를 서버에 보낸다. (공개키는 공개되어도 된다)
(2) 받은 공개키로 랜덤값을 생성하여 사용자에게 보낸다.
(3) 사용자는 개인키로 랜덤값을 풀이하여 결과값을 전송한다. 이는 공개키에 해당되는 개인키를 가진 사용자가 아니면 풀 수 없다. 개인키는 공개되어서는 안 된다.
(4) 서버는 처음에 낸 값과 사용자로부터 받은 값을 비교하여 사용자를 확인하고, 접속을 허용한다.
참고
'서버' 카테고리의 다른 글
Nginx에 대하여 (0) | 2022.03.29 |
---|---|
CI/CD (지속적 통합, 지속적 제공/배포) (Feat. Jenkins, Docker) (0) | 2022.03.25 |