Networking
Google Cloud VPC(Virtual Private Cloud)
- Your own isolated network in GCP cloud
- You control all the traffic coming in and going outside a VPC
- VPC에서 GCP resource를 만드는 것이 모범 사례이다.
VPC Subnets
-
User는 인터넷에 존재하는 어플리케이션(로드 밸러서)에만 접근이 가능해야한다. 즉 내부 데이터와 연결된 Compute Engine과 Database에는 접근 X
=> 그렇다면 공공 리소스(어플리케이션, 웹)과 사설 리소스를 VPC에서 분리되게 해야한다.
=> Create separate Subnets!
-
서브넷은 공공 리소스와 사설 리소스를 분리하는 것을 돕는다.
-
또한 각 서브넷은 특정 지역과 연결되어있다. 따라서 리소스를 다양한 리전에 고가용성을 위해 분배할 수 있다.
CIDR(Classless Inter-Domain Routing) Blocks
Firewall
Shared VPC
- 조직은 여러 프로젝트를 가지고 있으며 각 프로젝트 리소스끼리 통신이 필요함.
- 프로젝트끼리 통신할 때 내부IP와 안전하고 효율적으로 통신하는 방법.
VPC Peering
Cloud Operations
Cloud Monitoring
Cloud Monitoring - Workspace
- 여러 프로젝트를 모니터링하는 경우(AWS 계정 추가)
Cloud Logging
- 모든 동작에서 나온 모든 로그는 구글 클라우드와 클라우드 로깅에 중앙 집중화 되고 캡쳐된다.
Cloud Audit Logs
Cloud Logging - Controlling & Routing
Cloud Logging - Export
Cloud Trace
Cloud Debugger
- Test or production 환경에서 이슈를 확인하고 싶을 때 사용
- Cloud Debugger: Capture state of a running application
Cloud Profiler
- 병목현상을 어떻게 확인?
- Cloud Profiler: Statistical, low-overhead profiler
Error Reporting
- 실시간으로 제작상의 문제를 파악
- 클라우드 서비스로부터 보고된 에러를 집계하고 디스플레이할 수 있다.
Organizing GCP Resources
Resource Hierarchy in GCP
- Organization > Folder > Project > Resources
- Resources are created in projects
IAM Members/Identities
Resource Hierarchy & IAM Policy
23. Quick Review - Compute Engine Virtual Machines
SSHing into Linux VMs
Options
Details
Executing Shutdown Script on a GCE VM
Troubleshooting VM startup
Moving VM instances between Zones and Regions
24. Asynchronous Communication in Google Cloud with Cloud Pub Sub
Pub Sub
Synchronous Communication
동기화 방식
Web Server -> Logging Service -> Database
위 방식대로 하면 Logging Service가 down되거나 Web Server에 많은 부하가 실릴 때 제대로 작동하지 않는다.
=> 비동기화 방식
Asynchronous Communication
Webserver(Publisher) -> Topic(Pub Sub) -> Logging Service(Subscriber) -> Database
Advantages:
- Decoupling: Publisher(Apps) don't care about who is listening
- Availability: Publisher(Apps) up even if a subscriber(Logging Service) is down
- Scalability: Scale consumer instances(Logging Service) under high load
- Durability: Message is not lost even if subscriber(Logging Service) is down
Pub/Sub
- 신뢰할 수 있고 확장 가능하며 완전히 관리되는 비동기 메세지 서비스
- 매일 최대 10억개의 메시지를 처리할 수 있다.(서버 스케일링 걱정x)
토픽에 여러 subscription이 있을 때 메세지가 생기면 모든 subscription에 전송된다. 메세지가 개별적으로 처리된다.
Cloud Dataflow
- Dataflow는 빠르고 경제적이며 서버리스 방식인 통합 스트리밍 및 일괄 데이터 처리를 제공합니다.
25. Implementing Hybrid Cloud with Google Cloud
Hybrid Cloud
데이터 센터안에 많은 리소스가 있을 때 이걸 GCP 리소스와 연결하고 싶을 때 사용
Cloud VPN
가상 사설망(VPN)을 사용하면 Google Compute Engine 리소스를 자체 사설망에 안전하게 연결할 수 있습니다. Google VPN은 IKEv1 또는 IKEv2를 사용하여 IPsec으로 연결합니다.
암호화 하여 사용
Cloud Interconnect
-
클라우드 상호 연결은 고속, 고가용성의 대기 시간이 짧은 개인 연결로 온-프레미스 네트워크에서 구글 클라우드로 연결된다.
-
네트워크 연결에 암호화 사용X
-
다량의 데이터를 전송하기 위해 넓은 대역폭을 사용해야 한다면 Dedicated Interconnect를 사용한다. 하지만 설치하는데 시간이 걸린다.
-
낮은 대역폭에 개인적인 연결을 위해선 Partner Interconnect를 사용한다.
26. Exploring Datawarehouse in Google Cloud - BigQuery
Bigquery
- 빅쿼리는 스캔된 데이터 양에 대해서 값을 지불한다.(쿼리 전에 비용 추정을 해야한다.)
- 낮은 비용과 성능을 위해 파티션, 클러스터링사용
Partitioning and Clustering BigQuery Tables
- 특정 카테고리로 저장하고 싶으면 클러스터링을 사용하여 다른 카테고리 데이터를 스캔하지 않고 바로 데이터를 반환한다.
- 파티션은 테이블을 여러 조각으로 나누는 것이다. 오래된 파티션을 자동으로 제거할 수 있다.
Importing Data into BigQuery
배치 가져오기를 사용(스트리밍은 비쌈): 가져오는 비용은 무료, 보관료만 내면 된다.
Federated Query: 바로 외부데이터에 접근하여 사용하는 쿼리
Best Practices
Cloud Dataproc
- 관리되는 Spark and Hadoop서비스 이다.
- Multople Cluster Nodes: Single Node/Standard:High Availability
- 하둡과 스파크 클러스터를 클라우드로 옮기고 싶을 때 사용
- 대체로 빅쿼리를 사용할 수 있다.(When you run SQL queries on Petabytes)
- 사용될 노드의 하드웨어 구성을 선택할 수 있다.
27. Exploring Data Lifecycle and Data Architectures in Google Cloud
Data Lifecycle
Four Step
- Ingest: Stream or Batch ingest
- Store: Durably and cost efficiently store data in a convenient format
- Process and analyze: Convert data to information(normalizations or aggregations)
- Explore and visualize: Flexibility to play with data/information. Get and share insights
Ingest
Store
Process and analyze
Explore and visualize
Big Data & Analytics in GCP
Data Lake
데이터 저장소, 데이터 관리, 데이터 분석을 위한 솔루션을 조합한 단일 플랫폼.
- 방대한 데이터를 수집하고 분석하고 시각화
- 빅쿼리로 가능
Caching
데이터베이스와 서버의 부하를 줄이는 방법.
- 데이터가 얼마나 자주 바뀌는지?(자주 바뀌면 캐시 사용X)
Memorystore
- In-memory datastore service: Reduce access times
- Fully managed(Provisioning, Replication, Failover & Patching)
- Support for Redis and Memcached:
- Use Memcached for Caching
- Use Redis for low latency access with persistence and high availability
- Can be accessed from:
- Compute Engine
- App Engine flexible and standard
- Google Kubernetes Engine
- Cloud Functions
Cloud CDN - Content Delivery Network
전 세계 유저에게 낮은 지연성으로 콘텐츠를 제공
- Integrates with External HTTP(S) Load Balancing