Google cloud platform
CORS 해결하기
CORS 해결하기
2021.09.01개요 https://github.com/lllilllilllilili/video-intelligence-demo-app GitHub - lllilllilllilili/video-intelligence-demo-app: 영상 데이터 분석을 합니다. 영상 데이터 분석을 합니다. Contribute to lllilllilllilili/video-intelligence-demo-app development by creating an account on GitHub. github.com 이 프로젝트를 Clone받아서 API 테스트 중 자동화 되지 않고 있어서(영상 업로드 > 전처리 > 결과 파일 Web에 렌더링) 자동화를 시키는것을 목표로 프로젝트를 진행했습니다. 문제발생 자동화를 위해 처음 생각한 아키텍처는 동..
GCP41 :: 구글 클라우드 플랫폼 입문
GCP41 :: 구글 클라우드 플랫폼 입문
2020.10.07프로젝트는 테넌트 라고 불리는 개념에 해당하는 것입니다. 해당 프로젝트에 등록된 사용자 계정만이 프로젝트 안의 리소스를 조작할 수 있게 됩니다. 레거시 네트워크는 모든 지역에 걸쳐서 하나의 서브넷이 구성됩니다. 반면에 서브넷 네트워크는 지역마다 개별 서브넷이 존재합니다. gcloud 명령어는 GCP의 각 서비스를 관리하는 도구 입니다. gcloud 명령의 릴리즈 레벨에는 다음이 있습니다. General Availability, 라벨 x, 안정 버전 실제 운용 용도로 사용가능 Beta, 라벨 beta, 동작하지만 해결되지 않은 문제가 포함되어 있을 가능성이 있는 명령. 서비스 레벨 계약 대상에서 제외 Alpha, 라벨 alpha, 알파 버전 릴리즈 명령으로 예고없이 변경될 수 있음 SLA대상에서 제외 Pr..
GCP39 :: Media(번역) - BigQuery
GCP39 :: Media(번역) - BigQuery
2020.10.02ㅡ. 스탠다드SQL 빅쿼리는 2011 표준화된 안시 SQL 에 따르는 Standard SQL을 더 선호합니다. 빅쿼리를 사용할때 자동적으로 생성하고 스케쥴해주고 쿼리잡을 실행해줍니다. 빅쿼리는 두가지 모드로 실행됩니다. :: interactive, batch Interactive(on-demand) : 가능한한 많이 실행됩니다. 제한이 따릅니다. Batch queries : 빅쿼리 공유 리소스 풀에서 유후 자원을 사용할 수 있도록 즉시 배치 쿼리가 대기열에 저장되고 시작됩니다. 단 몇분만에 실행됩니다. interactive 모드와 다르게 동시 요금 제한에 따른 제약이 없습니다. ㅡ. 빅쿼리 테이블 타입 모든 비구커리 테이블은 컬럼 네임을 가지고 있는 스키마 형태로 정의도비니다. 컬럼 네임에는 데이터 타입..
GCP32 :: VM 인스턴스에 대한 액세스 관리
GCP32 :: VM 인스턴스에 대한 액세스 관리
2020.09.03ㅡ. 시작 Linux VM 인스턴스 실행중인 상태에서 인스턴스에 대해서 사용자 혹은 앱 엑세스 공유 또는 제한할 수 있습니다. ㅡ. OS 로그인 Compute Engine에서 IAM 역할을 사용할 수 있고 Linux 인스턴스에 대한 SSH 액세스를 관리할 수 있습니다. I. 개요 게스트 환경을 설치 업데이트 > 프로젝트 or 개별 인스턴스에 OS로그인 기능 사용 설정 > 자신, 프로젝트 구성원 또는 조직 구성원에게 필요한 IAM역할 부여 > 자신, 프로젝트 구성원 사용자 계정에 커스텀 SSH키 추가 > 인스턴스 연결 II. 제한사항 OS로그인은 구글 쿠버네티스 엔진에서 지원되지 않습니다. 또한, Fedora CoreOS이미지는 OS로그인을 지원하지 않습니다. III. Step 1단계. 인스턴스에 최신버전..
GCP22 :: Web배포시 고려할 점
GCP22 :: Web배포시 고려할 점
2020.08.21본 포스팅은 메모 형식으로 작성된 게시글 입니다. 보시는데 다소 불편하실 수 있습니다. ㅠ private, public subnet-> vm -> 이것저것 -> lb -> lb firewall (외부IP 대역 허용, 443(https), 80(http) filter 추가) -> public 베스천vm -> private subnet 에 nat 로통신해서 외부 library 접속 가능 참고로 베스천vm은 ssh로 내부 ip에 접속하는 용도이다. ㅡ. VPC 생성 ㅡ. 방화벽 규칙 SSH 접속을 하기 위해서 TCP::20 그외에 Load-Balancing TCP::80(http), 443(https) 설정합니다. I. SSH ll. LB ㅡ. vm생성 #! /bin/bash apt-get update apt..
GCP21 :: Nginx 통해 배포된 Compute Engine 에 부하분산기 달기(2)
GCP21 :: Nginx 통해 배포된 Compute Engine 에 부하분산기 달기(2)
2020.08.21ㅡ. 스냅샷 만들기 스냅샷을 가지고 디스크를 생성합니다. ㅡ. 디스크 만들기 스냅샷으로 이미지를 생성합니다. ㅡ. 이미지 만들기 생성된 이미지를 통해서 인스턴스 템플릿을 만들자. ㅡ. 부팅디스크 만들기 ㅡ. 인스턴스템플릿 만들기 인스턴스 템플릿으로 인스턴스 그룹을 생성합니다. ㅡ. 인스턴스 그룹 만들기 다중 영역을 위해서 하나더 만든다. http 를 통해 아이피로 들어가게 되면 로드 밸런싱을 수행한 채로 웹사이트가 동작하는것을 확인할 수 있다.
GCP19 :: CPU와 메모리 관계(2)
GCP19 :: CPU와 메모리 관계(2)
2020.08.21ㅡ. 메모리 계층 구조 메모리 계층 구조를 보면 : 레지스터>캐시>메모리>하드디스크 순으로 되어있다. 만약 CPU가 한번에 50개 데이터를 처리할 수 있고 메모리가 25개의 데이터를 처리할 수 있다고 가정하면 process : 메모리에서 25개를 처리하고 CPU에서 25개를 처리합니다. CPU가 전부 처리할 수 있지만 전달된 데이터만 처리하기 때문에 CPU가 높은것이 성능에 크게 좌우하지 않는다. CPU와 메모리가 서로 나눠서 처리한다. 결과적으로 연산이 많다면, CPU 사양이 높은것을 고르고 API 로 말아서 데이터를 보내주는 작업이라면, 메모리 사양이 높은것을 고르자.
GCP18 :: LB(Load-Balancer)
GCP18 :: LB(Load-Balancer)
2020.08.21workflow는 다음과 같다. VM인스턴스 -> 스냅샷 -> 디스크 -> 이미지 -> 인스턴스템플릿 -> 인스턴스 그룹 -> 로드 밸런서 #! /bin/bash apt-get update apt-get install -y apache2 cat [ 부하 분산 ] 탭이 있다. 인터넷 트래픽 부하분산을 선택했다. 백엔드 서비스를 생성하고 새백엔드 옵션을 이렇게 주었다. 백엔드를 하나 더 추가하자. 유럽 인스턴스 그룹을!! 그 다음에 해야할것은 상태 확인 부분에서 상태 확인 생성이다. 이제 생성을 누르면 백엔드 구성이 완료된다. 그 다음에 호스트및 경로규칙을 누른다. [ 호스트 및 경로규칙 ] 은 규칙에 따라 라우팅 방식을 지정할 수 있지만! 지정하지 않을 수 도 있다. 그 다음에 프론트엔드 구성을 누른다. ..
bigQuery에서 pub/sub 으로 불러오고, compute engine 에 올려서 event stream 수행하기
bigQuery에서 pub/sub 으로 불러오고, compute engine 에 올려서 event stream 수행하기
2020.08.21bigQuery table 에서 event stream 을 수행하면서 publisher 의 topic에 message를 전송하고 이를 apache-beam 상에서 코드로 동작시켜 ETL을 수행하는것까지 진행!! event stream은 local에서 compute engine 동작시켜서 stream이 끝날 때까지 수행하는것을 역할로 잡았습니다. 미리 public-data-set 의 stackoverflow dataset을 bigQuery table로 Import 했습니다. 제가 이 테스팅을 진행하는건 tags 와 view_count를 가지고 중복되는 tags 이름에 총 몇번의 view_count를 가지고 있는지 확인하려고 합니다. (물론 | 기준으로 split 해야합니다.) pub/sub에서 stream..
데이터 스튜디오 이용해 bigQuery 시각화
데이터 스튜디오 이용해 bigQuery 시각화
2020.08.20dataStudio 가 bigQuery에 접근할 때 bigQuery connector 를 사용하게 됩니다. 이후에 약관동에에 대해서 전부 동의해줍니다. 보고서에 데이터를 추가하고, 검색어에 bigQuery를 입력합니다. 권한에 대해 승인하고 [Project선택] - [Public Dataset 선택] - [tableset 선택] 이후 보고서에 데이터를 추가합니다. natality에 대한 테이블 정보를 확인해보겠습니다. 레포트가 생성되면 데이터소스를 클릭해서 구글 docs에 나와있는 1단계는 모두 끝났습니다. ㅡ. 막대 그래프 생성하기 차트에서 막대그래프를 선택합니다. 이후에 측정기준에 source_year 을 찾고, 측정항목에 birth_count 를 생성 후 COUNT(is_male)을 입력하면 이와 ..
GCP14 :: streaming 데이터 처리
GCP14 :: streaming 데이터 처리
2020.08.18ㅡ. 시작 클라우드 pub/sub 을 이용합니다. (서버리스 실시간 메시지 서비스) 클라우드 pub/sub 의 기능은 초당 백만 개 이상의 메시지로 확장시킬 수 있습니다. 전체 데이터 플로우는 빅쿼리 이벤트 테이블에서 데이터를 읽어들여서 클라우드 pub/sub로 메시지를 송신하는 것을 의미합니다. pub/sub으로 전송되는 코드가 실패할경우에 자동으로 재시작할 수 있도록 구글 컨테이너 엔진을 사용해 도커 컨테이너에서 시뮬레이션을 스크립트를 다시 재시작 해야 합니다. ㅡ. workflow bigQuery에서 데이터를 불러와서 topic에 넣고 subscription 에서는 topic의 내용을 받아와서 dataflow로 ETL처리후에 bigQuery로 내보내는 과정을 수행합니다. ㅡ. 정지시간 pub/sub..
GCP13 :: dataflow Map 활용, Lambda
GCP13 :: dataflow Map 활용, Lambda
2020.08.18Lambda 를 사용하기 전 import apache_beam as beam def strip_header_and_newline(text): return text.strip('\n') def strip_header_and_newline2(text): return text.strip('#') with beam.Pipeline() as pipeline: plants = ( pipeline | 'Gardening plants' >> beam.Create([ '# 🍓Strawberry\n', '# 🥕Carrot\n', '# 🍆Eggplant\n', '# 🍅Tomato\n', '# 🥔Potato\n', ]) | 'Strip header' >> beam.Map(strip_header_and_newline) #| '..