AWS EC2 기초

LeeKyoungChang·2022년 4월 20일
0
post-thumbnail

메타코딩 유튜브를 참고하여 정리한 내용입니다.

devOps : 소프트웨어의 개발과 운영의 합성어로서, 소프트웨어 개발자와 정보기술 전문가 간의 소통, 협업 및 통합을 강조하는 개발 환경이나 문화를 말한다.

 

✔️ 학습 목표(AWS)

  • 클라우드 서비스를 활용하기 위해 기본지식을 학습한다. : AWS, Linux, Network
  • 클라우드 서비스에 내 프로젝트를 단순 배포하기 위해 환경을 구축한다. : EC2(노가다)
    • Iaas : 인프라 - 물리적 컴퓨터
  • 클라우드 서비스에 내 프로젝트 배포를 간편하게 한다. : ShellScript (효율)
  • 클라우드 서비스에 환경 구축 없이 내 프로젝트를 배포한다. : Elastic BeanStalk
    • Paas : 플랫폼 - 물리적 컴퓨터(플랫폼)을 제공한다.
    • Paas를 사용시 환경 구축 없이 배포를 할 수 있다.
  • 클라우드 서비스에 배포 자동화를 구축해본다. CI/CD
    • Github Action
  • 클라우드 서비스에 무중단 배포를 해본다. : 로드 밸런서, 롤링 배포
  • 정적 IP 할당을 위해 Network Load Balancer를 활용한다.

 

스크린샷 2022-04-18 오전 10 58 17

사용자의 요구에 따라 필요한 인프라 구축될 경우
사용자가 많아질수록 서버가 증가, 적어지면 서버가 감소

➡️ 온디맨드(demand : 요구)

 

✔️ 전산실 구축시 고려사항
1. 토지 - Premise, on Premise, off Premise(원격, 클라우드 시스템)
2. 건물
3. 하드웨어 장비 - 서버, 침입 방지, 차단 시스템, 로드밸런서, 각종 네트워크 장비
4. 에어컨 - 온도 유지, 서버 : 데몬 (열 : 반도체)
5. 전기
6. 복잡한 케이블 정리
7. 소방 시설 - 이중화
8. 전산실 보안 - 인건비

➡️ 추가적인 비용이 많이 든다.

 

📚 1. AWS 탄생

제프 베이조스

  • 아마존 창립자
  • 2021년 기준 세계 부자 수누이 2위
  • 프리스턴 대학 컴퓨터 공학과 졸업
  • 뱅커스 트러스트 최연소 부사장 (26세)
  • 1994년 인터넷 서점, 아마존 닷컴 창립 (주변 지인에게 200만 달러 투자 받음)
  • 종합 쇼핑몰로 변신
스크린샷 2022-04-18 오후 12 10 28

세일 기간 = 블랙프라이데이

  • 클라우드 컴퓨터 : 놀고 있는 컴퓨터 12대를 외부에 서비스하는 것

개인이 세일 기간에 올라온 서비스를 임대해서 사용할 수 있다.
개인(Iaas)입장에서는 off premise (빌려쓰게 된다.) ➡️ 전세계에 서비스 하며 빌려서 쓰는 것을 AWS

 

📚 2. IP주소, 패킷, 포트번호 이해하기

IP, Packet, Port

(1) 서킷 스위칭 : 선이 늘어나야 한다.

스크린샷 2022-04-19 오전 10 40 34

 

(2) 패킷 스위칭 : 비용이 적게 든다.
스크린샷 2022-04-19 오전 10 53 08

  • 이 방식을 많이 사용한다.
  • 라우터는 포워딩을 해준다.

 

✔️ IPv4 방식
IPv4 : 0.0.0.0 (255.255.255.255)

IPv홀수 : 테스트 용

IP 주소 : 10.1.5.7
데이터 : 안녕

➡️ 10.1.5.7:port번호?안녕

 

✔️ A → 라우터 → B로 데이터를 보낼 때
패킷 → 헤더(데이터 설명) → 포트번호와 IP주소

  • 패킷 : 안녕, (안과 녕으로 분리한다.)
  • 헤더 : 데이터 설명
  • 포트번호 : 최종 목적지에 도착했을 때 어느 프로그램을 선택할지 알아야 하기 때문에 포트번호도 필요하다.
  • IP주소 : 최종 목적지까지 도착하기 위해서 IP주소가 필요하다.

➡️ 데이터를 패킷으로 분할해서 데이터가 목적지까지 도착하는 것이다.

 

📚 3. EC2 서버와 방화벽

EC2 서버 : 빈 컴퓨터(인프라)를 제공(임대)받는다.

스크린샷 2022-04-19 오후 12 10 40
  • AWS에서 사이트 접속 : 우분투 운영체제 선택하여 컴퓨터를 임대한 것이다.
  • 인바운드 규칙 : 외부에서 내부로 접속
  • SSH : 22번 포트(원격으로 접속하기 위해서 22번 포트를 개방해주는 것이다.)
    • Secure Shell : 보안 쉘
  • 22번 port에서 접속했는데, 이는 보안 쉘로 접속한 것이다.
    • 보안 쉘로 접속한 것이면, aws가 들고 있는 컴퓨터에게 쉘 명령을 내릴 수 있다.
    • Secure Shell : 암호화 되어 전송된다.
  • 원격으로 Shell(CLI 환경) 명령이 가능하다.
    • CLI : Command Line Interface

 

✔️ OS 제어
스크린샷 2022-04-19 오전 11 36 49

  • OS에게 명령은 사람이 내려야 한다.
  • 사람은 OS에게 명령을 내리고, OS가 하드웨어를 제어한다.
  • 사람이 OS에게 명령을 내릴 때, 쉘을 사용한다.
  • 쉘을 공부하여, cd 폴더, mkdir, dir 명령어를 입력하여 실행할 수 있다.
  • SHELL : 사람이 OS에게 내리는 명령
  • OS는 shell 명령을 받아 번역하여 하드웨어를 제어한다.
  • 사람 입장에서는 직접적으로 하드웨어를 제어하지 않아 편안하다.

 

📌 정리

  • 서울 리전 컴퓨터 한 대를 임대 → 운영체제를 하나 선택해서 설치한 것이다. → 그 컴퓨터에 원격으로 접속하기 위해 22번 port를 인바운드 규칙에서 개방한 것이다. → 개방해서 OS, Shell 써서 원격으로 접속한다.
  • 원격으로 접속은 됬지만, 원격으로 보내는 명령어가 다른 사람에게 노출되지 않기 위해, Secure Shell을 사용한다.
  • 암호화가 되어 명령어가 전송 된다.

 

📚 4. RSA 인증방식

✔️ 비밀번호 암호화 방식

스크린샷 2022-04-20 오전 10 33 02
  • k(데이터) → k(데이터) : 대칭키 (열 때, 잠글 때 같은 것 사용), 열쇠 교환 힘들다.

 

✔️ RSA는 어떻게 만들어질까?
공개 키 기반 암호화 방식, key 두개를 만든다.

  • A 열쇠 → 잠금 → 풀 수 있다.
  • B 열쇠 → 풀 수 있다. → 잠금

➡️ 위와 관련된 대표적인 알고리즘 : RSA

 

데이터 암호화 : 상대방의 공개키로 잠근다.

스크린샷 2022-04-20 오전 10 45 45
  • 데이터를 누가 보냈는지도 중요하다.
  • B가 아무리 훔쳐도 B는 A의 비밀키를 들고 있지 않기 때문에, A 비밀키가 열리지 않는다.

 

스크린샷 2022-04-20 오전 10 49 40
데이터 전송 방법데이터 받는 방법
데이터를 수신자의 공개키로 잡는다.(암호화)데이터를 송신자의 공개키로 연다.(서명 검증)
그 데이터를 다시 송신자의 비밀키로 잠근다.(전자서명)열리면, 수신자의 개인키로 연다.(데이터 복호화)
전송한다.

 

대칭키 : A <-> B (키 전송에 문제가 있다.)
공개키 : A(공개키, 비밀키) <-> B(공개키, 비밀키) : 키 교환이 필요 없다.

 

✔️ ssh로 접속

  • Port 22번 접속하면, .ssh 폴더로 접근한다.
  • 공개키를 풀어본다. (전자서명으로부터 인증을 한다.)
    • Authorized-key : 공개키가 존재한다.
  • 인증함으로써 세션이 만들어진다.
  • 세션이 만들어질 시 서로 통신이 가능하다.

 

profile
"야, (오류 만났어?) 너두 (해결) 할 수 있어"

0개의 댓글