EC2 EC2(Elastic Compute Cloud) 가상 서버를 생성할 수 있는 서비스 가상 머신을 선택할 때 OS를 함께 설치하므로 가상 머신 사용 준비가 완료되면 바로 OS 사용 가능 CPU나 메모리와 같은 서버의 사양도 사용자가 자유롭게 선택할 수 있고, 머신을 생성한 후에도 변경(확장)할 수 있음 데이터를 저장하는 스토리지의 용량도 쉽게 변경할 수 있음 자원의 변경이나 삭제가 용이하므로 부담 없이 서버를 생성해 테스트할 수 있고, 여러 AZ에 배치해 가용성을 확보하는 설정도 할 수 있음 인스턴스 EC2가 가상 서버를 관리하는 단위 EC2 생성 생성 시 선택 사항 - Amazon 머신 이미지(AMI) - 인스턴스 사양 (인스턴스 유형) - 배포할 네트워크 - 데이터를 저장할 스토리지 용량 - 사용 권한.. 서버 기초 지식 서버란? 서버: 네트워크에서 데이터나 서비스를 제공하는 컴퓨터 클라이언트: 서비스를 이용하는 프로그램 웹 사이트와 웹 브라우저의 경우 웹 사이트를 제공하는 컴퓨터가 서버, 웹 브라우저가 클라이언트 클라이언트는 서버에 데이터를 요청하고, 서버는 요청에 대한 응답을 반환 웹 사이트는 특정 페이지의 URL을 지정해 요청을 전송하고, 웹 서버가 URL에 해당하는 데이터를 응답으로 반환 대표적인 서버 유형 웹 서버 웹 페이지 자체의 구조를 만드는 HTML 파일과 디자인을 정의하는 CSS 파일, 사이트에 표시되는 이미지 파일 등 웹 사이트를 구성하는 데 필요한 데이터를 저장하고 시스템을 제어하는 프로그램을 설치한 서버 AWS에서 웹 서버를 구축하는 경우 EC2, ECS로 구현 데이터베이스 서버 시스템이 취급하는 데.. AWS 기본 개념 AWS 글로벌 인프라 리전(region) 데이터 센터를 클러스터링하는 물리적 위치 한 개의 AWS 리전은 두 개 이상의 가용 영역(Availability Zone: AZ)으로 구성 대부분의 AWS 서비스는 리전을 선택해서 시작 세계 각지에 리전이 존재하면 생기는 장점 - 세계 각지의 사용자가 이용하는 글로벌 시스템을 구축할 수 있어 통신 지연을 줄일 수 있음 - 법적 요구 사항으로 특정 국가에 시스템을 구축해야 하는 경우 특정 리전을 사용해 요건을 충족시킬 수 있음 - 특정 리전에서 시스템을 사용할 수 없게 된다고 해도 다른 리전에서 시스템을 가동할 수 있음 가용 영역(Availability Zone) 하나 이상의 개별 데이터 센터 한 개의 리전은 두 개 이상의 가용 영역으로 구성 가용 영역끼리는 물리적.. 클라우드의 서비스 제공 형태 SaaS(Software as a Service) 응용 프로그램을 서비스로 제공하는 형태 대표: Gmail, Dropbox, Office365, Zoom 등 Paas(Platform as a Service) 플랫폼까지 제공하는 형태 OS가 설치된 서버에 사용자가 애플리케이션을 설치해서 사용함 임대 서버가 이에 해당함 Iaas(Infrastructure as a Service) 인프라를 제공하는 형태 네트워크, 서버 머신 등을 제공 Saas PaaS IaaS 제공 형태 애플리케이션(응용 프로그램) 플랫폼(OS) 플랫폼(OS) 인프라(하드웨어) 인프라(하드웨어) 인프라(하드웨어) Eaas(Everything as a Service) 네트워크를 통한 통신부터 소프트웨어까지 제공하는 서비스 AWS는 EaaS에 속함 가상화와 분산 처리 가상화 : 물리적인 메모리, 하드디스크, OS 등 다양한 하드웨어를 소프트웨어로 대체하는 것 가상화를 통한 복제 가상 서버에 할당된 메모리와 스토리지는 자유롭게 늘리거나 줄일 수 있지만, 서버의 성능을 올리는 것에는 한계가 있음 서버에 부하가 발생할 때 서버의 대수를 늘리는 것이 필요함 소프트웨어처럼 서버를 구축하기 때문에 서버 복제가 쉽고 대수를 늘리거나 줄이는 것도 용이함 분산 처리와 로드 밸런서 분산 처리: 기기 여러 대에 분산하여 처리하는 방법 같은 기능이나 정보를 가진 서버 여러 대에 분배하여 처리하여 서버 1대의 부담을 줄이고, 서버가 응답할 수 없거나 다운되는 사태를 막을 수 있음 로드 밸런서: 서버 여러 대에 분산하는 장치 AWS에서는 로드 밸런서로 ELB를 제공 클라우드 컴퓨팅 클라우드란? 언제, 어디서든 인터넷을 통해서 접속이 가능한 환경 클라우드 환경에서는 인터넷상에 설치된 소프트웨어나 자원을 사용할 수 있고, 로컬 환경에 저장하는 것처럼 클라우드에 저장하는 것도 가능함 클라우드 환경은 스스로 만들 수 있고, 빌릴 수도 있음 클라우드 컴퓨팅 클라우드 중에서도 서버 및 네트워크 등 인프라 전체를 임대해 주는 서비스 대표: AWS(아마존 웹 서비스), 마이크로소프트 Azure, 구글 플라우드 플랫폼 등 클라우드에 구축된 인프라를 활용하는 서비스나 이를 사용하는 것 가상화 기술을 사용하여 언제 어디서든지 서버나 인프라를 구축하여 운영할 수 있도록 구축되어 있음 하드웨어 및 네트워크 등 물리적인 설비를 직접 보유할 필요가 없음 온프레미스 : 자사가 서버 등을 구축하는 것 온프레미스.. AWS의 대표서비스 EC2(Elastic Compute Cloud) 컴퓨팅 용량을 제공하는 서비스 서버, OS, 소프트웨어 등을 세트로 사용할 수 있음 자유롭게 소프트웨어를 설치하고 시스템을 구축할 수 있으며, 이미 세팅된 서버를 사용하는 것도 가능함 성능은 가변적이며 일시 정지 중에는 언제든 성능을 높이거나 낮출 수 있음 S3(Simple Storage Service) 오브젝트 스토리지 서비스 웹 서버 및 파일 서버용 파일을 보관하는 장소로 사용할 수 있음 장애 및 에러에 강할 뿐만 아니라 다른 서비스와 연동하는 기능도 갖춤 파일 크기는 최대 5TB, 전체 용량은 제한이 없음 VPN 계정 전용의 가상 네트워크 네트워크 및 서브넷의 범위, 라우팅 테이블 및 네트워크 게이트웨이 등을 설정하고, 가상 네트워크 환경 구성 RDS.. 아마존 웹 서비스의 정의 AWS(Amazon Web Service) 클라우드 컴퓨팅 서비스의 하나 서버 및 네트워크 등을 인터넷으로 빌려주는 서비스 AWS의 다양한 서비스를 조합해 애플리케이션, 인프라를 구축할 수 있음 아마존 웹 서비스의 특징 여러 사업자에게 각각 빌려야 했던 인프라를 일괄로 빌려서 사용할 수 있음 : 운영 체제(OS), 웹 서버, 데이터베이스 서버(DB 서버) 등에 필요한 소프트웨어까지 통째로 사용할 수 있음 서비스를 조합할 수 있음 : 다양한 서비스를 제공하고 있어 어떠한 서비스를 구축할 때 AWS가 제공하는 서비스만으로 필요한 기능을 대부분 구축할 수 있음 사용한 만큼만 빌릴 수 있음 : 요금제의 기본 형태가 종량제의 형태 : 필요한 만큼만 빌릴 수 있고, 사용한 만큼만 비용을 지불하면 됨 글로벌 확장이 .. 2개의 인스턴스 연동 요구 조건 : EC2 인스턴스 두 개를 생성하여 첫 번째 인스턴스에는 React, SpringBoot 앱을, 두 번째 인스턴스에는 MySQL 데이터베이스 실행 네트워크 설정 1. VPC(Virtual Private Cloud) 생성 EC2 인스턴스를 비롯한 여러 AWS 서비스의 리소스를 담을 수 있는 가상 네트워크 연속적인 IP 주소 범위로 구성 → CIDR 블록으로 표기 → 네트워크와 호스트 ID를 구분 2. 서브넷(Subnet) 설정 VPC 내의 논리적인 구분 -> 인스턴스를 서로 격리하고, 인스턴스 간의 트래픽 흐름을 제어하고, 인스턴스를 기능별로 묶는 역할 EC2 인스턴스를 배치하는 장소 -> 인스턴스는 서브넷 안에 위치 서브넷은 하나의 가용영역(AZ) 내에서만 존재할 수 있음 퍼블릭 서브넷: 기.. 2차 프로젝트(someus) 결과물을 컨테이너 기반으로 접근할 수 있도록 docker-compose.yaml 파일 작성 1. 스프링부트 도커 이미지 빌드 1) Docker image로 만들기 전 수정해야 할 부분 application-properties 수정 전 C:/java/eclipse-workspace/someus/src/main/resources/static/application.properties spring.datasource.hikari.jdbc-url=jdbc:log4jdbc:mysql://localhost:3306/someusdb?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Seoul spring.datasource.hikari.username=root spring.datasource.hikari.password=root … ↓ 수정 후 spr.. 대표적인 예외의 종류 RuntimeException 1. ArithmeticException - 산술 연산에서 예외 조건이 발생했을 때 발생 class ArithmeticExceptionPractice { public static void main(String args[]) { try { int a = 10; int b = 0; int c = a / b; } catch (ArithmeticException e) { System.out.println("0으로 나눌 수 없습니다."); } } } 2. ArrayIndexOutOfBoundsException - 잘못된 인덱스로 Array에 액세스했을 때 발생 class ArrayIndexOutOfBoundsPractice { public static void main(String .. 예외 예외 vs 에러 예외 연산 오류, 숫자 포맷 오류 등과 같이 상황에 따라 개발자가 해결할 수 있는 오류 에러 자바 머신 자체에서 발생하는 오류로 개발자가 해결할 수 없는 오류 예외 처리 오류가 발생했을 때 차선책을 제시함으로써 오류를 피하는 과정 예외 클래스의 상속 구조 일반 예외 & 실행 예외 일반 예외 : 컴파일 전에 체크 가능 - Exception으로부터 상속 실행 예외 : 예외 처리를 하지 않아도 컴파일은 가능하나, 실행 중 예외가 발생하면 프로그램 종료 - RuntimeException으로부터 상속 예외 처리 try { // 일반 예외, 실행 예외 발생 가능 코드 } catch (예외 클래스명 참조 변수명) { // 예외가 발생했을 때의 처리 } finally { // 예외 발생 여부와 관계없이.. 이전 1 2 3 다음