GCP学习笔记(三)——存储和安全

这篇具有很好参考价值的文章主要介绍了GCP学习笔记(三)——存储和安全。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在GCP中,我们需要序列化数据使数据能够进行存储和转换。Avro时一种数据序列化方法,可以将数据转换为二进制。

非结构化数据通常存储在Cloud Storage中,结构化数据的存储方式可以由下图决定。

GCP学习笔记(三)——存储和安全

Transactional workload:需要快速插入或更新。80%写入,20%读
Analytics workload:偏向于读取整个数据集,用于决策或计划。20%写入,80%读

下面是一些存储方法的对比

GCP学习笔记(三)——存储和安全
GCP学习笔记(三)——存储和安全
GCP学习笔记(三)——存储和安全

数据仓库和数据湖的区别:

  • 数据湖是指原始未经组织的数据
  • 数据仓库是指结构化的、组织化的数据

一、Cloud Storage

Cloud Storage是用来存储非结构化数据的可管理服务。在创建项目后,可以创建buckets并向bucket上传数据或者从bucket下载数据。

Cloud Storage有四种存储类型,分别是

  • 标准存储(standard storage):用来存放经常存取的数据
  • Nearline Storage:存储不经常访问的数据,例如每个月存取一次、数据备份
  • Coldline Storage:存储不经常访问的数据,例如每三个月存取一次
  • Archive Storage:存储不经常访问的数据,例如每年存取一次、灾难恢复

Cloud Storage的特点:Persistance、Durable、Consistency、Avaliablity、High throughput。

Cloud Storage的核心是桶(bucket)和对象:

  • 桶是对象容器,桶具有全局命名空间,意味着不允许使用同名的桶。选择最接近的区域存放会减少延迟。Cloud Storage会存储桶的复制品防止数据丢失。
  • 对象存在于桶中。使用元数据来记录信息。

Cloud Storage的权限管理方法:

  • IAM :bucket level,对桶内所有对象提供相同的权限访问规则
  • ACL (access control list):bucket level或者object level
  • CMEK:使用KMS生成并管理密钥
  • CSEK:用户自己定义和管理密钥

二、Cloud Bigtable

Bigtable是一种高度可扩展的 NoSQL 数据库服务。Bigtable 是一种分布式数据库,适用于存储和处理大量结构化数据,例如时间序列数据、用户分析和财务数据。常见用例包括Gmail和Google maps.

Bigtable的整体架构如下图所示
GCP学习笔记(三)——存储和安全
客户端请求都是先经过前端服务器,然后再发送到 Bigtable 节点。集群中的每个节点会处理对该集群的一部分请求。通过向集群添加节点,不但可以增加集群能够同时处理的并发请求数量,而且还会提高集群的吞吐量上限。Bigtable 表被分成多个连续的片,这些片以 SSTable 格式存储在 Google 的文件系统 Colossus 上。

数据永远不会存储到 Bigtable 节点本身,存储到节点上的是数据的元数据,方便进行备份和故障恢复。

Bigtable的权限管理方法:

  • IAM :实例级别权限管理
  • 用户管理加密密钥(CMEK):在Cloud KMS中控制和管理的密钥来保护您的 Bigtable 实例。
  • 防火墙规则:限制对Bigtable实例的访问

Bigtable通过构建Row key(索引)来扫描、查找、排序数据。构建Row Key的方法可以是选择某一列,也可以是将多个列拼接起来。

Bigtable特点:

  • 可扩展性:Bigtable 可横向扩展以处理海量数据和高吞吐量工作负载。
  • 低延迟:为读写操作提供个位数毫秒延迟,适合实时应用。
  • 高可用性:Bigtable 自动跨多个数据中心复制数据,以实现容错和持久性。

Bigtable工具:

  • cbt:CBT是专门为Cloud Bigtable设计的命令行工具,为常见操作提供简化的界面
  • Hbase Shell:HBase shell 提供了更强大、更灵活的脚本环境,可以通过其兼容层与 Cloud Bigtable 一起使用。

Bigtable性能优化:

  • 通过CPU利用率优化节点数目
  • 将具有相似模式的数据集存储在同一个表中
  • 将相关的列放在同一个列族中。
  • 使用序列化结构存储列值
  • 使用HDD代替SSD
  • 设计合适的schema将读写操作均匀分布到个节点
  • 批处理和缓存请求以最小化往返并减少延迟。
  • 时序数据使用高/窄的表
  • Key Visualizer 会为表生成可视化报告,根据访问的行键详细说明使用情况并解决性能问题。

hotspotting问题:

  • field promotion(prefer):从列数据移到row key上
  • salting:row key额外添加一个元素

Bigtable的常见使用场景:

  • 大量(>1TB)结构化或半结构化数据
  • 高吞吐量或者变化迅速的例子,例如欺诈检测或推荐系统。
  • 时间序列数据分析,例如 IoT 传感器数据或日志数据。
  • 需要进行异步批处理或实时数据处理和分析的金融服务应用程序。
  • 以分布式方式处理大规模数据摄取和处理的应用程序。

三、Cloud SQL

Cloud SQL是一种关系型数据湖,支持MySQL, SQL Server和 PostgreSQL。 Cloud SQL实例对应一个虚拟机实例,该虚拟机包含数据库实例和软件容器来保证数据库运行。App Engine 创建使用 Cloud SQL 数据库的应用程序。

Cloud SQL权限管理:通过IAM来控制权限,通过VPC来访问私有IP

Cloud SQL性能优化:

  • 根据负载选择恰当的机器类型和存储大小
  • 启用自动存储增加
  • 通过只读副本处理查询、读取请求和分析流量,从而减少主实例的负载。

Cloud SQL的特点:

  • 高可用性:自动故障和转移
  • 高扩展性:垂直扩展您的实例以处理增加的工作负载,并通过添加只读副本来水平扩展以提高读取性能。
  • 安全性:它提供内置的安全功能,例如静态加密、传输中加密以及与 IAM 集成以实现访问控制。
  • 兼容性:Cloud SQL 支持 MySQL、 PostgreSQL 和 SQL Server 等流行的关系数据库引擎,可以轻松迁移现有应用程序。

Cloud SQL的常见使用场景:

  • 本地数据库例如MySQL 和PostgreSQL迁移到云端
  • 自动复制托管备份
  • 需要托管和可扩展的关系数据库后端的 Web 应用程序。

Cloud SQL监控指标:存储利用率、CPU利用率、读写操作等

四、Cloud Spanner

Cloud Spanner 是可水平扩展、全球分布且高度一致的关系数据库服务。 Cloud Spanner 旨在处理跨多个区域的大容量事务性工作负载。

Spanner 的结构
GCP学习笔记(三)——存储和安全
Cloud Spanner的权限控制:

  • IAM:项目、实例级别权限
  • 细粒度访问控制(fine-grained access control):结合了IAM的优势与传统的基于 SQL 角色的访问控制。 通过细粒度的访问控制,可以控制访问表、列和视图。
  • 用户加密密钥(CMEK):在云密钥管理服务 (KMS) 中控制和管理的密钥来保护 Spanner 数据库。

Cloud Spanner的性能优化

  • 利用 Cloud Spanner 的自动扩展功能来处理不同的工作负载。
  • 使用分布式事务和分区数据来实现高可扩展性和吞吐量。
  • 利用读写优化,例如使用索引选择和批处理写入。
  • 二级索引:添加二级索引可以更有效地查找该列中的数据,还可以帮助 Spanner 更高效地执行扫描,实现索引扫描而不是全表扫描。

Cloud Spanner的特点:

  • 全球可扩展性和一致性:Cloud Spanner 将数据分布在多个区域,在全球范围内提供低延迟访问和强一致性保证。
  • 关系模型:它支持 SQL 查询和模式,可以很容易地与现有的应用程序和工具集成。
  • 自动扩展:Cloud Spanner 可以根据工作负载需求动态调整其资源,无需人工干预即可实现无缝扩展。
  • 自动备份和复制:提供连续备份和复制,确保数据持久性和灾难恢复。
  • 强大的安全性:Cloud Spanner 与 IAM 集成以实现访问控制,并提供静态和传输中的加密。
  • interleaved tables:交错表是一种用于组织和关联数据的特殊表设计模式。在交错表模式下,父表和子表之间可以形成嵌套关系,子表的行可以"交错"存储在父表的行内。交错表可以减少查询开销,紧密关联数据,分布式事务支持。

Cloud Spanner的使用场景:

  • 具有低延迟要求和跨多个区域强一致性需求的全球应用程序。
  • 需要高可扩展性和性能的大规模事务性工作负载。
  • 数据隔离和安全性至关重要的应用程序。

五、Firestore

Firestore是灵活、可扩展且无服务器的 NoSQL 文档数据库。 它旨在实时跨多个客户端和平台存储和同步数据。 Firestore 提供灵活的数据模型、自动扩展和内置离线功能,使其非常适合构建响应迅速且可扩展的应用程序。

Firestore的权限控制:

  • IAM:实例级别权限控制
  • Firebase Authentication:对用户进行身份验证和授权。

Firestore的特点:

  • 实时数据同步:Firestore 提供跨客户端和平台的无缝实时更新,支持协作和响应式应用程序。
  • 可扩展性和自动扩展:它可以自动扩展以处理高读写负载,无需人工干预。
  • 离线支持:Firestore 提供内置的离线功能,即使在与网络断开连接的情况下,应用程序也能继续运行。
  • 与 Firebase 生态系统集成:Firestore 与身份验证、云功能和云存储等其他 Firebase 服务很好地集成,提供了一个全面的开发平台。

Firestore的性能优化:

  • 根据访问模式和查询设计数据结构和文档层次结构。
  • 对经常查询的属性使用索引属性以提高查询性能。
  • 利用子集合来组织相关数据并避免大型文档。
  • 使用批量写入在单个原子事务中执行多个操作。
  • 实施高效的数据获取策略,例如使用文档引用或分页。

Firestore的使用场景:

  • 离线优先的应用程序需要在连接恢复时离线运行并同步数据。
  • 需要跨多个设备进行实时数据同步的移动和 Web 应用程序。
  • 涉及多个用户同时更新共享数据的协作应用程序。
  • 具有复杂数据模型和层次关系的应用程序。

六、Cloud Datastore

Cloud Datastore是NoSQL文档数据库,它是一种高度可扩展且完全托管的数据库服务,允许以schema-less方式存储和查询结构化数据。 Datastore 提供 ACID 事务、自动可伸缩性和内置复制以实现高可用性。。每个project里只能有一个Datastore。

Datastore的一些使用场景:产品目录、移动APP用户信息、游戏保存状态、ACID。

Datastore和关系型数据库对比:
GCP学习笔记(三)——存储和安全
Cloud Datastore的权限控制:

  • IAM:实例级别权限控制
  • 细粒度控制:使用命名空间来隔离不同的组

Cloud Datastore的特点:

  • 可扩展性:Datastore 可自动扩展以处理大量数据和高吞吐量工作负载。
  • ACID 事务:它支持具有强一致性保证的多实体组事务。
  • 自动复制:Datastore 跨多个数据中心自动复制数据以实现高可用性和持久性。
  • 强大的查询功能:Datastore 提供强大的查询语言,支持筛选、排序和投影。

Cloud Datastore的性能优化:

  • 根据访问模式仔细设计实体层次结构和实体属性
  • 对经常查询的属性使用索引属性以提高查询性能。
  • 利用批处理操作减少往返次数并提高写入性能。
  • 利用查询游标有效地对大型结果集进行分页。
  • 考虑跨多个 Datastore 命名空间对数据进行分片以分配负载。

Cloud Datastore的使用场景:

  • 需要可扩展且灵活的数据存储解决方案的 Web 和移动应用程序。
  • 实时分析和事件跟踪,其中快速写入和低延迟查询很重要。
  • 需要高可用性和自动复制以确保数据持久性的应用程序。

Cloud Datastore的报错分析:

  • UNAVALIABLE, DEADLINE_EXCEEDED:指数级别重连
  • INTERNAL:尝试不超过一次
  • 其他:不要尝试重连

七、安全

1. Data Loss Prevention

2. Stackdriver

Stackdriver用来存储、监控、分析和告警日志数据。

Stackdriver的子产品和其用途包括:

  • Stackdriver Debugger:实时检测应用状态而无需停止应用
  • Stackdriver Error reporting:收集和分析应用的报错
  • Stackdriver Audit Logging:分析日志数据、查看数据权限
  • Stackdriver Monitoring:实时监控资源的性能和健康状态
  • Stackdriver Trace:分析应用的延迟和性能

3. IAM

IAM包含三种成员类型:

  • service account:非人类用户,例如应用
  • google account:对于单个用户
  • google group:对于多个用户

八、网络概述

Google Cloud Platform (GCP) 提供强大且可扩展的网络基础设施来支持各种云服务和应用程序。 GCP 网络旨在提供高性能、安全性和可靠性。 以下是 GCP 网络的关键组件和功能的概述:文章来源地址https://www.toymoban.com/news/detail-502852.html

  • 虚拟私有云 (VPC):VPC 是 GCP 内逻辑隔离的全球网络,允许您创建和管理虚拟机实例、容器和其他资源。 每个VPC都与一个IP地址范围相关联,并且可以进一步划分为子网。
  • 子网:子网是 VPC 的细分,使您能够隔离网络资源。 您可以指定子网的 IP 地址范围并使用防火墙规则控制子网之间的流量。
  • 防火墙规则:GCP 提供网络级防火墙规则,允许您控制进出资源的入站和出站流量。 防火墙规则可以在 VPC 级别或子网级别定义,并且可以基于 IP 地址、协议和端口。
  • 负载均衡:GCP 提供多种负载均衡选项来跨资源分配流量。 其中包括 HTTP(S) 负载平衡、SSL 代理负载平衡、TCP 代理负载平衡和网络负载平衡。 负载均衡器自动扩展和分配流量,以确保高可用性和性能。
  • Cloud Router:Cloud Router 是一项完全托管的服务,可在您的 VPC 网络内以及 VPC 网络与本地网络之间提供动态路由。 它同时支持 BGP(边界网关协议)和静态路由。
  • Cloud VPN:Cloud VPN 使您能够在 VPC 网络与本地或其他外部网络之间建立加密的 IPsec 隧道。 它为远程办公室、数据中心和其他网络资源提供安全连接,更适用于低速传输。
  • 云互连(Cloud Interconnect):云互连在本地网络和 GCP 之间提供专用且低延迟的连接。 与 VPN 相比,它提供更高的带宽和更可靠的连接。 云互连支持专用互连和合作伙伴互连等选项。
    • 合作伙伴互连(Partner Interconnect):合作伙伴互连允许您使用受支持的服务提供商连接到 GCP。 它使您能够通过合作伙伴的网络在本地网络和 GCP 网络边缘之间建立直接物理连接。 与 VPN 连接相比,此连接提供更高的带宽和更低的延迟。
    • 专用互连(Dedicated Interconnect):专用互连允许您在本地网络和 GCP 网络边缘之间建立直接物理连接。 通过专用互连,您可以拥有专用于您的组织的私人连接。 此选项适合大规模工作负载或当您需要对网络连接进行更多控制时。
  • Cloud DNS:Cloud DNS 是 GCP 提供的可扩展且可靠的域名系统 (DNS) 服务。 它允许您管理域名并将其解析为相应的 IP 地址。
  • 全局负载均衡:GCP 的全局负载均衡 (GLB) 跨多个区域分配传入流量,以确保高可用性并最大限度地减少延迟。 它会自动将用户定向到最近且资源状况良好的可用区域。
  • Cloud CDN:Cloud CDN(内容分发网络)是一种分布式边缘缓存服务,可以缓存内容并将内容分发到更接近最终用户的位置。 它通过减少延迟和卸载源服务器的流量来帮助提高性能。

到了这里,关于GCP学习笔记(三)——存储和安全的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Flutter笔记:序列化与反序列化

    Flutter笔记 序列化与反序列化 作者 : 李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 : 291148484@163.com 本文地址 :https://blog.csdn.net/qq_28550263/article/details/133340592 序列化是一种将复杂数据结构(例如对象、数组、字典等)转换为线性格式或字节流的过程,以便于数据的存储

    2024年02月07日
    浏览(42)
  • 【rust/egui】(三)看看template的app.rs:序列化、持久化存储

    rust新手,egui没啥找到啥教程,这里自己记录下学习过程 环境:windows11 22H2 rust版本:rustc 1.71.1 egui版本:0.22.0 eframe版本:0.22.0 上一篇:这里 app.rs 中首先定义了我们的 TemplateApp 结构体 在定义 TemplateApp 时,我们让其继承了 serde::Deserialize, serde::Serialize 。 serde 是rust中用于序列

    2024年02月11日
    浏览(29)
  • Java安全基础之Java序列化与反序列化

    目录 ObjectInputStream 和 ObjectOutputStream java.io.Serializable 自定义序列化和反序列化 Java 的序列化(Serialization)是指将对象转换为字节序列的过程,而反序列化(Deserialization)则是将字节序列转换回对象的过程。 序列化和反序列化通常用于在网络上传输对象或者将对象持久化到文

    2024年04月22日
    浏览(31)
  • python序列化反序列化和异常处理笔记

    迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。 我们已经知道可以对list、tuple、str等类型的数据使用for...in...的循环语法从其中依次拿到数据进

    2024年02月13日
    浏览(28)
  • 【WEB安全】不安全的反序列化

    序列化和反序列化是指用于将对象或数据结构转换为字节流的过程,以便在不同系统之间进行传输或存储,并在需要时重新构造。 **序列化是指将对象或数据结构转换为字节流的过程。**在序列化过程中,对象的状态和数据被转换为一系列字节,这些字节可以按照一定的协议

    2024年02月16日
    浏览(43)
  • Unity Image(RawImage) 实现按轴心放大缩小,序列化存储轴心信息,实现编译器窗口保存轴心

    工作时分配给我的要实现的功能,写的时候遇到挺多的坑的,在此记录一下 放大缩小的效果 2.编译器扩展窗口记录 1.打开WSC/保存图片轴心工具,在Image位置挂在需要保存轴心的图像,输出name作为key,并在Scene窗口中直接拖动轴心确定位置(不建议在Inspector中手动输入轴心修改

    2024年02月14日
    浏览(38)
  • java安全(五)java反序列化

    给个关注?宝儿! 给个关注?宝儿! 给个关注?宝儿! 在调用RMI时,发现接收发送数据都是反序列化数据. 例如JSON和XML等语言,在网络上传递信息,都会用到一些格式化数据,大多数处理方法中,JSON和XML支持的数据类型就是基本数据类型,整型、浮点型、字符串、布尔等,如果

    2024年02月10日
    浏览(37)
  • Javaweb安全——Dubbo 反序列化(一)

    Apache Dubbo 是一款 RPC 服务开发框架。提供三个核心功能: 面向接口的远程方法调用 、 智能容错和负载均衡 ,以及 服务自动注册和发现 。 节点角色 节点 角色说明 Provider 暴露服务的服务 提供者 Consumer 调用远程服务的服务 消费者 Registry 服务注册与发现的 注册中心 Monitor 统

    2024年02月01日
    浏览(31)
  • Web安全--反序列化漏洞(java篇)

    序列化的意义就在于方便存储和传输,永久的保存到硬盘中,通常保存在一个文件中。 序列化:将java对象转换为字节序列的过程 反序列化:序列化的逆过程,从储存区读出字节序列还原成对象的过程 java应用在对用户的输入没有进行严格的检查时,即传入了不可信的数据做

    2024年02月09日
    浏览(41)
  • 【java安全】FastJson反序列化漏洞浅析

    0x00.前言 前面我们学习了RMI和JNDI知识,接下来我们就可以来了解一下FastJson反序列化了 0x01.FastJson概述 FastJson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持 将JavaBean序列化为JSON字符串,也可以将JSON字符串反序列化到JavaBean 0x02.FastJson使用 首先我们需要使用

    2024年02月11日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包