로얄젤리

AWS를 이용한 웹 호스팅

IT 트렌드

고가용성 및 확장 가능한 웹 호스팅은 복잡하고 비용이 많이 드는 제안일 수 있다. 기존의 확장 가능한 웹 아키텍처들은 높은 수준의 신뢰성을 보장하기 위해 복잡한 솔루션을 구현할 필요가 있었을 뿐만 아니라, 높은 수준의 고객 서비스를 제공하기 위해 트래픽에 대한 정확한 예측을 요구하기도 했다. 교통량이 많은 기간과 교통 패턴의 급격한 변화는 고가의 하드웨어의 활용률을 낮추어 유휴 하드웨어를 유지하는 데 높은 운영 비용을 발생시키고, 활용도가 낮은 하드웨어에 대한 자본의 비효율적인 사용을 초래한다. Amazon Web Services는 IT 비용을 고객 트래픽 패턴과 실시간으로 일치시키는 인프라인 가장 까다로운 웹 애플리케이션을 위해 안정적이고 확장 가능하며 안전하며 성능이 뛰어난 인프라를 제공한다. 이 백서는 온디맨드 컴퓨팅 요구사항을 충족하는 데 필요한 확장성을 달성하는 데 도움이 되도록 클라우드를 모색하는 IT 관리자 및 시스템 설계자를 위한 것이다.확장 가능한 웹 호스팅은 잘 알려진 문제 공간이기 때문에, 기존의 웹 호스팅 모델을 묘사한 다음 그림은 어떠한 놀라움도 포함해서는 안 된다. 클라우드에서 구현되는 유사한 아키텍처와 비교하기 위해 이를 제시한다. 이 논문의 주제는 클라우드 구축이다. 이 전통적인 웹 호스팅 아키텍처는 아키텍처를 프레젠테이션, 애플리케이션 및 지속성 계층으로 분리하는 공통 3계층 웹 애플리케이션 모델을 구현한다. 프레젠테이션, 지속성 또는 애플리케이션 계층에 호스트를 추가하여 확장성을 제공한다. 또한 아키텍처에는 성능, 페일오버 및 가용성 기능이 내장되어 있다. 다음 섹션에서는 이러한 아키텍처가 Amazon Web Services 클라우드에 배치되어야 하는 이유와 방법을 살펴볼 것이다.기존의 웹 호스팅 아키텍처(그림 1)는 적은 수의 수정만으로 AWS 제품이 제공하는 클라우드 서비스에 쉽게 휴대할 수 있지만, 첫 번째 질문은 고전적인 웹 애플리케이션 호스팅 솔루션을 AWS 클라우드로 옮기는 것의 가치에 관한 것이다. 클라우드가 자신에게 적합하다고 판단하면 적합한 아키텍처가 필요할 겁니다. 이 섹션은 AWS 클라우드 솔루션을 평가하는 데 도움이 된다. 클라우드에 웹 애플리케이션을 배포하는 것과 사내 배포를 비교하고, 애플리케이션을 호스팅하기 위한 AWS 클라우드 아키텍처를 제공하며, 이 솔루션의 주요 구성 요소에 대해 설명하십시오. 웹 응용 프로그램 실행을 담당하는 경우 AWS가 원활하고 비용 효율적인 솔루션을 제공할 수 있는 다양한 인프라 및 아키텍처 문제에 직면하게 된다. 다음은 기존 호스팅 모델에 비해 AWS를 사용하면 얻을 수 있는 이점 중 일부에 불과하다.기존의 호스팅 모델에서는 최대 용량을 처리하기 위해 서버를 프로비저닝해야 하며, 사용하지 않는 사이클은 피크 기간을 벗어나면 낭비된다. AWS 호스팅된 웹 애플리케이션은 추가 서버의 온디맨드 프로비저닝을 활용할 수 있으므로 용량과 비용을 실제 트래픽 패턴에 맞게 지속적으로 조정할 수 있다. 예를 들어, 다음 그래프는 오전 9시부터 오후 3시까지 사용량이 가장 많고 나머지 시간 동안 사용량이 적은 웹 응용 프로그램을 보여준다. 필요한 경우에만 자원을 프로비저닝하는 실제 트래픽 추세에 기초한 자동 확장 접근방식은 낭비되는 용량을 줄이고 비용을 50% 이상 절감하게 될 것이다. 기존 호스팅 모델과 관련된 느린 프로비저닝의 더욱 심각한 결과는 예상치 못한 트래픽 급증에 제때 대응할 수 없다는 것이다.

 

인기 미디어에 이 사이트가 언급된 후 예상치 못한 트래픽 급증으로 인해 웹 응용 프로그램이 다운되는 것에 대한 많은 이야기들이 있다. 웹 애플리케이션이 일반적인 트래픽 급증에 맞춰 확장되도록 도와주는 동일한 온디맨드 기능도 예상치 못한 로드를 처리할 수 있다. 새 호스트는 몇 분 만에 시작하고 준비될 수 있으며 트래픽이 정상으로 돌아올 때와 마찬가지로 신속하게 오프라인 상태로 전환될 수 있다.프로덕션 웹 애플리케이션을 위한 기존의 호스팅 환경을 구축하는 하드웨어 비용은 프로덕션 기단과 함께 중단되지 않는다. 개발 라이프사이클의 각 단계에서 웹 애플리케이션의 품질을 보장하기 위해 매우 자주 사전 생산, 베타 및 시험 비행대를 만들어야 한다. 이 시험 하드웨어의 최대한 활용을 보장하기 위해 다양한 최적화가 이루어질 수 있지만, 이러한 병렬 기단은 항상 최적으로 활용되는 것은 아니다. 즉, 많은 고가의 하드웨어가 장기간 사용되지 않고 있다. AWS 클라우드에서는 테스트용 비행대가 필요할 때만 프로비저닝할 수 있다. 또한 부하 테스트 중에 AWS 클라우드에서 사용자 트래픽을 시뮬레이션할 수 있다. 또한 이러한 병렬 함대를 새로운 운영 릴리즈의 준비 환경으로 사용할 수 있으며, 이를 통해 현재 프로덕션에서 서비스 중단이 거의 없거나 전혀 없는 새로운 애플리케이션 버전으로 신속하게 전환할 수 있다.아래는 고전적인 웹 애플리케이션 아키텍처와 AWS 클라우드 컴퓨팅 인프라를 어떻게 활용할 수 있는지에 대한 또 다른 관점이다.다음 섹션에서는 AWS 클라우드에 구축된 웹 호스팅 아키텍처의 주요 구성요소를 개략적으로 설명하고, 그것들이 전통적인 웹 호스팅 아키텍처와 어떻게 다른지 설명한다.Edge 캐싱은 Amazon Web Service 클라우드 컴퓨팅 인프라에서 여전히 관련이 있다. 웹 애플리케이션 인프라의 기존 솔루션은 AWS클라우드에서제대로 작동해야 한다. 그러나 AWS를 사용할 때 한 가지 추가 옵션이 제공되는데, AWS는 웹 사이트 에지 캐싱에 Amazon CloudFront service1을 활용하는 것이다. Amazon CloudFront는 에지 위치의 글로벌 네트워크를 사용하여 동적, 정적 및 스트리밍 콘텐츠를 포함한 웹 사이트를 제공하는 데 사용할 수 있다. 콘텐츠에 대한 요청은 가장 가까운 가장자리 위치로 자동으로 라우팅되므로, 컨텐츠는 가능한 최고의 성능을 가지고 제공된다. Amazon CloudFront는 Amazon Simple Storage Service2(Amazon S3) 및 Amazon Elastic Compute Cloud3(Amazon EC2)와 같은 다른 Amazon Web Services와 함께 작동하도록 최적화되었다. Amazon CloudFront는 또한 파일의 원래 최종 버전을 저장하는 모든 비 AWS 원본 서버와 원활하게 작동한다. 다른 Amazon Web Services와 마찬가지로 Amazon CloudFront를 사용하기 위한 계약이나 월별 약속은 없다. 즉, 서비스를 통해 실제로 제공하는 콘텐츠에 대해서만 지불한다.웹 애플리케이션을 AWS 클라우드로 이동하려면 AWS가 제공하는 여러 가용성 영역을 활용하기 위해 일부 DNS를 변경해야 한다. DNS 라우팅 관리를 돕기 위해 AWS는 가용성과 확장성이 뛰어난 DNS 웹 서비스인 Amazon Route 534 를 제공한다. 도메인에 대한 쿼리는 가장 가까운 DNS 서버로 자동 라우팅되므로 가능한 최고의 성능으로 응답된다. 53번 경로는 Elastic Load Balancer에 대한 도메인 이름(예: www.example.com) 및 영역 정점 레코드 (example.com).에 대한 요청을 해결함 기존의 웹 호스팅 모델과 달리 인바운드 네트워크 트래픽 필터링은 가장자리로만 국한되지 않아야 하며 호스트 레벨에서도 적용되어야 한다. Amazon Elastic Compute Cloud(EC2)는 보안 그룹이라는 기능을 제공한다.

선형회귀와 케라스, 딥러닝의 수학적 배경

IT 트렌드

노드와의 연결 패턴, 입력과 출력 사이의 총 레이어 수와 레이어당 뉴런 수가 신경 네트워크의 아키텍처를 정의한다. 건축에는 두 가지 유형이 있다. 이러한 유형은 다음과 같이 기능성 인공신경망에 초점을 맞춘다.단층 지각론은 최초로 만들어진 신경 모델이다. 뉴런의 국소기억의 함량은 체중의 벡터로 구성되어 있다. 단일 레이어 지각론의 계산은 값이 가중치의 벡터의 해당 요소에 곱된 입력 벡터의 합계를 통해 수행된다. 출력에 표시되는 값은 활성화 함수의 입력이다. TensorFlow를 사용한 이미지 분류 문제에 대한 단일 레이어 Perceptron의 구현에 초점을 맞추자. 단일 계층 인식론을 예시하는 가장 좋은 예는 "논리적 회귀"의 표현을 통한 것이다. 이제, 훈련 로지스틱 회귀 분석의 다음과 같은 기본 단계를 고려해보자:  가중치는 훈련 시작 시에 무작위 값으로 초기화된다.  교육 세트의 각 요소에 대해, 오차는 원하는 출력과 실제 출력의 차이로 계산한다. 계산된 오차는 가중치를 조정하는 데 사용된다.  전체 훈련 세트에서 발생한 오류가 지정된 임계값 이상이 될 때까지, 최대 반복 횟수에 도달할 때까지 프로세스를 반복한다. 로지스틱 회귀 분석의 전체 코드는 다음과 같다.로지스틱 회귀 분석은 예측 분석으로 간주된다. 군수 회귀과 의존하고 2진과 하나 이상의 또는 독립적인 변수 공칭 변수 사이의 관계를 설명하기 위해 데이터를 설명하기 위해 사용된다.이 장에서는 선형 회귀 구현 TensorFlow를 사용하는 기본적인 예에 초점을 맞출 것이다. 위해 별개의 범주들의 분류를 위해 군수 회귀 또는 선형 회귀은 관리한 기계 학습 접근이다. 우리의 목표는 이 장에 이것들은 사용자 예측 변수들과 하나 이상의 독립 변수 간 관계를 예측할 수 있는 모델을 구축하는 것이다. 이 두 변수 간 관계는 선형으로 간주된다. y가 종속 변수이고 x가 독립 변수로 간주되는 경우, 두 변수의 선형 회귀 관계는 다음과 같은 방정식과 같다. 우리는 선형 회귀 분석을 위한 알고리즘을 설계할 것이다. 이를 통해  비용 함수  구배 강하 알고리즘의 두 가지 중요한 개념을 이해할 수 있게 된다 선형 회귀의 개략적 표현은 아래에 언급되어 있다. 선형 회귀 모듈을 설계하는 데 필요한 모듈을 가져오는 것이 중요하다. 우리는 Python 라이브러리 NumPy와 Matplotlib를 수입하기 시작했다. 로지스틱 회귀 분석에 필요한 계수 수를 정의하십시오.TFLearn은 TensorFlow 프레임워크에서 사용되는 모듈형 투명 심층 학습 측면으로 정의할 수 있다. TFLearn의 주된 동기는 새로운 실험을 촉진하고 보여주기 위해 TensorFlow에 더 높은 수준의 API를 제공하는 것이다. TFLearn의 다음과 같은 중요한 기능을 고려하십시오.

 

 TFLearn은 사용하기 쉽고 이해하기 쉽다.  고도로 모듈화된 네트워크 레이어, 최적기 및 그 안에 내장된 다양한 지표를 구축하기 위한 쉬운 개념을 포함한다.  TensorFlow 작업 시스템과의 완전한 투명성을 포함한다.  다중 입력, 출력 및 최적기를 수용하는 내장 텐서를 교육할 수 있는 강력한 도우미 기능을 포함한다.  쉽고 아름다운 그래프 시각화를 포함한다.  그래프 시각화에는 가중치, 구배 및 활성화에 대한 다양한 세부 사항이 포함되어 있다. 다음 명령을 실행하여 TFLearn 설치:Keras는 작고, 배우기 쉽고, TensorFlow 프레임워크 위에 높은 수준의 Python 라이브러리를 실행한다. 그것은 형태와 수학적인 세부사항의 개념을 유지하는 신경 네트워크를 위한 층을 만드는 것과 같은 깊은 학습 기법을 이해하는 데 중점을 두고 만들어졌다. freamework의 생성에는 다음 두 가지 유형이 있을 수 있다:  Sequential API  Functional API model Keras에서 심층 학습 모델을 만들기 위한 다음 여덟 가지 단계를 고려하십시오: Load 데이터 로드  모델의 정의  모델 컴파일  지정된 모델 적합  평가 predictions 필요한 예측  모드 저장el 아래와 같이 주피터 노트북을 사용하여 출력물을 실행 및 표시한다. 1단계: 딥러닝 모델을 실행하기 위해 먼저 데이터를 로드하고 로드된 데이터를 사전 처리한다.이 단계는 "라이브러리 및 모듈 가져오기"로 정의할 수 있으며, 이는 모든 라이브러리와 모듈을 초기 단계로 가져오는 것을 의미한다. 2단계: 이 단계에서 모델 아키텍처를 정의한다.이 장에서는 분산된 TensorFlow를 시작하는 방법에 대해 중점적으로 다룰 것이다. 그 목적은 개발자들이 TF 서버와 같이 다시 발생하는 기본적인 분산형 TF 개념을 이해할 수 있도록 돕는 것이다. 우리는 분배된 텐서플로우를 평가하는 데 주피터 노트북을 사용할 것이다. TensorFlow를 사용한 분산 컴퓨팅 구현은 다음과 같다. 1단계: 분산 컴퓨팅에 필요한 필수 모듈 가져오기: 여기서는 TensorFlow의 MetaGraph 형성에 초점을 맞출 것이다. 이는 TensorFlow의 수출 모듈을 이해하는 데 도움이 될 것이다. 메타그래프에는 이전에 훈련된 그래프에 대한 교육, 평가 수행 또는 추론 실행에 필요한 기본 정보가 수록되어 있다. 다음은 동일한 코드 조각:다층 지각은 인공신경망의 가장 복잡한 구조를 정의한다. 그것은 사실상 여러 층의 지각으로 형성된다. 다중 계층 지각 학습의 도표는 다음과 같다.MLP 네트워크는 일반적으로 감독되는 학습 포맷에 사용된다. MLP 네트워크의 대표적인 학습 알고리즘을 역전파의 알고리즘이라고도 한다. 이제 이미지 분류 문제를 위해 MLP와 함께 구현에 초점을 맞추겠다. 이 장에서, 우리는 x와 f(x)라고 불리는 알려진 일련의 지점들로부터 배워야 할 네트워크에 초점을 맞출 것이다. 하나의 숨겨진 계층이 이 단순한 네트워크를 구축할 것이다. Perceptron의 숨겨진 층에 대한 설명에 대한 코드는 다음과 같다.최적기는 특정 모델을 훈련시키기 위해 추가된 정보를 포함하는 확장된 등급이다. 최적기 클래스는 주어진 매개변수로 초기화되지만 텐서가 필요하지 않음을 기억해야 한다. 최적기는 특정 모델을 훈련하기 위해 속도와 성능을 향상시키기 위해 사용된다. TensorFlow의 기본 최적기는 다음과 같다. 이 챕터에서는 TensorFlow를 사용한 XOR 구현에 대해 알아보십시오. TensorFlow에서 XOR 구현을 시작하기 전에 XOR 테이블 값을 확인하십시오. 이것은 암호화 및 암호 해독 과정을 이해하는 데 도움이 될 것이다.XOR 암호 해독법은 기본적으로 적절한 키와 일치하는 랜덤 암호화 키를 생성하여 브뤼트 힘 방법으로는 해독하기 어려운 데이터를 암호화하는 데 사용된다. XOR Cipher를 이용한 구현의 개념은 XOR 암호화 키를 정의한 다음, 사용자가 암호화를 시도하는 이 키로 지정된 문자열에 있는 XOR 조작을 실시하는 것이다. 이제 우리는 아래에 언급된 텐서플로우를 이용한 XOR 구현에 초점을 맞출 것이다: 구배 최적화는 데이터 과학에서 중요한 개념으로 간주된다. 경사 강하 최적화의 구현을 이해하려면 아래 단계를 고려하십시오. 경사 강하 최적화를 정의하는 데 필요한 모듈 및 x 및 y 변수의 선언을 포함하십시오. 부분미분방정식(PDE)은 여러 독립변수의 알 수 없는 기능을 갖는 부분파생상품을 포함하는 미분방정식이다. 부분 미분 방정식과 관련하여, 우리는 새로운 그래프를 만드는 것에 초점을 맞출 것이다.

RNN과 텐서플로우 심화 활용방법

IT 트렌드

우리는 우리의 요구조건에 따라 텐서를 바꿀 수 있다. 첫 번째 값(-1)은 전달된 데이터의 양에 따라 해당 치수를 동적으로 형성하는 함수를 말한다. 두 개의 중간 치수는 이미지 크기(즉, 28 x 28)로 설정된다.28 x 28의 치수를 가진 두 개의 층의 Stride 2 풀링 후 출력물을 14 x 14 또는 최소 7 x 7 x,y 좌표와 64개의 출력 채널로 평탄화시키자. "밀도" 층과 완전히 연결된 것을 만들려면, 새로운 모양이 [-1, 7 x 7 x 64]가 되어야 한다. 이 계층에 대해 가중치와 바이어스 값을 설정한 다음 ReLU로 활성화할 수 있다.필요한 최적기와 함께 특정한 소프트맥스 활성화가 있는 또 다른 계층은 정확도 평가를 정의하며, 이는 초기화 연산자를 설정한다. 녹음 변수를 설정해야죠. 이것은 데이터의 정확성을 저장하기 위한 요약을 추가한다. 반복신경망은 순차적 접근법을 따르는 심층 학습 지향 알고리즘의 일종이다. 신경망에서는, 우리는 항상 각 입력과 출력이 다른 모든 계층과 독립되어 있다고 가정한다. 이러한 유형의 신경망은 순차적으로 수학적 계산을 수행하기 때문에 반복이라고 불린다. 반복적인 신경망을 훈련시키기 위해 다음 단계를 고려한다. 1단계: 데이터 세트의 특정 예를 입력하십시오. 2단계: 네트워크는 무작위로 초기화된 변수를 사용하여 예를 들어 몇 가지 계산을 계산한다. 3단계: 예측된 결과를 계산한다. 4단계: 실제 결과와 예상 값을 비교하면 오류가 발생한다. 5단계: 오류를 추적하기 위해 변수 또한 조정되는 동일한 경로를 통해 전파된다. 6단계: 출력을 얻기 위해 선언된 변수가 올바르게 정의되었음을 확신할 때까지 1단계부터 5단계까지의 단계를 반복한다. 7단계: 보이지 않는 새로운 입력을 얻기 위해 이러한 변수를 적용하여 체계적인 예측을 한다. 반복적인 신경망을 나타내는 체계적인 접근방식은 아래에 설명되어 있다. 이 섹션에서는 TensorFlow를 사용하여 반복적인 신경망을 구현하는 방법을 배우게 된다. 1단계: TensorFlow는 반복적인 신경 네트워크 모듈의 특정 구현을 위한 다양한 라이브러리를 포함한다. 위에서 언급한 바와 같이, 도서관은 반복적인 신경 네트워크 구현의 주요 부분을 구성하는 입력 데이터를 정의하는 데 도움을 준다. 2단계: 우리의 주된 동기는 반복적인 신경망을 사용하여 이미지를 분류하는 것이다. 여기서 우리는 모든 이미지 행을 픽셀의 순서로 간주한다. MNIST 영상 형상은 구체적으로 28*28 px로 정의된다. 이제 우리는 언급된 각 샘플에 대해 28단계의 28단계를 다룰 것이다. 입력 매개변수를 정의하여 순차 패턴이 수행되도록 할 것이다.3단계: RNN에서 정의된 함수를 사용하여 결과를 계산하여 최상의 결과를 얻으십시오.

 

여기서 각 데이터 형태를 현재 입력 형태와 비교하고 그 결과를 계산하여 정확도를 유지한다. 4단계: 이 단계에서, 우리는 계산 결과를 얻기 위해 그래프를 시작할 것이다. 이것은 또한 시험 결과의 정확도를 계산하는 데 도움이 된다.TensorFlow에는 TensorBoard라고 하는 시각화 도구가 포함되어 있다. 데이터 흐름 그래프를 분석하는 데 사용되며 기계 학습 모델을 이해하는 데도 사용된다. TensorBoard의 중요한 특징에는 수직 정렬에 있는 그래프의 매개변수와 세부사항에 대한 다양한 유형의 통계 뷰가 포함된다. 심층신경망은 최대 36,000개의 노드를 포함한다. TensorBoard는 이러한 노드를 높은 수준의 블록에서 붕괴시키고 동일한 구조를 강조하는데 도움이 된다. 이를 통해 계산 그래프의 1차 부분에 초점을 맞춘 그래프를 더 잘 분석할 수 있다. TensorBoard 시각화는 사용자가 노드를 이동, 확대/축소 및 확장하여 세부 정보를 표시할 수 있는 매우 대화형이라고 한다. 다음 도식표시는 TensorBoard 시각화의 완전한 작동을 보여준다.알고리즘은 노드를 상위 레벨 블록으로 축소하고, 고도 노드를 분리하는 구조가 동일한 특정 그룹을 강조한다. 따라서 만들어진 TensorBoard는 유용하며 기계 학습 모델의 튜닝에도 동일하게 중요하게 취급된다. 이 시각화 도구는 구성 로그 파일에 대해 설계되었으며 요약 정보와 표시해야 할 세부 정보가 포함되어 있다. 다음 코드의 도움을 받아 TensorBoard 시각화의 데모 예제에 초점을 맞추자.워드 임베딩은 단어와 벡터, 실제 숫자와 같은 별개의 개체로부터 매핑되는 개념이다. 그것은 기계학습에 있어서 입력에 중요하다. 이 개념에는 표준 기능이 포함되어 있어 이산 입력 객체를 유용한 벡터로 효과적으로 변환한다. 단어 엠베딩 입력의 예시는 다음과 같다. 워드2vec는 감독되지 않은 워드 임베딩 기법에 사용되는 가장 일반적인 방법이다. 그것은 주어진 입력 단어가 건너뛰기를 사용하여 단어의 문맥을 예측하는 방식으로 모델을 훈련시킨다. TensorFlow는 더 높은 수준의 정교함과 최적화 그리고 멀티스레딩 개념과 더 높은 수준의 추상화를 사용하여 이러한 종류의 모델을 구현하는 많은 방법을 가능하게 한다.단일층 지각변동을 이해하기 위해서는 인공신경망(ANN)을 이해하는 것이 중요하다. 인공신경망은 정보처리시스템이며, 그 메커니즘은 생물학적 신경회로의 기능성에 영감을 준다. 인공 신경 네트워크는 서로 연결된 많은 처리 단위를 가지고 있다. 다음은 인공신경망의 도식표현이다. 도표는 숨겨진 단위가 외부 계층과 통신한다는 것을 보여준다. 입력과 출력 단위는 네트워크의 숨겨진 레이어를 통해서만 통신한다.