Skip to content

Latest commit

 

History

History
104 lines (95 loc) · 9.53 KB

TIL.md

File metadata and controls

104 lines (95 loc) · 9.53 KB

2024년 2월 14일

  1. 3-tier 아키텍처
    • 웹 개발에서 많이 사용되는 소프트웨어 설계 패턴 중 하나
    • 애플리케이션을 세 가지 계층으로 나누어 각 계층 간의 결합도를 최소화하는 것을 목표로 함
    • 프레젠테이션 계층(Presentation Layer)
      • 사용자 인터페이스와 관련된 로직이 포함
      • 웹 애플리케이션의 경우 HTML, CSS, JavaScript 등이 이 계층에 속함
    • 비즈니스 로직 계층(Business Logic Layer)
      • 애플리케이션의 핵심 기능을 담당하는 로직이 포함
      • 사용자의 요청을 처리하고, 데이터를 가공하며, 결과를 생성하는 등의 역할
    • 데이터 액세스 계층(Data Access Layer)
      • 데이터베이스와의 통신을 담당하며, 데이터를 저장하고 검색하는 로직이 포함
  2. CIDR
  3. Subnet
    • VPC(Virtual Private Cloud) 내에서 IP 주소를 더 작은 네트워크 세그먼트로 분할하는 방법. 즉, 전체 네트워크를 더 작은 네트워크 단위로 분할하는 방법을 가리킴.
    • 네트워크의 관리와 보안을 더 세분화하여 개선할 수 있음
    • 트래픽 흐름을 제어하고, 네트워크의 보안과 효율성을 높일 수 있음
    • 각 서브넷은 특정 리소스 그룹을 격리하고 관리하는 데 사용될 수 있음
    • 다른 서브넷과는 라우팅 규칙을 통해 통신할 수 있음
    • 서브넷 마스크: IP 주소의 어느 부분이 네트워크를, 어느 부분이 호스트를 나타내는지 결정. 예를 들어, 255.255.255.0은 첫 24비트가 네트워크를, 마지막 8비트가 호스트를 나타냄을 의미.
    • CIDR 표기법: CIDR 표기법은 IP 주소와 서브넷 마스크를 결합하여 네트워크를 표현하는 방법. 예를 들어, 192.168.1.0/24는 192.168.1.0 네트워크를 나타내며, /24는 서브넷 마스크가 255.255.255.0임을 의미
    • 서브넷은 특히 클라우드 컴퓨팅 환경에서 중요합니다. 예를 들어, AWS에서는 VPC 내에서 여러 서브넷을 생성할 수 있습니다. 이러한 서브넷은 AWS 리소스가 위치하는 가상 네트워크를 나타냄
    • 서브넷을 사용하면 네트워크를 논리적으로 분할하여 트래픽을 분리하고, 보안을 강화하며, 리소스를 효율적으로 배포할 수 있음. 예를 들어, 웹 서버를 공용 서브넷에 배치하고 데이터베이스를 사설 서브넷에 배치하여 네트워크 액세스를 제한할 수 있음.
  4. SSH로 VPC 접속하기
    • 공개 IP 주소 확보
      • 외부 네트워크에서 접속 가능하도록 공개 IP주소를 인스턴스에 할당
    • 보안 그룹 설정
      • 인바운드 규칙 추가: 인스턴스에 연결된 보안 그룹에 인바운드 규칙을 추가하여 SSH 접속에 사용되는 포트(일반적으로 22번)가 외부 트래픽에 대해 열려 있는지 확인. 특정 IP 주소 또는 IP 범위에서만 접근을 허용하는 것이 좋음
    • SSH 키 준비
      • 인스턴스 생성 시 사용한 SSH키(비공개 키)를 준비
    • SSH 클라이언트 사용
  5. 인바운드 규칙
    • 네트워크 보안의 일부로, 외부에서 특정 네트워크로 들어오는 트래픽을 제어하는 규칙
    • 이 규칙들은 네트워크에 들어오는 연결 요청이나 데이터 패킷이 특정 기준(포트 번호, 프로토콜, 출처IP주소)을 충족할 때만 허용되도록 설정
  6. 패킷 출발지
    • 네트워크 통신에서 데이터 패킷이 생성되고 처음 보내진 네트워크 주소를 의미
    • 일반적으로 데이터를 보내는 장치의 IP 주소로, 패킷 헤더에 포함되어 있음
    • 패킷이 어디서 왔는지를 식별하는 데 사용되며, 네트워크 경로를 통해 데이터가 목적지까지 전송되는 과정에서 중요한 역할을 함
    • '허용하고자 하는 IP 대역을 CIDR형식으로 입력'
      • 네트워크 보안 설정에서 특정 범위의 IP 주소로부터 오는 트래픽을 허용하도록 설정하는 방법
    • 0.0.0.0/0
      • CIDR 표기법에서 모든 IP 주소를 나타냄
      • 이는 네트워크의 어던 부분도 구분하지 않고, 인터넷상의 모든 주소를 포함하는 가장 넓은 범위를 의미
      • 일반적으로 특정 서비스를 공개적으로 사용할 수 있게 하고자 할 때 사용
      • 보안상의 위험이 있을 수 있으므로, 필요한 ㅕㅇ우에만 사용하고 가능한 한 더 제한적인 규칙을 설정하는 것이 좋음
        • 무제한 접근: 모든 IP 주소에서의 접속을 허용함으로써, 악의적인 사용자도 시스템이나 서비스에 접근할 수 있게 됨. 민감한 데이터의 노출, 시스템의 무단 변경 또는 삭제, 서비스 거부(DoS) 공격 등을 초래할 수 있음
    • 포트
      • 웹 서버는 HTTP는 포트 80, HTTPS는 포트 443을 사용함
  7. HTTPS 사용
    • SSL/TLS 인증서 획득
      • 인증 기관(CA)으로부터 구입하거나 Let's Encrypt와 같은 서비스를 통해 무료로 발급받을 수 있음
    • 웹 서버 구성
      • 웹 서버에 SSL/TLS 인증서를 설치하고 구성해야 함. 이 과정은 사용 중인 웹 서버 소프트웨어에 따라 다름. 인증서 설치 후, 서버는 HTTPS를 통해 안전한 연결을 제공할 수 있음
  8. VM(가상 머신)
    • 물리적 하드웨어 위에 가상화 기술을 사용하여 생성된 가상의 컴퓨터
    • 자체 운영 체제(OS)를 가지며, 물리적 서버의 리소스(CPU, 메모리, 스토리지 등)를 가상화하여 분할 사용함
    • 다양한 용도로 사용될 수 있으며, 각각의 VM은 독립적인 컴퓨팅 환경을 제공함
    • 개발, 테스팅, 프로덕션 환경을 분리하거나, 다양한 애플리케이션을 격리하여 실행하는 데 사용될 수 있음
    • 신속하게 배포, 확장, 관리할 수 있는 유연성을 제공
    • VM의 모든 인스턴스는 VPC ghksruddptj wprhdgka
    • AWS의 EC2
  9. VPC(가상 사설 클라우드)
    • 클라우드 환경 내에서 사용자가 정의한 가상 네트워크
    • 사용자는 VPC 내에서 자신만의 IP 주소 범위, 서브넷, 라우팅 테이블, 네트워크 게이트웨이 등을 설정하여, 마치 독립된 작은 클라우드처럼 관리할 수 있음
    • 클라우드 리소스(가상 머신, 데이터베이스, 스토리지 등)를 위한 격리된 네트워크 환경을 제공함. 이를 통해 보안성과 관리 편의성을 높이며, 다른 VPC 또는 인터넷과의 연결도 세밀하게 제어할 수 있음
    • 클라우드 리소스들 간의 네트워킹 및 보안 설정을 위한 기반이 되며, 기업이 클라우드에서 자신의 IT 인프라를 구축할 때 필수적인 요소
  10. RDP
    • 원격 데스크톱 프로토콜
    • 데스크톱 컴퓨터를 원격으로 사용하기 위한 프로토콜 또는 기술 표준
  11. Permission denied (publickey)
    • SSH를 사용하여 원격 서버에 접속하려 할 때 발생하는 에러
    • 원인
      • 공개 키 인증 설정: 서버가 공개 키 인증을 사용하도록 설정되어 있지만, 클라이언트가 유효한 공개/개인 키 쌍을 제공하지 않는 경우. 즉, 서버에 등록된 공개 키와 일치하는 개인 키가 클라이언트 시스템에 없거나 SSH 클라이언트가 해당 키를 사용하도록 구성되지 않음
      • ~/.ssh/authorized_keys 파일: 서버의 ~/.ssh/authorized_keys 파일에 클라이언트의 공개 키가 제대로 추가되지 않았거나, 파일 자체에 문제가 있을 수 있음. 예를 들어, 파일 권한이 너무 개방적이거나, 파일 형식이 잘못되었을 수 있음
      • SSH 클라이언트 구성: 클라이언트 측의 SSH 구성 파일(~/.ssh/config)이 올바르게 설정되지 않았을 수 있음. 예를 들어, 사용하려는 키 파일의 경로가 잘못 지정되었거나, 해당 서버에 대한 구체적인 구성이 없을 수 있음
    • 해결책
      • 사용하려는 키 파일의 경로가 잘못 지정되었는지 확인
        • 명령 줄에서 SSH 클라이언트를 구성할 때 사용하는 명령어 옵션과 설정 파일을 검토
        • 명령어 옵션을 사용하여 키 파일 지정: SSH를 사용할 때 -i 옵션을 사용하여 개인 키의 경로를 직접 지정할 수 있습
        • 키 파일의 존재와 권한 확인: 키 파일은 일반적으로 사용자만 읽고 쓸 수 있도록 설정되어야 함.
  12. 키파일
    • PEM
    • PPK
  13. VPC IP CIDR 블록
    • 일반적인 IP 주소: 인터넷에 연결된 각 장치를 고유하게 식별하는 주소. 각 IP 주소는 특정 네트워크에 있는 특정 장치를 가리키며, 이 주소를 통해 데이터가 올바른 위치로 전송됨.
    • VPC의 IP CIDR 블록: AWS와 같은 클라우드 환경에서 사설 네트워크를 정의하고 관리하는데 사용되는 IP 주소 범위. 이 범위 안의 IP 주소들은 해당 VPC 내에서만 유효하며, 인터넷에서 직접 액세스할 수 없음.
  14. Bastion Host
    • 침입 차단 소프트웨어가 설치되어 내부와 외부 네트워크 사이에서 일종의 게이트 역할을 수행하는 호스트

ssh [email protected] -p 22

인스턴스 그룹 이름: kubook-db 사용자 이름: kubook cyglILLptTNhHZHY