no image
[AWS] DataBase
1. 활용 방법 1) EC2 인스턴스에 Database를 설치해서 사용 거의 모든 종류의 데이터베이스 사용 가능 관리 직업해야하므로 데이터베이스에 익숙해야 함 라이센스가 있는 데이터베이스 (Oracle이나 MySQL 등) 사용 시 주의! 2) AWS가 제공하는 관리형 데이터베이스 이용 데이터베이스에 제한이 있음 관계형 데이터베이스의 경우 Oracle, MySQL, Maria DB, Postgre SQL, MS SQL Server, IBM DB2만 사용 가능 Oracle과 MS SQL Server, DB2는 라이센스 비용이 같이 청구 No SQL 지원 Key - Value 데이터베이스 (Redis 호환) 와 Document DB (Mongo DB 호환) 지원 Dynamo DB는 아마존이 직접 만든 데이터베..
2024.04.18
AWS
[AWS] EC2 Service
1. 개요 - Amazon Elastic Compute Cloud의 약자 - 컴퓨팅 용량을 제공하는 서비스 - IaaS (Infrastructure as a Service) - 운영체제(AMI)가 설치된 컴퓨터를 임대해주는 서비스 서버를 만들고자 할 때 항상 켜져 있고 고정된 IP를 갖는 컴퓨터가 필요한 경우 사용 - Managed Service가 아니므로 네트워크나 컴퓨터 자체의 운영은 AWS가 담당하지만 나머지는 사용자가 결정 - 장점 클릭 몇번으로 서버 생성 생성과 삭제 편리 고장난 경우 자동 복구 부하 증가하면 같은 구성의 서버 복제하면 됨 - 단점 서버 한 대로 서비스가 가능하고 트래픽에 거의 변화가 없는 경우 비용이 부담될 수 있다. 2. 주요 구성 요소 - 인스턴스: 가상 서버 - AMI: ..
2024.04.18
AWS
[AWS] 개요
1. AWS (Amazon Web Service) - 시스템 운영에 관련된 다양한 서비스 제공하는 클라우드 기반 서비스 컴퓨팅, 스토리지, 데이터베이스, 분석 툴, 네트워크, 모바일, 개발자 도구 등 - 서비스 조합이 쉽다. - 요금이 종량제 사용한만큼 지불 특별한 경우 최소 요금이 설정되어 있다. 일반적으로 사용자의 트래픽이 수시 변경되는 경우라면 퍼블릭 클라우드가 유리하지만 일정한 트래픽이라면 On Premiss가 유리하다. 이런 경우는 고려할 사항 중 하나가 관리자의 인건비 - 사용이 쉽다. - 글로벌 확장이 쉽다. 현재 사용 가능한 Public Cloud 중 Region 과 AZ(가용 영역)이 가장 많음 한국에는 서울 리전이 있고 4개의 가용 영역 운영 중 - 보안 기준: ISMS (한국 정보보호..
2024.04.11
AWS

[AWS] DataBase

0ㅑ채
|2024. 4. 18. 21:18

1. 활용 방법

1) EC2 인스턴스에 Database를 설치해서 사용

  • 거의 모든 종류의 데이터베이스 사용 가능
  • 관리 직업해야하므로 데이터베이스에 익숙해야 함
  • 라이센스가 있는 데이터베이스 (Oracle이나 MySQL 등) 사용 시 주의!

 

2) AWS가 제공하는 관리형 데이터베이스 이용

  • 데이터베이스에 제한이 있음
    • 관계형 데이터베이스의 경우 Oracle, MySQL, Maria DB, Postgre SQL, MS SQL Server, IBM DB2만 사용 가능
    • Oracle과 MS SQL Server, DB2는 라이센스 비용이 같이 청구
  • No SQL 지원
    • Key - Value 데이터베이스 (Redis 호환) 와 Document DB (Mongo DB 호환) 지원
    • Dynamo DB는 아마존이 직접 만든 데이터베이스

 

 

 

2. 저장소 종류

1) RDBMS

  • Amazon Aurora
  • Amazon RDS
    • Oracle, MySQL, Maria DB, Postgre SQL, IBM DB2
  •  Amazon Redshift

 

2) Key-Value Database

  • Amazon DynamoDB
  • 높은 트래픽의 Web Applicatoin에 추천

 

3) In-Memory DB

  • ElsastiCache, Memory DB for Redis
  • Caching, 세션 관리, 게임 순위표, 자리 공간 애플리케이션 등에 추천

 

4) Document DB

  • Amazon의 Document DB - MongoDB 호환
  • 콘텐츠 관리, 카탈로그, 사용자 프로필 등 읽기 전용 애플리케이션에 추천

 

5) Wide Column DB

  • Amazon의 Keyspaces
  • 장비관리나 경로 최적화 등에 추천

 

6) Graph DB

  • Amazon의 Neptune
  • 부정 탐지, 소셜 네트워킹, 추천 엔진 등에 추천

 

7) Time Series

  • Amazon Timestream
  • IoT Application, DevOps, 산업용 텔레메트리 등에 추천

 

8) Ledger

  • QLDB: Amazon Ledger Database Service
  • 레코드 시스템, 공급망 관리, 은행 거래, 블록체인 등에 추천

 

9) S3와 같은 파일 저장소

 

 

 

3. Amazon RDS

  • Amazon에서 제공하는 관계형 데이터베이스 서비스
  • 장점: Managed Service, 관리나 업데이트를 직접 할 필요가 없음
  • 단점: 종류나 버전이 한정

 

1) 종류

  • MySQL: 현재까지 가장 많이 사용된 관계형 데이터베이스
  • Maria DB: MySQL의 fork
  • Oracle: 대기업에서 많이 사용되는 가장 안정적인 RDBMS
    • 금융이나 대기업이 주로 사용
    • 라이센스 비용 추가됨. 사용하려면 컴퓨터에 Oracle 설치하고 포트포워딩 이용해서 사용
  • MS SQL Server: 중소규모 기업에서 많이 사용하는 데이터베이스, 유료
    • 우리나라 게임 회사들은 MS SQL Server에서 MySQL이나 Maria DB 또는 Postgre SQL로 많이 이전
  • IBM DB2: 예전에 금융에서 많이 사용
  • Aurora MySQL, Aurora Postgre SQL: Amazon에서 코드를 수정해서 제공하는 RDBMS, 견고하고 성능이 뛰어남 
  •  

 

2) 외부에서 접속 가능한 RDS 서비스 생성

RDS 서비스 접속 > 데이터베이스 생성 클릭

표준 생성

엔진 옵션
템플릿 - 프리티어가 가장 저렴
사용자 이름과 비밀번호 생성



인스턴스 선택 (하드웨어 선택)
스토리지 선택 (저장 공간의 크기 선택)
EC2 인스턴스에 접근 가능 여부 설정

외부에서 접근 가능 여부 설정
추가 구성으로 처음 만들어지는 데이터베이스 생성

 

 

3) 외부에서 접속

  • RDS를 생성할 때 퍼블릭 엑세스가 가능하도록 생성을 하면 IPv4 주소가 주어지면서 End point가 만들어진다.
    • End Point: 외부에서 접속할 수 있는 URL이 됨 
  • 외부 접속이 되지 않는 경우
    • 보안 그룹에서 포트를 개방하지 않은 경우:
      보안 그룹을 확인해서 인바운드 규칙에 포트를 추가하고 0.0.0.0/0 으로 CIDR을 설정
    • 접속 정보가 잘못된 경우

 

4) MySQL의 파라미터 수정

- MySQL을 설치하면 설정 파일 수정해서 MySQL의 설정을 원하는 형태로 변경

- RDS는 직접 설치한 데이터베이스가 아니라서 환경 설정 파일을 직접 수정할 수 없음

- 파라미터 그룹을 만들어서 수정

- 수정 및 적용

RDS에서 파라미터 그룹을 클릭
파라미터 그룹 생성을 클릭  
파라미터 그룹 세부 정보 설정
> 데이터베이스 종류 선택
> 그룹 이름 과 설명을 작성
 
생성된 파라미터 그룹을 선택해서 파라미터를 수정  
편집 버튼을 클릭하고 원하는 파라미터 수정  
RDS의 데이터베이스를 선택  
수정 버튼을 누르고 추가 구성으로 가서 파라미터 그룹을 생성한 것으로 수정

 

RDS는 파라미터를 수정하면 재부팅을 해야 적용!!!

 

 

 

 

4. Mongo DB는 Document DB

1) 클러스터 생성

 

2) 클러스터를 클릭하면 접속 방법이 제공

- wget 명령은 linux 명령어라서 인증서를 받아올 수 없으므로 브라우저에 url을 직접 입력

  • global-bundle.pem 파일을 다운로드

- mongo shell에서 접속

  • mongosh --ssl --host docdb-2024-04-16-01-41-17.cluster-cesn3uejbkwe.ap-northeast-2.docdb.amazonaws.com:27017 --sslCAFile pem파일경로 --username 사용자계정 --password 사용자비밀번호

- 응용 프로그램에서 접속

  • mongodb://계정:비밀번호@docdb-2024-04-16-01-41-17.cluster-cesn3uejbkwe.ap-northeast-2.docdb.amazonaws.com:27017/?tls=true&tlsCAFile=pem파일경로&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false

- 파이썬이나 자바에서 사용하고자 하는 경우는 pem 파일의 경로가 절대로 변하면 안되기 때문에 s3 와 같은 저장소를 이용하거나 프로젝트 안에 포함

  • 프로젝트 안에 포함시키면 소스 코드를 다른 곳에 업로드하면 같이 업로드가 된다는 문제가 발생

 

 

 

 

5. 기본적인 CQRS 구현

- 읽기 서비스와 그 이외의 작업을 처리하는 서비스로 나눔

- 각 서비스는 별도의 데이터베이스를 사용

- 읽기 서비스는 NoSQL을 그 이외의 작업을 처리하는 서비스는 RDBMS를 사용하는 것을 권장

- 2개의 데이터베이스 동기화는 Kafka와 같은 Message Queue 프로그램을 이용해서 수행

 

 

 

 

 

 

 

 

 

 

'AWS' 카테고리의 다른 글

[AWS] EC2 Service  (1) 2024.04.18
[AWS] 개요  (0) 2024.04.11

[AWS] EC2 Service

0ㅑ채
|2024. 4. 18. 21:13

1. 개요

- Amazon Elastic Compute Cloud의 약자

- 컴퓨팅 용량을 제공하는 서비스 - IaaS (Infrastructure as a Service)

- 운영체제(AMI)가 설치된 컴퓨터를 임대해주는 서비스

  • 서버를 만들고자 할 때 항상 켜져 있고 고정된 IP를 갖는 컴퓨터가 필요한 경우 사용

- Managed Service가 아니므로 네트워크나 컴퓨터 자체의 운영은 AWS가 담당하지만 나머지는 사용자가 결정

- 장점

  • 클릭 몇번으로 서버 생성
  • 생성과 삭제 편리
    • 고장난 경우 자동 복구
    • 부하 증가하면 같은 구성의 서버 복제하면 됨

- 단점

  • 서버 한 대로 서비스가 가능하고 트래픽에 거의 변화가 없는 경우 비용이 부담될 수 있다.

 

 

2. 주요 구성 요소

- 인스턴스: 가상 서버

- AMI: 가상 이미지 - 운영체제 이미지

- Key Pair: 외부에서 SSH를 이용해서 접속할 때 사용하기 위한 인증을 위한 키

  • 최근에는 ID와 PW를 사용해서 로그인하지 않음

- EBS: 스토리지

- 보안그룹: 특정 포트에 접속할 수 있는 그룹을 설정하는 기능

- Elastic IP: 고정된 IPv4 주소

 

 

 

3. 접속 방법

- AWS 웹 서비스에 로그인을 해서 관리 콘솔에서 조작

- 외부에서 SSH를 이용해서 접속

 

 

 

4. 인스턴스 생성

- AWS의 EC2 서비스에 접속

 

1) 인스턴스를 생성하고자 하는 region 선택 

2) 인스턴스 시작을 클릭한 후 작업

- 이름 작성

- 운영체제(AMI) 선택

- 인스턴스(하드웨어) 유형 선택

- 외부에서 로그인을 하기 위한 키페어 생성 또는 선택

- 네트워크 설정에서 기본적으로 사용할 포트를 설정

  • 보안 그룹을 생성하거나 선택하고 기본 포트 중 SSH, HTTP, HTTPs 설정 가능
  • 22, 80, 443 - 나중에 변경 설정이 가능하지만 22번은 포트 개방을 하지 않으면 수정을 못함

- 스토리지 설정: 저장 공간에 대한 설정

- 고급 세부 정보나 요약 (컴퓨터 대수를 설정 가능)은 기본 옵션 사용

- 인스턴스 시작을 누르면 새로운 인스턴스가 생성

 

 

 

5. 인스턴스 접속

1) 관리 콘솔에서 접속

- EC2 대시보드에서 인스턴스 ID를 클릭

- 연결 버튼을 클릭하고 새로 나오는 화면에서 다시 연결을 클릭

 

2) SSH를 이용해서 외부에서 접속 

- key pair 파일 필요 (pem 파일),  ec2의 public IP(인스턴스 ID를 눌러서 확인 - 13.125.244.153)

- Mac은 SSH가 바로 사용 가능하지만 windows는 open SSH를 설치해야 한다. 

  • Windows 기능에 포함되어 있다.

터미널에서 ssh -i 키페어파일경로 AMI이름@publicIP

 ssh -i pem파일경로 이미지이름(ubuntu)@IP 나 DNS

 

 

 

6. Web Server 생성

1) 리눅스에 접속

 

2) 웹 서버 생성

- 패키지 정보 업데이트: sudo apt-get update

- apache2 패키지 설치: sudo apt-get install apache2 -y

- apache2 서비스 시작: sudo service apache2 start

- 서비스 확인: ps aux | grep apache2

 

3) 보안 그룹 설정

- EC2 서비스는 모든 포트를 차단한다.

  • 외부에서 접속하는 것을 허용하지 않는다.

- 보안 그룹에서 필요한 포트를 외부에 개방해줘야 한다. 

  • webserver는 http 프로토콜을 사용하고 기본 포트가 80번이다.

- 인스턴스 상세 정보 화면으로 이동

  • 보안 탭으로 이동해서 열려 있는 포트 확인
  • 편집을 하고자 하는 경우 상단의 보안 그룹 링크를 클릭
    • 인바운드는 외부에서 접속할 때 보안을 설정하는 것이고 아웃 바운드는 내부에서 외부로 나갈 대 보안을 설정하는 것
  • 인바운드 규칙 편집을 누르고

 

4) 다른 컴퓨터에서 웹 페이지 접속

http://공인IP

 

 

 

7. 인스턴스 중지 및 삭제

1) 인스턴스 중지

- 현재 EC2 컴퓨터를 끄는 것과 비슷한 효과

2) 인스턴스 종료

- 인스턴스 삭제

 

 

 

8. MySQL 서버

1) EC2 인스턴스에 접속

 

2) 설치

- sudo apt-get update

- sudp apt-get install mysql-server

- 버전 확인: mysql --version

- mysql 접속

  • sudo mysql -u root -p
  • (기본 비밀번호는 없거나 관리자 비밀번호 - ubuntu)

- MySQL에 접속해서 관리자 비밀번호 재설정

  • use mysql;

- 관리자는 로컬에서만 접속하게 하고 비밀번호 수정

  • alter user "root"@"localhost" identified with mysql_native_password by "wnddkd";

- 변경 내용 적용:

  • flush privileges;

- 외부 접속

  • 관리자 권한을 가진 설정 파일 변경: sudo su
    • 다른 계정으로 접속: sudo su 계정
  • MySQL 설정 파일 변경
    • cd /etc/mysql/mysql.conf.d 명령으로 프롬프트 이동
      vi mysqld.cnf 명령으로 파일 편집으로 이동
      • i를 눌러서 편집 모드로 전환한 후 bind-address = 0.0.0.0 으로 수정
      • esc를 눌러서 명령 모드로 전환한 후 :wq! 를 입력해서 저장하고 종료
  • 서비스 재시작
    service mysql restart

- 사용자 등록

  • mysql 관리자로 접속: mysql -u root -p
  • 데이터베이스 생성: create database 이름;
    create database adam;
  • 유저생성: create user 유저이름@'%'identified by '비밀번호';
    create user 'adam@%' identified by 'wnddkd';
    • @은 유저 이름과 %를 구분하기 위한 것, 0.0.0.0과 의미가 같다.
    • % 대신에 IP를 작성하면 그 IP를 가진 곳에서만 접속 가능
  • 권한 부여: grant all privileges on * 또는 데이터베이스 이름.* to 유저이름;
    grant all privileges on *.* to adam;
  • 변경 내용 적용: flush privileges;

 

3) 3306번 포트에 대한 인바운드 규칙 설정

- EC2 인스턴스 콘솔에 접속해서 보안 탭에서 보안 그룹 ID를 클릭해서 수정

  • 인바운드 규칙 편집을 눌러서 3306번 모든 IP가 접속 가능하도록 설정

 

4) 외부에서 접속 프로그램을 이용해서 접속

- DB HOST: EC2의 public IP

- Port: 3306

- DB NAME: itstudy

- USER: adam

- Password: wnddkd

 

 

 

4. Docker 설치

- Linux의 중앙 저장소에 도커 프로그램이 등록되어 있지 않아서 도커는 저장소를 리눅스에 등록하고 설치

  • 일부 프로그램은 도커처럼 키 등록을 하고 저장소를 등록한 후 패키지 정보를 업데이트 한 후 설치하기도 함

 

1) 저장소를 등록

- 패키지 덥데이트:

  • sudo apt-get update

- 키등록을 위한 패키지 설치

  • sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

- 키를 추가

- 저장소를 추가

 

2) 설치

- 패키지 업데이트

  • sudo apt-get update

- 설치

  • sudo apt-get install docker-ce docker-ce-cli containerd.io

- 버전 확인

  • sudo docker version

- 서비스 등록 및 실행

  • sudo systemctl enable docker
  • sudo systemctl start docker

 

3) 실행 확인

  • sudo docker run hello-world
  • sudo docker ps -a

'AWS' 카테고리의 다른 글

[AWS] DataBase  (1) 2024.04.18
[AWS] 개요  (0) 2024.04.11

[AWS] 개요

0ㅑ채
|2024. 4. 11. 17:35

1. AWS (Amazon Web Service)

- 시스템 운영에 관련된 다양한 서비스 제공하는 클라우드 기반 서비스

  • 컴퓨팅, 스토리지, 데이터베이스, 분석 툴, 네트워크, 모바일, 개발자 도구 등

- 서비스 조합이 쉽다.

- 요금이 종량제

  • 사용한만큼 지불
  • 특별한 경우 최소 요금이 설정되어 있다.
    일반적으로 사용자의 트래픽이 수시 변경되는 경우라면 퍼블릭 클라우드가 유리하지만
    일정한 트래픽이라면 On Premiss가 유리하다. 이런 경우는 고려할 사항 중 하나가 관리자의 인건비

- 사용이 쉽다.

- 글로벌 확장이 쉽다.

  • 현재 사용 가능한 Public Cloud 중 Region 과 AZ(가용 영역)이 가장 많음
  • 한국에는 서울 리전이 있고 4개의 가용 영역 운영 중

- 보안 기준: ISMS (한국 정보보호 관리체계) 인증 취득

 

 

 

2. 제공되는 서비스

- 165개 이상의 서비스 제공

- 목적에 따라 다양한 서비스

  • 서버 전체 및 관리에 필요한 기능을 제공
  • 분석 시스템
  • 가상 데스크톱
  • 머신 러닝 과 인공 지능, 블록체인 서비스도 제공

 

 

- 대표적 서비스

  • EC2: 컴퓨터(서버 - 24시간 서비스가 가능해야 하고 고정된 IP를 가져야 함)를 빌려주는 개념
  • S3: 파일 스토리지의 개념으로 최근에는 데이터 저장소의 역할을 하는 경우가 많음
    • 외부에서 수집된 데이터를 이 공간에 저장해두고 사용하기도 하고 정적 웹 페이지를 배포하는 용도 또는 백업용으로 사용
  • VPN: 가상 네트워크
  • Database
  • Route 53: 도메인 관련 작업
  • Elastic IP: 공인 IP 주소를 제공
  • SageMaker: 머신러닝 기능을 제공
  • QuickStart: 시각화 기능 제공
  • Managed BlockChain
  • Cloud9: 통합 개발 도구
  • GameLift: 게임 호스팅 서비스
  • ECR, ECS, EKS: 이미지 저장소, 도커 배포, 쿠버네티스 배포

 

- Free Tier 계정

  • EC2 인스턴스 1대,  RDS 1 대, S3 5GB 의 공간을 1년 동안 무료로 사용할 수 있도록 계정

- 관리 콘솔

  • Web에 접속해서 GUI로 AWS를 조작하는 화면

- Managed Service 

  • AWS가 관리하는 서비스
  • 가상 서버인 EC2는 Managed Service가 아니지만 스토리지 인 S3 와 데이터베이스 서버인 RDS는 Managed Service
  • Managed Service는 백업 및 업데이트가 자동으로 이루어지므로 사용자가 수동으로 관리할 필요가 없다.

- 보안 문제

  • 일반적으로는 On-Premiss 가 보안성이 우수하다.
  • On-Premiss는 기업에 보안에 대한 전문가 필요함.

- 도입 사례

  • 현대 건설 기계는 Amazon S3를 이용해서 빅데이터 플랫폼 과 데이터 레이크를 구축하고 
    Sage Maker를 이용해서 수요 예측 시스템을 구축해서 건설 장비에 대한 수요를 예측

 

 

 

3. 기본 개념

Region

- AWS의 모든 서비스가 위치하고 있는 물리적 장소. 그 안에 다시 여러 개의 가용 영역 (AZ - 데이터센터) 존재

- Region 별로 제공하는 서비스가 다르면 요금도 다름

- 클라이언트가 사용하는 앱을 배포하는 경우 Region을 반드시 확인

 

Edge Location

- AWS의 CDN 서비스인  CloudFront를 위한 Cache Server

- CDN(Content Delivery Network)은 콘텐츠를 사용자들이 빠르게 받아볼 수 있도록 전 세계 곳곳에 위치한 캐시 서버에 복제해주는 서비스

- CDN 서비스와 사용자가 만나는 지점을 Edge Location

 

 

 

 

 

4. IAM

- AWS에 회원 가입을 하면 모든 작업을 수행할 수 있는 루트 계정이 만들어 진 것

- 기업을 사용을 하다 보면 여러 다른 사람에게 서비스를 사용할 수 있도록 해주어야 하는 경우가 발생

- 사용자를 생성해주는 기능

 

Factor

- 사용자의 신원을 확인하는 방법

- 종류

  • 지식 기반: ID/PW 와 같이 알고있는 인증 정보를 이용하는 방식
  • 소유 기반: 사용자가 소유한 것을 이용하여 인증하는 방식 - 인증서, 휴대폰 인증
  • 속성 기반: 고유의 속성을 이용하는 것으로 지문, 홍채 인식 등

- AWS는 Multi Factor 인증 지원

 

사용자 생성

- 사용자를 생성하고 권한을 반드시 부여

- 권한 부여를 하지 않으면 아무일도 할 수 없다.

- 권한 설정 방법

  • 그룹에 권한을 부여한 후 사용자를 그룹에 포함시키는 방식
  • 기존 사용자의 권한을 복사하는 방법
  • 기존 정책을 연결하는 방법

 

 

 

 

5. Network

IP Address

- TCP/IP 라는 프로토콜을 사용하는 인터넷 망에서 컴퓨터를 구분하기 위한 숫자의 조합

- 인터넷 망에서 데이터를 송수신 할 때 Port 와 함께 사용

  • IP Address 는 컴퓨터를 구분하고 Port 컴퓨터 안에서 동작하는 Application을 구분
  • 실제 데이터의 송수신은 컴퓨터의 애플리케이션이 수행하기 때문
  • 인터넷 망에서 각 컴퓨터의 IP는 구별되어야 하고 하나의 컴퓨터에서 각각의 Application이 사용하는 Port는 구분되어야 함
  • 하나의 컴퓨터에서 여러 개의 Application을 동작할 때는 포트를 확인해봐야 함

- IPv4 와 IPv6

  • IPv4: 32비트 주소 체계로 8비트씩 나누어서 표현을 하는데 일반적으로 10진수로 변환해서 표현
    • 00000000.00000000.00000000.00000000 ~ 11111111.11111111.11111111.11111111
    • 0.0.0.0 ~ 255.255.255.255
  • IPv6: IPv4 의 주소 개수 한계로 등장한 주소 체계, 현재는 전부 IPv6를 사용하는데 IPv4로 설정하면 자동으로 변환을 수행. 128비트 주소 체계로 16비트씩 8개의 영역으로 구분을 하고 각 16비트는 16진수 4자리로 표현하고 중복되는 부분을 생략할 수 있도록 설계
    • 00000000.00000000.00000000.00000000.00000000.00000000.00000000.00000000.00000000.00000000.00000000.00000000.00000000.00000000.00000000.00000000 ~ 11111111.11111111.11111111.11111111
      .11111111.11111111.11111111.11111111.11111111.11111111.11111111.11111111.11111111.11111111.11111111.11111111
    • 0000:0000:0000:0000:0000:0000:0000:0000 ~ FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
  • Loopback(자기 자신)을 표현할 때 
    IPv4는 127.0.0.1로,  IPv6는 0:0:0:0:0:0:0:1 로 표현
    Windows7 이상에서는 로컬 호스트에서 자신의 웹 서버에게 접속하면 IPv6로 표현됨

- Private IP & Public IP

  • Public IP는 인터넷에서 외부 망에서 구별하기 위한 주소로 이 주소는 컴퓨터 마다 유일 무이해야 한다.
  • Private IP는 인터넷에서 내부 망에서 구별하기 위한 주소로 이 주소는 내부 망에서만 유일 무이하면 된다.
    • 10.0.0.0 ~ 10.255.255.255
    • 172.16.0.0 ~ 172.31.255.255
    • 192.168.0.0 ~ 192.168.255.255
    • 이 대역은 외부에서 사용할 수 없음
    • Docker에서 Network 만들 때, Kubernetes 에서 Pod를 생성할 때, 유동 IP를 사용하는 인터넷을 이용할 때 확인 가능

- 유동 IP 와 고정 IP

  • 유동 IP는 IP Address 가 계속해서 변하는 것
    • 전용선을 사용하지 않고 통신 회사의 라우터를 이용해서 인터넷을 사용하는 경우 통신 회사에서는 라우터에 몇 개의 IP만 할당하고 각 개인에게는 Port Forwarding 이라는 기술로 분배해서 사용하는 경우에 할당됩니다.
  • 고정 IP는 IP Address 가 고정되는 것
    • 전용선을 사용하는 환경에서 배정
    • 서버가 될려면 이 고정 IP를 사용해야 합니다.
  • Elastic IP(탄력적 IP)
    • AWS에서 클라우드 서버에게 배정하는 IP로 하나의 고정 IP를 부여하는 것
    • 컴퓨터를 임대해서 사용하는 EC2 서비스를 사용할 때 임대한 컴퓨터를 서버로 활용할려면 이 탄력적 IP를 부여받아서 사용해야 한다.
    • 최근에는 EC2 서비스의 인스턴스를 생성하면 Public IP가 부여된다.

 

Domain 과 DNS(Domain Name Service)

- IP Address 는 숫자로 된 주소이므로 사람이 기억하기가 어렵습니다.

- 숫자로 된 주소를 문자의 조합으로 사용할 수 있도록 만든 것 중 하나가 Domain 

  • 인터넷 망에서는 IP Address 를 이용해서 다른 컴퓨터에 요청을 할 수 있고 Domain을 이용해서 요청을 할 수 있음

- Domain을 입력했을 때 Domain을 해석해서 IP Address 로 변환해주는 서비스가 DNS

- AWS에서 DNS 서비스가 Route53

- 도메인은 이름이기 때문에 호스트 또는 서비스 이름이 안들어가는데 실제 사용을 할 대는 호스트 이름 과 도메인을 합쳐서 사용을 해야 하는데(https://www.naver.com) 이것을 FQDN(Fully Qualified Domain Name) 

  • 맨 앞은 프로토콜을 의미하고 도메인 앞 부분이 호스트 이름
  • 가끔 http 나 https를 붙이지 않고 //로 시작하는 경우가 있는데 이는 필요에 따라 http 나 https로 접속

 

- URI(Uniform Resouce Identifier), URN(Name), URL(Locator)

  • URI: 자원 식별자로 가장 큰 개념으로 URN 과 URL이 하위 개념으로 존재
  • URL: 네트워크 상에서 자원이 어디에 위치해 잇는지 알려주기 위한 규칙
  • URN: 자원을 구별하기 위해서 붙이는 이름

- ARN: AWS 안에서 자원을 구별하기 위해서 붙이는 이름

 

 

 

 

 

 

6. VPN(Virtual Private Network)

- Private Network: 외부에서는 접근할 수 없는 네트워크

  • 최근에는 건물 내부 뿐 아니라 다른 건물 또는 외부에서 인터넷을 이용해서 Private Network를 사용해야 하는 경우가 많은데 이 때 내부 구성원을 제외한 사람들이 접근할 수 없도록 해야 하는데 이렇게 구축한 것을 VPN 이라고 한다.

- AWS에서는 이를 VPC 라는 개념으로 제공한다.

  • 최근에는 서비스를 만들면 데이터 - 애플리케이션 - API 형태로 만들어지는데 이 때 API는 외부로 노출이 되지만 데이터 와 애플리케이션은 외부로 노출되지 않도록 하는 것을 권장
  • 하나의 서비스를 만들 때 데이터 와 애플리케이션 그리고 API는 하나의 VPC로 구성해서 내부 통신이 가능하도록 하고 API 만 외부로 노출을 시켜서 클라이언트나 다른 API 와 통신을 할 수 있도록 만드는 것을 권장

- VPN 안에는 보안 그룹이나 ACL의 개념이 있어서 특정 네트워크 또는 컴퓨터나 접속할 수 있도록 설정을 할 수 있다.

- NAT(Network Address Translation)를 이용해서 내부에서는 사설 IP를 사용하고 외부로 나갈 때 Public IP로 변환해서 나가도록 한다.

 

 

 

 

 

 

7. Network 범위와 CIDR 표기

- 하나의 컴퓨터를 구별하기 위해서는 IP Address 를 사용하는데 여러 개의 컴퓨터 특히 연속된 IP 대역을 가진 컴퓨터를 표현하기 위한 방법이 CIDR 표기법

- IP주소/공통된 주소의 개수를 비트 단위로 입력

  • 공통된 주소 부분을 포함하는 모든 컴퓨터를 하나의 대역으로 표현 가능

192.168.0.0/16

  • 앞의 16개의 비트는 고정이고 나머지는 자유롭게 사용
  • 192.168.0.0 ~ 192.168.255.255 까지를 의미

192.168.1.0/24

  • 192.168.1.0 ~ 192.168.1.255 를 의미

0.0.0.0/0

  • 고정되어야 하는 것이 하나도 없음, 모든 IP를 의미

192.168.0.1/32

  • 모든 비트가 고정되어야 합니다. 하나의 IP를 의미
  • 이 방식은 지금은 거의 사용하지 않는데 데이터베이스에 애플리케이션 서버가 하나만 연결되는 경우 이런식으로 작성해서 다른 컴퓨터는 데이터베이스에 접속을 못하도록 하는 경우가 사용

 

 

 

 

8. 알려진 포트(well-known port)

- 포트 중에서 0 ~ 1023번까지는 대부분 정해져 있다.

http: 80
https: 443
SSH(원격 접속): 22
FTP(파일 전송): 20, 21
DNS: 53
Mail: 25, 110, 143

 

- 애플리케이션이 사용하는 포트

RDP(원격 데스크톱): 3389

DB:

  • 1433(SQL Server)
  • 1521(Oracle)
  • 3306(MySQL 이나 Maria DB)
  • 5432(Postgre SQL)
  • 27017(Mongo DB)
  • 6397(Redis)
  • zookiper(2181)
  • Kafka(9092)
  • logstash(5044)
  • elastic search(9200, 9300)
  • kibana(5601)

 

 

 

 

9. End Point

- 외부에서 접속하기 위한 접속점

- 외부에서 AWS 서비스에 접속을 할 때 IP가 부여되면 IP 주소를 이용해서 접속을 하면 되지만 IP를 부여하지 않는 경우에는 End Point를 이용해서 접속을 해야 한다.

  • EC2 같은 서비스는 IP도 부여되고 End Point도 부여되므로 2가지 모두로 외부에서 접속이 가능하지만 RDS 같은 데이터베이스 서비스는 IP를 알려주지 않고 End Point만 알려주므로 End Point를 이용해서 접속을 해야 합니다.

 

'AWS' 카테고리의 다른 글

[AWS] DataBase  (1) 2024.04.18
[AWS] EC2 Service  (1) 2024.04.18