안녕하세요~
App 서비스를 개발할 때 인프라 구축 단계에서 실제 서버를 물리적으로 사서 구축을 할지
클라우드 서비를 이용하여 구축을 할지 결정을 하게됩니다.
1. 온프레미스(On-Premise) 방식 : 별도 서버를 직접 운영 관리
대내 서비스 적합, 가용성 보장, 보안 장점
2. 클라우드 방식 : 가상의 서버 운영 관리 (퍼블릭, 프라이빗)
대외 서비스 적합, 설계에 따라 가용성 보장
실제 작은 규모의 서비스이거나 사용량 예측이 불가한 경우 비싼 서버를 직접 사서 구축하는 것보다
우선 클라우드 방식을 통해 서버 운영 관리를 하는 것이 좋습니다.
직접 서버를 구매하지 않고 클라우드 제공 업체 (아마존 AWS, 네이버 클라우드, L 클라우드 등)
대신 서버를 구축하고 있는 업체의 장비를 대신 빌려서 사용하고 사용량 만큼 지불하면 됩니다.
1> AWS cloud 구간
AWS 클라우드 인프라 구성 관련해서 AWS Cloud / VPC 구간을 나누고
일단 고객 클라이언트 App 에서 서버로 진입하기 윈해서는 CloudFront 를 통해 AWS Cloud 구간을 진입하게 구성할 수 있습니다.
AWS Cloud 공간에서 IGW 인터넷 게이트웨이를 통해 App 서비스 인프라가 구성된 VPC 구간으로 진입할 수 있습니다.
- CloudFront : 짧은 지연 시간과 빠른 전송 속도로 데이터, 동영상, 애플리케이션 및 API를 전 세계 고객에게 안전하게 전송하는 고속 콘텐츠 전송 네트워크(CDN) 서비스
- 인터넷 게이트웨이(IGW) : 인터넷 - VPC 구간에 통신 역할 (인터넷 라우팅 가능 트래픽에 대한 VPC 라우팅 테이블에 대상 제공, NAT(네트워크 주소 변환) 수행
- IAM : AWS 계정 권한, 역할, 정책 제어 서비스 제공 (AWS 사용자 및 그룹 생성, 관리 AWS 리소스에 대한 액세스를 허용 및 거부)
- CloudWatch : AWS 기본 모니터링 서비스 제공
- ACM : AWS 공인 및 사설 SSL/TLS 인증서를 프로비저닝, 관리 및 배포할 수 있게 지원하는 서비스
# SSL/TLS 인증서 : 네트워크 통신 보호하고 웹사이트 자격 증명과 private 네트워크에서 자격 증명 설정하는 역할
- CloudSearch : AWS 검색 서비스 제공
2> VPC 구간
VPC는 다시 Public subnet 과 Private subnet 으로 분리되어 구성됩니다.
Public subnet 은 WAF 를 두고 보안정책을 두어 필터링을 하여 유입을 시킬 수 있고,
별도 NAT GW 게이트웨이를 통해 허가된 IP 경우 직접 Private subnet에 있는 was 서버에 붙을 수 있게 구성이 가능합니다.
private subnet 에서는 실제 저희 보호되는 내부망으로 web서버, was 서버, db 서버, alb(로드밸런서) 등의 실제 서비스 처리하는 서버 구성이 되어있고 개발계, 운영계를 분리하여 구성이 가능합니다.
- VPC : AWS 클라우드 내 논리적으로 구성된 가상 네트워크
- 서브넷(Subnet) : 격리된 리소스 그룹을 배치할 수 있는 VPC IP 주소 범위의 한 세그먼트
Public Subnet : 서브넷이 인터넷 게이트웨이로 향하는 라우팅이 있는 라우팅 테이블과 연결
Private Subnet : 서브넷이 인터넷 게이트웨이로 향하는 라우팅이 없는 라우팅 테이블과 연결
- WAF : 일반적인 웹 공격으로부터 웹 애플리케이션이나 API를 보호하는 웹 애플리케이션 방화벽 (스크립팅 공격 패턴 차단 보안 규칙, 특정 트래픽 패턴 필터링 등 제어 기능)
- NAT 게이트웨이(NAT GW): 프라이빗 서브넷에 있는 리소스가 인터넷에 액세스할 수 있게 해주는 고가용성 관리형 네트워크 주소 변환 (NAT) 서비스
- 가상 프라이빗 게이트웨이: VPN 연결되는 Amazon VPC 게이트웨이
- 피어링 연결: 피어링 연결을 사용하여 프라이빗 IP 주소를 통해 피어링되는 두 VPC 간 트래픽 라우팅
- VPC 엔드포인트: IGW, VPN, NAT(Network Address Translation) 디바이스 또는 방화벽 프록시를 사용하지 않고 AWS에서 호스팅되는 서비스에 VPC 내에서부터 비공개 연결
- 송신 전용 인터넷 게이트웨이 : VPC에서 인터넷으로 IPv6 트래픽에 대하여 송신 전용 액세스를 제공하는 상태 저장 게이트웨이
- Bastion : 내부 네트워크와 외부 네트워크 사이 게이트웨이 역할
운영자는 서버를 관리 하기 위해 SSH 접속이 필요하며,Bastion host 라는 방식으로 외부 접근이 가능하도록 구성
Bastion host는 Private 네트워크 환경에 접근하기 위한 일종의 Proxy 역할을 하는 서버
<참고 : https://aws.amazon.com/ >
추가로 CICD 라고 하여 개발한 소스를 형상관리하며, 빌드, 배포를 하는 기능이 있습니다.
보통 솔루션으로는 jenkins를 주로 사용하고, 하베스트(형상관리, 빌드, 배포), bitbucket(형상관리), bamboo(빌드/배포) 등 있습니다.
* CI(Continuous Integration)
- 개발자가 각각 개발한 소스코드를 모아 컴파일, 테스트, 빌드 등을 하는 과정을 통합하여 해주는 프로세스
보통 이러한 프로세스를 각각 별개로 처리하지 않고 통합하여 CI라고 하며, Jenkins, Travis 등이 있다
* CD(Continuous Delivery or Continuous Deploy)
- CD는 팀이 소프트웨어를 짧은 주기로 생산하는 소프트웨어 엔지니어링 방식으로, 소프트웨어를 릴리스할 때 언제든지 소프트웨어를 안정적으로 릴리스할 수 있도록 한다.
보다 빠른 속도와 빈도로 소프트웨어를 구축, 테스트 및 릴리스하는 것을 목표로 합니다.
이 접근 방식을 사용하면 프로덕션 환경의 응용 프로그램을 많은 업데이트할 수 있으므로 변경 내용을 전달할 비용, 시간 및 위험을 줄일 수 있습니다.
'IT ▶' 카테고리의 다른 글
[Android] 안드로이드 App 개발자 계정 만드는 방법 (결제) (0) | 2021.08.01 |
---|---|
AWS 인스턴스 유형 (c5.xlarge, m5.xlarge, t2.small 등) (0) | 2021.07.04 |
모바일 App 서비스기획 업무 내용 (앱 트랜지션, 브랜딩, BI, CI 등) (0) | 2021.05.18 |
[Excel] 엑셀 편리한 기능 모음과 단축키 (데이터 일괄 입력 방법 등) (0) | 2021.04.22 |
[JavaScript] 자바스크립트 문자열 함수 substr(), substring(), slice() 차이 (7) | 2020.12.31 |