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
- 00000000.00000000.00000000.00000000.00000000.00000000.00000000.00000000.00000000.00000000.00000000.00000000.00000000.00000000.00000000.00000000 ~ 11111111.11111111.11111111.11111111
- 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 |