OpenSearch Serverless的架构

和OpenSearch比起来,OpenSearch Serverless做了架构上的改动,它将index(ingest)query分开,使用S3作为主存储。所以ingestionsearch都可以单独的扩容:

img

另外,在使用OpenSearch Serverless时,不需要给index设置replica和shard数量,大大简化了运维工作。

使用场景

OpenSearch Serverless主要有三个使用场景:

  1. search。跟传统的Elasticsearch一样
  2. time-series。时序数据。跟search类似比起来,它最大的区别就是不能更新index(POST index/_update
  3. vector engine。向量数据

OCU

OpenSearch Serverless的计算能力是以OpenSearch Compute Unit(OCU)来计的,一个OCU包括6G内存,一个CPU

当创建完collection后,OpenSearch Serveless会有两个OCU,一个用于ingest,另一个用于query。为了保证高可用,它会在另一个az也创建standby,所以当创建完collection后,默认初始化就有四个OCU。

Collection可以类比于传统OpenSearch中的一个集群

即使serverless上没有活动,这四个OCU也会存活(为了应对后面有读写进来)。创建完第一个collection后,后面的collection可以共享这些OCU,仅当在读写突增时才会创建新的OCU。

OpenSearch Serverless上的安全配置

OpenSearch Serverless上的安全主要涉及以下四个部分:

img

  • Encryption policy,相当于at-rest加密,使用KMS
  • Network policy,控制集群能否被公网访问,或者只能从VPC访问
  • Data access policy,控制用户能执行哪些操作,比如只读/只写/创建索引/更新索引
  • AuthenticationOpensearch Serverless的认证有两种方式:一种是通过IAM Role / IAM User,另一种是通过SAML。使用SAML的方式只能访问Dashboard,而第一种方式既能访问Dashboard,又能通过API访问OpenSearch。

这四个概念在后面的实验中都会遇到,结合起来理解会更清晰