반응형

VPN 

 

2개의 서로 다른 Network 간에 통신을 할때 사용된다. 

2개의 서로 다른 Network 는 GCP 내부의 서로 다른 Network 또는 GCP 내 Network 와 on-premiss Network 를 포함한다.

 

Cloud VPN gateway

 

Regional external IP 를 사용하는 Regional 리소스 이다. 

 

VPN Tunnel 을 VPN Gateway 를 연결해서 암호화된 트래픽을 전달하는 가상의 매체 역할을 한다. 

따라서 두개의 VPN gateway 를 연결 하기 위해서는 VPN Tunnel 을 설정해야 한다. 

VPN gateway 는 1460 bytes 보다 큰것을 전송할 수 없다. 

 

출처 : https://cloud.google.com/vpn/docs/concepts/overview

 

728x90
반응형
반응형

Linux Academy 에서 Practice Exam 문제를 풀고나서 틀린것들 중에 몇가지 정리한 부분이다.

여러번 볼 예정이어서 내용이 계속 추가될수 있다.

 

## point-in-time recovery

 

특정 시점으로 복구하는 기능이다. 클론 생성과 비슷하게 기존 인스턴스의 설정을 상속하여 항상 새로운 인스턴스를 만든다. point-in-time recovery 를 수행 하려면 소스 인스턴스에서 백업 자동화 및 바이너리 로깅 사용설정이 선택된 상태여야 한다.

 

https://cloud.google.com/sql/docs/mysql/backup-recovery/restore

 

인스턴스 복원 개요  |  MySQL용 Cloud SQL  |  Google Cloud

이 페이지에서는 백업에서 인스턴스를 복원하거나 point-in-time recovery(PITR)를 실행하기 전에 알아야 할 정보를 제공합니다. 복원 또는 point-in-time recovery 실행에 대한 단계별 지침은 인스턴스 복구를 참조하세요. 복원 실행에 관한 일반적인 도움말 백업을 사용하여 같은 인스턴스 또는 다른 인스턴스로 인스턴스를 복원할 때는 다음 사항에 유의하세요. 복원 작업은 대상 인스턴스의 모든 데이터를 덮어씁니다. 복원 작업 중에는

cloud.google.com

 

## DaemonSet

 

클러스터 전체에 포드를 띄울때 사용한다. DaemonSet 을 사용하면 그 포드는 클러스터 전체 노드에 떠있게 된다. 만약 노드가 추가되거나 삭제 되면 DaemonSet 으로 띄운 포드도 추가되고 삭제된다.

 

## Fire Wall Priority

 

방화벽의 우선순위는 0~65535 사이의 정수이며 낮은 정수는 높은 우선순위를 나타낸다.

 

https://cloud.google.com/vpc/docs/firewalls#priority_order_for_firewall_rules

 

방화벽 규칙 개요  |  VPC  |  Google Cloud

Google Cloud Platform(GCP) 방화벽 규칙을 사용하면 지정한 구성에 따라 가상 머신(VM) 인스턴스와의 트래픽을 허용하거나 거부할 수 있습니다. 사용 설정한 GCP 방화벽 규칙은 인스턴스의 구성 및 운영 체제와 상관없이 인스턴스를 보호할 수 있도록 항상 실행됩니다. 아직 시작하지 않은 인스턴스도 마찬가지입니다. 모든 VPC 네트워크는 분산형 방화벽으로 작동합니다. 방화벽 규칙은 네트워크 수준에서 정의되지만 연결은 인스턴스별로 허용되거나

cloud.google.com

 

## Primitive Role

 

roles/owner, roles/editor, roles/viewer 가 있다.

프로젝트와 관련하여 광범위한 권한을 부여하고 싶거나 개발 또는 테스트 환경에서 권한을 부여할때 사용한다.

팀원들의 권한을 세분화 할 필요가 없는 소규모 팀에서 사용한다.

 

https://cloud.google.com/iam/docs/using-iam-securely#least_privilege

 

안전하게 IAM 사용  |  Cloud IAM 문서  |  Google Cloud

소개 이 페이지에서는 Cloud IAM 사용 시 유의해야 할 보안 권장사항을 설명합니다. 이 페이지는 Cloud IAM에 능숙한 사용자를 위해 마련한 것입니다. Cloud IAM을 처음 시작한다면 이 지침에서는 사용법을 가르쳐 주지 않습니다. 대신에 신규 사용자는 Cloud IAM 빠른 시작부터 시작해야 합니다. 최소 권한 ❑   보안이 중요한 리소스라면 roles/owner, roles/editor, roles/viewer과 같은 기본 역할은 피하세요.

cloud.google.com

 

## Flow log

 

VPC 흐름 로그는 VM 인스턴스에서 전송되거나 수신되는 네트워크 흐름의 샘플을 기록한다. 이러한 로그를 네트워크 모니터링, 포렌식, 실시간 보안 분석, 비용 최적화에 사용할 수 있다.

 

https://cloud.google.com/vpc/docs/using-flow-logs

 

VPC 흐름 로그 사용  |  VPC  |  Google Cloud

VPC 흐름 로그는 VM 인스턴스에서 전송되거나 수신되는 네트워크 흐름의 샘플을 기록합니다. 이러한 로그를 네트워크 모니터링, 포렌식, 실시간 보안 분석, 비용 최적화에 사용할 수 있습니다. Stackdriver Logging에서 흐름 로그를 보고, Stackdriver Logging 내보내기 시 지원되는 모든 대상(Cloud Pub/Sub, BigQuery 등)으로 로그를 내보낼 수 있습니다. 흐름 로그는 Compute Engine VM에서 연결별로 집

cloud.google.com

## dry-run flag in BigQuery

 

쿼리 실행시 --dry run 플래그를 사용하면 쿼리에서 읽은 바이트 수를 추정 할 수 있다. 연습 실행에서 반환된 추정값을 사용하여 가격 계산기에서 쿼리 비용을 계산할 수 있다. 연습 실행에 대한 요금은 청구되지 않는다. 

 

https://cloud.google.com/bigquery/docs/dry-run-queries?hl=ko

 

쿼리 연습 실행 수행  |  BigQuery  |  Google Cloud

CLI에서 쿼리를 실행할 때 --dry_run 플래그를 사용하여 쿼리에서 읽은 바이트 수를 추정할 수 있습니다. API 또는 클라이언트 라이브러리를 사용하여 쿼리 작업을 제출할 때 dryRun 매개변수를 사용할 수도 있습니다. 연습 실행에서 반환된 추정값을 사용하여 가격 계산기에서 쿼리 비용을 계산할 수 있습니다. 연습 실행에 대한 요금은 청구되지 않습니다. 필요한 권한 쿼리 작업을 실행하려면 최소한 bigquery.jobs.create 권한을 부여받아야

cloud.google.com

## SSL proxy

 

SSL proxy 는 SSL offload 를 사용하는 external TCP Load Balancer 이다.

 

https://cloud.google.com/load-balancing/docs/load-balancing-overview

 

부하 분산 개요  |  부하 분산  |  Google Cloud

이 문서는 Google Cloud Platform에서 사용할 수 있는 다양한 부하 분산 솔루션에 대한 개요를 제공합니다. Google Cloud Platform Load Balancing은 단일 리전 또는 여러 리전에서 부하 분산된 컴퓨팅 리소스를 분배하고, 고가용성 요구사항을 충족하고, 리소스를 단일 애니캐스트 IP 뒤에 배치하고, 지능형 자동 확장으로 리소스를 확장 또는 축소하는 기능을 제공합니다. Cloud Load Balancing은 Cloud C

cloud.google.com

## Managed Instance Group autoscaler

 

Mangaged Instance Group 의 autoscaler 는 특정 metric 을 베이스로 작동한다. 이때 기준은 그룹에 있는 모든 instance 를 기준으로 한다. 

 

https://cloud.google.com/compute/docs/autoscaler/?hl=ko

 

인스턴스 그룹 자동 확장  |  Compute Engine 문서  |  Google Cloud

관리형 인스턴스 그룹은 부하의 증가 또는 감소에 따라 관리형 인스턴스 그룹에서 인스턴스를 자동으로 추가하거나 삭제할 수 있게 해주는 자동 확장 기능을 제공합니다. 자동 확장을 통해 앱에서 트래픽 증가 처리가 원활해지고, 리소스에 대한 요구가 줄면 비용을 절감할 수 있습니다. 자동 확장 정책을 정의하면 자동 확장 처리에서 측정된 부하를 기준으로 자동 확장을 수행합니다. 자동 확장은 부하가 많아지면 인스턴스 그룹에 인스턴스를 추가(확장)하고, 인스턴스 수요가

cloud.google.com

## App-Engine deploy option

 

--no-promote : 모든 트래픽을 해당 버전으로 자동으로 라우팅 하지 않는다.

기본적으로 새로운 버전을 deploy 하게되면 100% 의 트래픽을 받게 된다.

 

https://cloud.google.com/appengine/docs/standard/nodejs/testing-and-deploying-your-app

불러오는 중입니다...

## App Engine Environment

 

Standard Flexible

- 소스 코드가 다음과 같이 특정 버전의 지원되는 프로그래밍 언어로 작성된 경우:

Python 2.7, Python 3.7

자바 8, 자바 11(베타)

Node.js 8, Node.js 10

PHP 5.5, PHP 7.2, PHP 7.3(베타)

Ruby 2.5(베타)

Go 1.9, Go 1.11, Go 1.12

 

- 무료 또는 저렴한 비용으로 실행되며 필요할 때 필요한 만큼만 지불할 수 있는 경우. 예를 들어 트래픽이 없는 경우, 애플리케이션을 0개 인스턴스까지 조정할 수 있다.

 

- 트래픽이 갑자기 극단적으로 상승함에 따라 즉각적인 확장이 필요한 경우

- 소스 코드가 다음과 같이 모든 버전의 지원되는 프로그래밍 언어로 작성된 경우:

Python, 자바, Node.js, Go, Ruby, PHP, .NET

 

- 커스텀 런타임 또는 기타 프로그래밍 언어로 작성된 소스 코드가 포함된 Docker 컨테이너에서 실행되는 경우

 

- 네이티브 코드를 포함하는 프레임워크를 사용하거나 의존하는 경우

 

- Compute Engine 네트워크에 있는 Google Cloud Platform 프로젝트의 리소스 또는 서비스에 액세스하는 경우

 

https://cloud.google.com/appengine/docs/the-appengine-environments

 

App Engine 환경 선택하기  |  App Engine 문서  |  Google Cloud

App Engine 애플리케이션은 가변형 환경 또는 표준 환경에서 실행할 수 있습니다. 또한 애플리케이션이 두 환경을 동시에 사용하도록 선택할 수도 있으며 이를 통해 서비스는 각 환경의 개별 이점을 활용할 수 있게 됩니다. App Engine 환경 App Engine은 마이크로서비스 아키텍처를 사용하여 설계된 애플리케이션에 매우 적합하며, 두 환경 모두 사용하는 경우 특히 그렇습니다. 다음 섹션을 사용하여 어느 환경이 애플리케이션의 요구사항을 가장 잘 충

cloud.google.com

 

## Cloud Strage

 

정적 웹 사이트는 저 비용으로 Cloud Storage 를 통해 서비스 할수 있다.

 

https://cloud.google.com/storage/docs/hosting-static-website?hl=ko

 

정적 웹사이트 호스팅  |  Cloud Storage  |  Google Cloud

CNAME 레코드 만들기 CNAME 레코드는 DNS 레코드의 한 유형입니다. 이 레코드는 URL을 요청하는 트래픽을 도메인에서 제공할 리소스(이 경우 Cloud Storage 버킷에 있는 객체)로 전달합니다. www.example.com의 경우, CNAME 레코드에는 다음 정보가 포함될 수 있습니다. NAME TYPE DATA www.example.com CNAME c.storage.googleapis.com. CNAME 리디렉션에 대한 자세한 내용은 별

cloud.google.com

 

## Cloud Storage Content-Type

 

Content-Type 을 통해 브라우저가 객체를 제대로 렌더링할 수 있다. pdf 일 경우 Object의 Content-Type 을 "application/pdf" 로 설정하면 파일 클릭시 다운로드 되는게 아니라 웹 브라우저상에서 볼수 있게 된다.

 

https://cloud.google.com/storage/docs/metadata?hl=ko

 

객체 메타데이터  |  Cloud Storage  |  Google Cloud

이 페이지에서는 객체와 함께 Cloud Storage에 저장되는 메타데이터 필드를 설명합니다. 객체의 메타데이터를 보고 설정하는 방법을 알아보려면 객체 메타데이터 보기 및 편집하기를 참조하세요. 소개 Cloud Storage에 저장된 객체에는 연결된 메타데이터가 있습니다. 메타데이터는 객체의 속성을 식별하며 객체에 액세스할 때 객체를 어떻게 처리해야 하는지 지정합니다. 메타데이터는 키:값 쌍으로 존재합니다. 예를 들어 객체의 스토리지 클래스는 메타데이터

cloud.google.com

 

 

 

728x90
반응형
반응형

VPC network

기본적으로 독립적인 private network 이다.

서로 다른 network 간에 internal IP 로 통신을 하기 위해서는 VPC peering 또는 VPN 설정이 필요하다.

 

Instance 간 External IP 를 통한 연결

다른 VPC  network, 다른 region, 다른 zone 일 경우에도 External IP 를 통한 연결은 가능하다. 

Instance 에 대한 access는 오직 ICMP firewall rule 에 의해서 컨트롤 되기 때문이다. (0.0.0.0/0)

 

Instance 간 Internal IP 를 통한 연결

기본적으로 동일한 VPC Network상에 존재하지 않으면 불가능 하다.

단, 동일한 VPC Network 에 속한 instance 들은 zone, region다르더라도 internal IP 을 통한 연결이 가능하다.

 

위 그림을 보자.

Instance Network Region
mynet-us-vm mynetwork us-cental1
mynet-eu-vm mynetwork europe-west1
managementsubent-us-vm managementnet us-cental1
privatenet-us-vm privatenet us-cental1
privatenet-eu-vm privatenet us-cental1

 

Internal IP 접속 여부

  mynet-us-vm mynet-eu-vm managementsubent-us-vm privatenet-us-vm privatenet-eu-vm
mynet-us-vm - O X X X
mynet-eu-vm O - X X X
managementsubent-us-vm X X - X X
privatenet-us-vm X X X - O
privatenet-eu-vm X X X O -

위 표를 보면 동일 VPC  Network 가 아닌 instance 는 Internal IP 로 ping 이나가질 않는다. 

 

그래서 위 구성에서는 vm-appliance라는 instance 를 하나 더 만들었다. 이 instance 를 생성할때에 network interface 에 mynetwork, managementnet, privatent을 등록해주면 vm-appliance 에서 서로 다른 Network  에 있는 Instance  와 통신이 가능하게 된다. 

 

 

 


참고자료

https://google.qwiklabs.com/focuses/1230?parent=catalog

 

728x90
반응형
반응형

Projects

 

Project 는 Network 를 포함하고 있며 Network 에는 Subnetwork, Firewall rules, Route 가 포함된다.

 

Organization > Folders > Projects > Resources

 


Network

 

Network : 외부에서 각각의 Resource 들을 직접 접속한다. 외부에서 들어오거나 외부로 나가는 접속에 대해서 Firewall 을 사용한다. Global(Multiple Region) 또는 Regional(Single Region) 이 가능하다. 프로젝트가 생성되면 default Network 가 생성된다.

 

Subnetwork : Compute Engine instance 같이 관련된 resouce 들을 group 화 한다. Regional 만 가능하며 auto mode 와 custom mode 가 있다.

 

1. auto mode : Network 생성시 region 당 하나의 subnet이 자동으로 생성된다.

2. custom mode : Network 생성시에는 subnet이 생성되지 않는다. subnet 이 region 당 존재하지 않을 수 있고 여러개 존재할 수 있다.


 

Network 생성 방법

 

1. auto

gcloud compute networks create autoNetwork --subnet-mode=auto

2. custom

gcloud compute networks create customNetwork --subnet-mode=custom

custom 일 경우 subnet이 자동으로 생성되지 않기 때문에 subnet 도 만들어줘야 한다.

gcloud compute networks subnets create customNetwork --network=privatenet \
--region=us-central1 --range=10.0.0.0/24 --enable-private-ip-google-access

Cloud Route

 

Instance 를 Nat gateway 로 활용할 수 있다.

 

gcloud compute routes create NAME --destination-range=DESTINATION_RANGE (--next-hop-address=NEXT_HOP_ADDRESS
| --next-hop-gateway=NEXT_HOP_GATEWAY | --next-hop-instance=NEXT_HOP_INSTANCE
| --next-hop-vpn-tunnel=NEXT_HOP_VPN_TUNNEL) [--description=DESCRIPTION] [--network=NETWORK; default="default"] [--next-hop-instance-zone=NEXT_HOP_INSTANCE_ZONE] [--next-hop-vpn-tunnel-region=NEXT_HOP_VPN_TUNNEL_REGION] [--priority=PRIORITY; default=1000] [--tags=TAG,[TAG,…]] [GCLOUD_WIDE_FLAG …]

예시 )

gcloud compute routes create nat-route --network customNetwork \
--destination-range 0.0.0.0/0 --next-hop-instance privatenet-bastion \
--next-hop-instance-zone us-central1-c --tags nat-me --priority 800

--next-hop-instance : route 를 핸들링 할 instance 이름 (--next-hop-instance 을 사용할 경우 --next-hop-instance-zone 값도 필수로 넣어야 한다. )

--tags : route 를 적용할 instance 들의 모음

 

그 이외에 옵션에 대해서는 아래 참고 링크를 가보면 더 자세히 알수 있다. 


Network 관련된 IAM Role

 

Network Adminnetworks, subnetworks, addresses, routes등에 대한 create, modify, delete 권한 (제외 : firewall rule, SSL certificates - view)

Security Adminfirewall rule, SSL ceritifates 에 대한 create, modify 권한.

Network Viewer읽기만 가능한 권한



참고자료

https://www.qwiklabs.com/focuses/556?parent=catalog

https://cloud.google.com/sdk/gcloud/reference/compute/routes/create

728x90
반응형
반응형

HTTP(S) 에 대한 global Load Balancer 이다.

 

1. forwarding rule 은 다이렉트로 request 를 target proxy 로 전달한다.

2. target proxy 는 url map 을 통해서 적절한 backend service 로 라우팅 해준다.

3. backend service 는 request 를 서버 용량, 상태에 따라서 적절한 backend instance 로 전달한다. 각각의 backend instance는 health check 를 사용한다.

 

출처 : https://cloud.google.com/load-balancing/docs/https/

 

LoadBalancing 비교

Internal or external Load balancer type Regional or global Supported network  tiers Proxy or pass-through Traffic type
Internal Internal TCP/UDP Regional

Premium only Pass-through TCP or UDP
Internal HTTP(S) Proxy HTTP or HTTPS
External Network TCP/UDP Premium or Standard Pass-through TCP or UDP
TCP Proxy Global in Premium Tier Proxy TCP
SSL Proxy Proxy SSL
HTTP(S) Proxy HTTP or HTTPS

(출처 : https://cloud.google.com/load-balancing/docs/load-balancing-overview?hl=en)

 

다른글

2019/07/28 - [Development/GoogleCloud] - [GCP]Network TCP/UDP Load Balancing

 

참고 자료

https://cloud.google.com/load-balancing/docs/https/

https://google.qwiklabs.com/focuses/558?parent=catalog

https://cloud.google.com/sdk/gcloud/reference/compute/instance-groups/set-named-ports

728x90
반응형

'Development > GoogleCloud' 카테고리의 다른 글

[GCP] Google Cloud Storage Options.  (0) 2019.12.12
[GCP]VPC Network  (0) 2019.08.03
[GCP] Network  (0) 2019.08.01
[GCP]Network TCP/UDP Load Balancing  (0) 2019.07.28
[GCP] Google Cloud 컨테이너 레지스트리에 이미지 push 하기  (0) 2018.10.19
반응형

Network Load Balancer 는 같은 region의 vm 들의 트래픽을 분배해준다.

다시 말해 동일한 Network Load Balancer 를 사용하는 vm 들은 동일한 region에 존재한다.

 

다음과 같은 방법으로 Network Load Balancer 를 생성할 수 있다.

 

1. target pool 생성

target pool 은 forwarding rule 에 정의된 traffic을 받을수 있는 instance group 이다.

gcloud compute target-pools create nginx-pool

 

2. instance group 생성

gcloud compute instance-groups managed create nginx-group \
         --base-instance-name nginx \
         --size 2 \
         --template nginx-template \
         --target-pool nginx-pool

template 에 정의된 nginx-template 은 미리 만들어야 한다. 

 

3. forwarding rule  생성

gcloud compute forwarding-rules create nginx-lb \
         --region us-central1 \
         --ports=80 \
         --target-pool nginx-pool

 

다른글

2019/07/31 - [Development/GoogleCloud] - [GCP]Http Load Balancer

 

참고자료

https://google.qwiklabs.com/focuses/558?parent=catalog&qlcampaign=1c-ccace-12

https://cloud.google.com/load-balancing/docs/network/

 

728x90
반응형

'Development > GoogleCloud' 카테고리의 다른 글

[GCP] Google Cloud Storage Options.  (0) 2019.12.12
[GCP]VPC Network  (0) 2019.08.03
[GCP] Network  (0) 2019.08.01
[GCP]HTTP(S) Load Balancing  (0) 2019.07.31
[GCP] Google Cloud 컨테이너 레지스트리에 이미지 push 하기  (0) 2018.10.19
반응형

오랜만에 Google 세미나에 다녀왔다.

 

지난 4월 9일 ~ 11일 미국에서 열렸던 Next '19 에서 발표된 내용들을 국내에서 소개하는 자리였다. 

총 3개의 트랙으로 진행되었고 각각의 트랙은 "인프라 현대화 및 하이브리드 클라우드", "데이터 매니지먼트", "스마트 애널리틱스" 로 나눠져 있었다. 

 

 


 

인프라 현대화와 하이브리드 클라우드 오버뷰 및 새로운 기능 소개 - 이재근, 구글 클라우드 Field Sales Representative

현재 시스템들이 온프레미스 형태로 운영되고 있는 환경들이 많다. 그러한 환경들을 컨테이너 형태로, 그리고 Google Cloud 를 사용할수 있도록 어떻게 가이드를 하는지 보여줬다. 빅뱅 형태도 있지만 쉽지는 않고 Lift&Shift 나 Improve&Move 라는 형태도 제시를 해줬다. 다양한 상황, 또는 환경에 대해서 분석하고 검토해서 Cloud 환경으로 변화할수 있도록  마련을 하고 있다고 한다. 

그러면서 소개된 제품들이 "벨로스트라타" 와 "Anthos" 이다. 벨로스트라타는 온프레미스 환경의 어플리케이션들을 Cloud 환경으로 이전할수 있도록 도와주는 제품이다. 그리고 Anthos 는 퍼블릭과 프라이빗 클라우드 환경에서의 개발, 배포, 보안, 운영을 통합해주는 제품이다. (자세한 것은 링크를 들어가서 보는게 더 좋을것 같다. ) 

특히 Anthos는 다른 세션들에서도 자주 언급이 되었다. 온프레미스 환경, 다양한 퍼블릭 클라우드를 여러개 동시 쓰는 환경에서 Anthos 가 도움을 줄 수 있는 툴이라는 면에서 매리트가 많아 보였다. (특히 국내 시장은 더욱더 ..)

 

하이브리드 클라우드의 미래 Anthos - 정명훈, 구글 클라우드 Customer Engineer

이번 세션에도 Anthos 에 대한 내용이었다. 그럼 과연 어떻게 동작을 하는 것일까?? 세션에서 들은것만 가지고 내용을 다 이해할 수는 없지만 일단 내가 이해한 내용을 설명해 보겠다. 

GCP 영역은 퍼블릭 클라우드이다. 그리고 vShpere 부분은 이제 온프레미스쪽 영역이다. 일단 그림을 보면 GKE Connect가 각각의 영역에 존재한다. 그리고 모든 통신은 이것을 통해서만 이루어 지는것 같았다. 일종의 gateway 같은 역할을 해주는것 같다. 아마도 연결 구간이 일원화 되어있기 때문에 보안 적인 측면에서도 괜찮겠지..라는 생각을 했다. 다만 스펙은 정확히 알지 못하니 어느정도의 트래픽을 감당해 줄수 있느냐가 관건일것 같다. 그리고 들으면서 궁금했던건 stackdriver 족을 보면 온프레미스 환경쪽에서 다이렉트로 퍼블릭으로 화살표가 되어있어서 좀 의문이 들었다. 저건 그냥 저렇게 연결 해도 되는건지..(물어보지는 못했다. ㅠㅠ)

그리고 통합 빌드나 이벤트 처리에 대해서도 위와같은 구성으로 진행을 할수 있게 되어있었다. 형상관리는 Git 이 될수도 있고 다른 툴이 될수도 있다. 소스 커밋이 되면 자동으로 빌드를 하고 그리고 Slack 같은 곳에 알림 서비스 까지 제공할수 있도록 할수 있다.  (제대로 이해한건지 잘 모르겠다. ㅡㅡ;)

 

Google Kubernetes Engine과 함께하는 인프라 현대화 - 조병욱, 구글 클라우드 Customer Engineer

분명 이 세션에서 많은 것을 들은것 같은데 그때문인지 과부화가 걸린것 같다. 그래서 기억 나는 부분만 설명하겠다.

우선 이건 배포에 대해서 설명하면서 나온 그림이었다. 같은 어플리케이션을 수십대에 동일한 서버에 배포를 한다고 가정을 해보자. 당연히 같은 어플리케이션이고 서버도 숫자만 많을뿐 동일한 설정이니 잘 배포가 될거라 생각이 된다. 하지만 여지없이 실패하고 만다. 그러면서 나온 패턴인데 vm 자체를 다 이미지로 구워서 배포를 하는 패턴이다. os 포함한 모든것을 다 굽기 때문에 그만큼 동일한 환경을 유지할 수 있다. 

 

그리고 Knative 에 대해서 설명을 해주셨는데 잘 기억이 안난다. (ㅠㅠ 망함..)

 

GCP에서 개인화된 쇼핑 경험 만들기 - 박경미, 구글 클라우드 Field Sales Representative

이 세션이 마지막 세션이었는데 그전에 다른 세션도 듣긴 했으나 기억이 나는 세션만 정리하다 보니 바로 이 세션이다. 

애널리틱스 트랙의 세션이었는데 Recommendations AI 에 대한 내용이 재미있었다. 

상품 구매시 추천 상품에 대한 내용인데 아래 사진을 보자. 

왼쪽은 기존에 가지고 있던 추천 시스템으로 테스트 한 결과이고 오른쪽은 Recommendations AI 를 학습시켜서 테스트한 결과이다. 저게 아마 블랙펜서 마스크였던것 같다. 사진을 보면 오른쪽에는 블랙펜서 장갑도 나오고 피규어들도 나오지만 왼쪽은 다른 것들이 나온다. 그래서 현재 Beta 이긴 하지만 적용을 한 업체에서는 만족을 하고 있다고 한다. 

그리고 발표자분께서 말씀하시길 유투브의 시청자들의 70%정도가 추천된 영상을 본다고 한다. 자신이 의도적으로 찾아서 본 영상이 아닌 내가 보고 있던 영상을 바탕으로 추천된 영상을 보는 비율이 70% 정도라고 하니 추천이 얼마나 중요한지 알수 있었다. 

 


오랜만에 갔던 세미나여서 인지 몸은 힘들었지만 머리는 맑아지는 느낌이 들었다. 요즘 공부하면서 약간은 지쳐가고 있었는데 다시 공부의 필요성을 느끼게 되서 나 자신에게도 다행이라고 생각되었다. 이제 갔다왔으니 다시 공부를 시작해야겠다. ^^;;;

 

728x90
반응형
반응형

10월 25일 Google Cloud Summit 2018 이 삼성역 코엑스에서 열렸다.


https://cloudplatformonline.com/2018-Summit-Korea-Home.html


페이스북으로 올라온 글을 보고 신청기간에 등록을 해서 참석하게 되었다. 



Google Cloud Summit



세미나 할때마다 자주 가는 코엑스. 처음에 돌아다닐때에는 위를 보지 않아서 오른쪽 그림이 걸려있는지 몰랐다. -_-;;. 

국내에서 처음 하는 Google Cloud Summit 이어서 인지 전에 와봤던 다른 세미나보다 현수막들이 많이 달려 있는 느낌이었다.



행사 일정이다. 파란색의 낯익은 로고를 보고 정말 의외라고 생각했다.




키노트 하는 오디토리움 내부에서 봤던 로고이다. 개인적으로 왼쪽 로고와 색깔이 맘에 들었다. 



Session

(내가 메모하는 것을 귀찮아 해서 들었던 기억력을 더듬어 가면서 적는 것이기 때문에 내용이 정확하지 않을 수 있다. 아니면 내가 잘못 이해했을 수도 있다.^^;)


빅데이터와 데이터 분석 소개



수많은 데이터를 어떻게 하면 의미있는 정보로 만들것인지, 그 만드는 과정이 굉장히 어렵다. 그런 부분을 Google 에서 쉽게 접근 할수 있도록 도와 주고 있다. 그리고 BigQuery를 통해서 수백만건의 자료들을 빠르게 필터링 하거나 원하는 정보만 가져올 수 있다. 



위와 같은 형태로 수집부터 변환, 분석까지 다양한 서비스를 손쉽게 사용할 수 있도록 제공하고 있다. 



클라우드 플랫폼 정글에서 살아남기 : 하이브리드 클라우드 구성 가이드



이 세션에서는 듣다가 느낀점이 좀 많았다. 클라우드 벤더사들도 많고 하나의 벤더만 사용하면 괜찮지만 여러개의 벤더사들을 섞어서 사용할 경우 발생하는 문제점 들이다. (회사에서) 퍼블릭 클라우드 자체를 자주 사용하지 않다보니 이러한 이슈에 대해서 고민 해본적이 없었다. 


통신 비용 : 서로 다른 클라우드 간에 트랜젝션이 발생할 경우 아웃바운드, 인바운드에 대한 비용이 발생한다. 그게 계속 되고 트래픽이 많아질수록 비용은 높아진다.

성능 :  같은 서비스라도 벤더사마다 제공하는 버전이 다르고 최적화가 다를 수 있다. 그럴 경우 결론적으로 하향 평준화 된다. 성능이 낮은 쪽으로 맞춰진다는 이야기 이다. 

보안 : 이건 어떻게 보면 당연한 이야기 이다. 내부에서 발생하는 트래픽이 아닌데.. 물론 암호화를 거치기는 하겠지만 그래도 문제가 생길 가능성이 있다. 



마이크로 서비스 아키텍처 구성하기 : Kubernetes, Istio, Spinnaker, Knative


가장 관심 있었던 세션이었는데 사진 찍는것을 깜빡했다. 마이크로 서비스에 대한 다양한 관점들, 그리고 내가 몰랐던 패턴들에 대해서 설명을 들을 수 있었다. 


죽지만 다시 살아나는 피닉스 서버 패턴. 여기에서 처음 들어봤는데 한번 찾아볼만한 내용이었다. 그리고 몰랐는데 Google Container Registry 에 이미지 올리면 취약점을 자동 스캔한다는 것을 여기에서 처음 알았다. ^^;;



클라우드 앱 디버깅과 성능 모니터링 : Stackdriver



마이크로 서비스 세션에서도 들었었지만 모든 어플리케이션이 컨테이너화 되면서 모니터링, 디버깅에 대한 내용이 강조되고 있다. 그걸 좀더 손쉽게 할수 있도록 도와주는 서비스 이다. 설명을 들으면서 느꼈는데 상당히 매력적인 툴이었다. 특히 디버거나 로깅 같은 경우는 실제 소스를 재배포 하지 않고도 Logger 를 삽입한다던가 디버깅을 해볼수 있다니. 정말 내게는 매력적이었다. 로그 찍을려고 다시 이미지 구워서 올리고 재배포 하고 했었는데. 그럴 필요가 전혀 없다는 거다. -_-;;; 정말 안되는게 없는 세상이다. 



Cloud Study Jam


참여하고 있던 Cloud Study Jam 마지막 미션과제. 발표가 있었다. 



시간표에 이름이 올라와 있는 "피넛버터" 



그래서 이렇게 저 시간에 가서 무사히(?) 팀 발표를 마쳤다. 정말 허접했지만 준비하느라 걱정이 많았었다. 만든건 왜 대체 잘 안돌아가는 건지. -_-;; 대체 외 Pod 간 연결이 안되는건지. 거의 초보인 내게 컨테이너에 뭔가를 해본다는 것 자체가 시간이 많이 걸리는 일이었다. 그래도 그 덕분에 이것 저것 사용을 해보고 해서 많은 공부가 되었다. 

나중에 동영상으로 녹화한거 다시 들어봤는데 민망해서 영상을 못보고 소리만 들었다. -_-;;; 다음에는 좀더 연습을 해야겠다. 


드디어 4개 다 모았다.~^^


기념품들 



이것 말고도 파트어 업체에서 받은 것들도 있지만 그건 제외 했다. 



Action Item


세미나에서 들으면서 몇가지 써봐야 겠다고 생각한 것들을 요약해 본다. 


- Stackdrvier 사용해보기 (디버거, 프로파일러, 로깅등)

- SRE(Site Reliability Engineering) 에 대해서 좀 찾아보자

- BigQuery 한번 써보자.

728x90
반응형
반응형

 먼저 Dockerfile 이 있다고 가정한다. 

내가 만든 이미지는 spring boot 어플리케이션이다.


Dockerfile


1
2
3
4
5
FROM openjdk:8-jdk-alpine
VOLUME /tmp
COPY ./build/libs/mail-0.0.1-SNAPSHOT.jar app.jar
RUN echo 'Mail Service running'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
cs


이제 이 Dockerfile 을 빌드를 한다.


sudo docker build -t asia.gcr.io/[GOOGLE_PROJECT_ID]/mail-service:v1 .


docker build : 컨테이너를 만드는 명령어

-t : 이미지에 태그 정하는 옵션

asia.gcr.io/[GOOGLE_PROJECT_ID]/mail-service:v1 : 후에 구글 컨테이너 레지스트리에 올리기 위한 이름 규칙이다.


[HOST_NAME]/[GOOGE_PROJECT_ID]/[IMAGE_NAME]


# 참고 (출처 : https://cloud.google.com/container-registry/docs/pushing-and-pulling)

  • gcr.io hosts the images in the United States, but the location may change in the future
  • us.gcr.io hosts the image in the United States, in a separate storage bucket from images hosted by gcr.io
  • eu.gcr.io hosts the images in the European Union
  • asia.gcr.io hosts the images in Asia


1
2
3
4
5
sudo docker images
REPOSITORY                                        TAG                 IMAGE ID            CREATED             SIZE
asia.gcr.io/[GOOGLE_PROJECT_ID]/mail-service    v1                  2f19bede54dd        19 minutes ago      140MB
openjdk                                           8-jdk-alpine        54ae553cb104        5 weeks ago         103MB
hello-world                                       latest              4ab4c602aa5e        5 weeks ago         1.84kB
cs


이미지가 생성되면 위와 같이 볼수 있다. PROJECT_ID 는 일부러 [GOOGLE_PROJECT_ID] 라고 변경했다.

이제 이미지를 PUSH 해보자


1
2
3
4
5
6
7
8
sudo docker push asia.gcr.io/[GOOGLE_PROJECT_ID]/mail-service:v1
The push refers to repository [asia.gcr.io/[GOOGLE_PROJECT_ID]/mail-service]
fcb96fbc948c: Preparing 
f2ec1bba02a6: Preparing 
0c3170905795: Preparing 
df64d3292fd6: Preparing 
unauthorized: You don't have the needed permissions to perform this operation, and you may have invalid credentials. To authenticate your request, follow the steps in: https://cloud.google.
com/container-registry/docs/advanced-authentication
cs


안된다...

뭔가 인증작업이 필요하다.

저기 표시된 url  로 일단 들어가보자. https://cloud.google.com/container-registry/docs/advanced-authentication


거기 가이드 대로 따라해보면 다음과 같은 과정을 거치게 된다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
gcloud auth configure-docker
WARNING: `docker-credential-gcloud` not in system PATH.
gcloud's Docker credential helper can be configured but it will not work until this is corrected.
The following settings will be added to your Docker config file 
located at [/home/gcpblusky0910/.docker/config.json]:
 {
  "credHelpers": {
    "gcr.io": "gcloud", 
    "us.gcr.io": "gcloud", 
    "eu.gcr.io": "gcloud", 
    "asia.gcr.io": "gcloud", 
    "staging-k8s.gcr.io": "gcloud", 
    "marketplace.gcr.io": "gcloud"
  }
}
 
Do you want to continue (Y/n)?  y
 
Docker configuration file updated.
cs


그런데 위에 내용이 뭔가 좀 이상하다. 

config 파일에 내용이 들어가긴 했는데 다음과 같은 문구가 눈에 거슬린다.


WARNING: `docker-credential-gcloud` not in system PATH.
gcloud's Docker credential helper can be configured but it will not work until this is corrected.


'docker-credential-gcloud' 가 PATH에 없어서 Docker credential helper 를 설정했지만 정상적으로 동작 안할꺼다.. 라는 내용이다. 뭐지???


1
gcloud components install docker-credential-gcr
cs


이렇게 했더니 다시 에러가 난다. 이번에는 Cloud SDK 가 뭔가 없다고 한다. 


그래서 아래 URL 로 이동해서 Cloud SDK 를 설치했다.


https://cloud.google.com/sdk/docs/downloads-apt-get


거기에 있는 명령어들을 쭉 실행 한다음 마지막에 gcloud init 까지 한다.


1
2
gcloud auth configure-docker
gcloud credential helpers already registered correctly.
cs
gcloud components install docker-credential-gcr


이제서야 Error 없이 뭔가 OK 라고 나온다.


이제 다시 이미지는 컨테이너 레지스트리에 push를 해보자.


1
2
3
4
5
6
7
sudo docker push asia.gcr.io/[GOOGLE_PROJECT_ID]/mail-service:v1
The push refers to repository [asia.gcr.io/[GOOGLE_PROJECT_ID]/mail-service]
fcb96fbc948c: Pushed 
f2ec1bba02a6: Layer already exists 
0c3170905795: Layer already exists 
df64d3292fd6: Layer already exists 
v1: digest: sha256:465521bc0b83e3a3177c25f1f120f96bef3d585046f0b4cb4ede4d42d1fafc7a size: 1159
cs



이렇게 내 계정의 Container Registry 를 확인해보면 정상적으로 업로드가 됐다.


728x90
반응형

'Development > GoogleCloud' 카테고리의 다른 글

[GCP] Google Cloud Storage Options.  (0) 2019.12.12
[GCP]VPC Network  (0) 2019.08.03
[GCP] Network  (0) 2019.08.01
[GCP]HTTP(S) Load Balancing  (0) 2019.07.31
[GCP]Network TCP/UDP Load Balancing  (0) 2019.07.28

+ Recent posts