
- TOP
- ã¿ã°äžèЧ
- ã¹ã¿ãŒãã¢ãã
ã¹ã¿ãŒãã¢ãã
ã€ãã³ã
ãã¬ãžã³
æè¡ããã°
æ¬èšäºã¯ 2025 幎 9 æ 22 æ¥ ã«å
¬éãããã A scalable, elastic database and search solution for 1B+ vectors built on LanceDB and Amazon S3 ãã翻蚳ãããã®ã§ãã ãã®èšäºã¯ Metagenomi ã® Owen JansonãAudra DevotoãChristopher Brown ãšã®å
±èã§ãã CRISPR ã«ããã²ãã ç·šéããç£æ¥çšãã€ãªè§ŠåªãŸã§ãé
µçŽ ã¯ãã«ã¹ã±ã¢ããšãã«ã®ãŒãè£œé æ¥ã«ãããå€é©çãªæè¡ãæ¯ããŠããŸããããããã²ãã å·¥åŠã«ããã Cas9 ã®ããã«ç£æ¥ãå€ãããããªæ°èŠé
µçŽ ãçºèŠããã«ã¯ãçåœã®ç³»çµ±æš¹ã«ãŸãããèšå€§ãªçç©ãã³ãŒãããæ°ååçš®é¡ã®é
µçŽ ãæ¢çŽ¢ããªããã°ãªããŸãããDNA ã·ãŒã±ã³ã·ã³ã°ãšã¡ã¿ã²ããã¯ã¹ã®é²æ©ã«ããæ¢ç¥ã®ã¿ã³ãã¯è³ªé
åãæ ŒçŽããå€§èŠæš¡ãªå
¬éã»ç¬èªããŒã¿ããŒã¹ãæ§ç¯ãããŠããŸãããããããã䟡å€ã®é«ãåè£ãèŠã€ãåºãã®ã¯çç©åŠã®åé¡ã§ãããšåæã«ããã°ããŒã¿ã®åé¡ã§ããããŸãã Metagenomi ã§ã¯ãç¬èªã®å€§èŠæš¡ã¡ã¿ã²ããã¯ã¹ããŒã¿ããŒã¹ (MGXdb) ãæŽ»çšããæ°èŠéºäŒåç·šéã·ã¹ãã ã®ããŒã«ããã¯ã¹ãæ§ç¯ããããšã§ãæ ¹æ²»çãªæ²»çæ³ã®éçºã«åãçµãã§ããŸãããã®èšäºã§ã¯ãMetagenomi ã Amazon Web Services (AWS) ã®ã¹ã±ãŒã©ãã«ãªã€ã³ãã©ã䜿ãããšã³ããã£ã³ã°ã«åºã¥ã髿§èœã¿ã³ãã¯è³ªããŒã¿ããŒã¹ãšæ€çŽ¢ãœãªã¥ãŒã·ã§ã³ãæ§ç¯ããŠãæ°ååã¿ã³ãã¯è³ªèŠæš¡ã®é
µçŽ çºèŠã«æãã§ããæ¹æ³ã玹ä»ããŸããç¬èªã®å€§èŠæš¡ããŒã¿ããŒã¹ã«å«ãŸãããã¹ãŠã®ã¿ã³ãã¯è³ªããã¯ãã«ç©ºéã«ãšã³ããã£ã³ã°ãã Amazon Simple Storage Service (Amazon S3) äžã«æ§ç¯ãã LanceDB ã§ããŒã¿ã«ã¢ã¯ã»ã¹ã§ããããã«ããŠã AWS Lambda ã§æ€çŽ¢ããããšã§ãé
µçŽ çºèŠãæè¿åæ¢çŽ¢åé¡ã«å€æãããããŸã§æªæ¢çŽ¢ã ã£ãçºèŠç©ºéã«é«éã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸããã ãœãªã¥ãŒã·ã§ã³æŠèŠ ãã®ãœãªã¥ãŒã·ã§ã³ã®äžå¿ã«ããã®ã LanceDB ã§ããLanceDB ã¯ãªãŒãã³ãœãŒã¹ã®ãã¯ãã«ããŒã¿ããŒã¹ã§ãã€ã³ããã¯ã¹ä»ããã¯ãã«ã«å¯Ÿããé«éãªè¿äŒŒæè¿å (ANN) æ€çŽ¢ãå®çŸããŸããLanceDB ã¯å®å
šã«ãã¡ã€ã«ããŒã¹ã§ Amazon S3 ã¹ãã¬ãŒãžãšãäºææ§ãããããããµãŒããŒã¬ã¹æ§æã«é©ããŠããŸãããã®çµæããšã³ããã£ã³ã°æžã¿ã¿ã³ãã¯è³ªé
åã®ããŒã¿ããŒã¹ã Amazon Elastic Block Store (Amazon EBS) ã®ãããªæ°žç¶ãã£ã¹ã¯ã§ã¯ãªããæ¯èŒçäœã³ã¹ã㪠Amazon S3 ã«ä¿åã§ããŸããåžžæçšŒåãããµãŒããŒã¯äžèŠã§ãããŒã¿ããŒã¹ããªã³ããã³ãã§æ€çŽ¢ããã®ã«å¿
èŠãªã®ã¯ãLanceDB ã䜿ã£ãŠ S3 äžã®ããŒã¿ããçŽæ¥æè¿åãèŠã€ãã Lambda 颿°ã ãã§ãã Metagenomi ã®å€§èŠæš¡ã¿ã³ãã¯è³ªããŒã¿ããŒã¹ãè¡šãæ°ååã®ãã¯ãã«ãšã³ããã£ã³ã°ãåã蟌ã¿ã»æ€çŽ¢ããããã«ãããŒã¿ããŒã¹ãåçãªãµã€ãºã®ããŒã (ãã©ã«ã) ã«åå²ã㊠Amazon S3 ã«äœã³ã¹ãã§ä¿åãããããã䞊åã«ã€ã³ããã¯ã¹åã㊠Lambda ã«ãã map-reduce ã¢ãããŒãã§æ€çŽ¢ããæ¹æ³ãèæ¡ããŸããã以äžã®å³ããã®ã¢ãŒããã¯ãã£ã瀺ããŠããŸãã åŠç㯠4 ã€ã®ã¹ãããã§æ§æãããŠããŸãã ããŒã¿ã®ãã¯ãã«å ããŒã¿ã®ãã±ããåå² ããŒã¿ã®åã蟌ã¿ãšã€ã³ããã¯ã¹äœæ ããŒã¿ããŒã¹ãžã®ã¯ãšãª ããŒã¿ã®ãã¯ãã«å LanceDB ã®é«é㪠ANN æ€çŽ¢æ©èœãå©çšããã«ã¯ãããŒã¿ããã¯ãã«åœ¢åŒã«ããå¿
èŠããããŸããMetagenomi ã®ã¡ã¿ã²ããã¯ã¹ããŒã¿ããŒã¹ã«ã¯æ°ååã®ã¿ã³ãã¯è³ªãå«ãŸããŠããããããããã¢ããé
žã®æååã§ããåã¿ã³ãã¯è³ªãçç©åŠçã«æå³ã®ããæ
å ±ãæãããã¯ãã«ã«å€æãããããã¿ã³ãã¯è³ªèšèªã¢ãã« (pLM) ã«éããã¢ãã«ã®é ãå±€ããã®ã¿ã³ãã¯è³ªã®ãã¯ãã«è¡šçŸãšããŠååŸããŸããã¿ã³ãã¯è³ªãšã³ããã£ã³ã°ã®çæã«ã¯ããŸããŸãª pLM ã䜿çšã§ããæ±ããçç©åŠçæ
å ±ãšèšç®èŠä»¶ã«å¿ããŠéžæããŸããä»å㯠AMPLIFY_350M ã¢ãã« ã䜿çšããŸãããããŒã¿ããŒã¹å
šäœãžã®ã¹ã±ãŒãªã³ã°ã«ååãªé床ãæã€ Transformer ãšã³ã³ãŒãã¢ãã«ã§ããã¢ãã«ã®æçµé ãå±€ã«å¯Ÿã㊠mean-pool ãå®è¡ããåã¿ã³ãã¯è³ªã«ã€ã㊠960 次å
ã®ãã¯ãã«ãçæããŸããçæããããã¯ãã«ãšå¯Ÿå¿ããäžæã®ã¿ã³ãã¯è³ª ID 㯠HDF5 ãã¡ã€ã«ã«ä¿åããŸãã ããŒã¿ã®ãã±ããåå² ã¿ã³ãã¯è³ªãã¯ãã«ãæ€çŽ¢å¯èœãªããŒã¿ããŒã¹ã«ããããã«ãLanceDB ã§ã¯ãšãªã® ANN ãé«éã«èŠã€ããããã®ã€ã³ããã¯ã¹ãæ§ç¯ããŸãããããã€ã³ããã¯ã¹äœæã«ã¯æéãããããè€æ°ããŒããžã®åæ£ãå°é£ã§ããã€ã³ããã¯ã¹äœæãé«éåããããããŸãããŒã¿ãã»ãŒåçãªãµã€ãºã®ãã±ããã«åå²ããŸãããšã³ããã£ã³ã° HDF5 ãã¡ã€ã«ã best-fit bin packing ã¢ã«ãŽãªãºã ã§åèšçŽ 2 åãã¯ãã«ã®ãã±ããã«å²ãåœãŠãŸãããã±ããåå²ã«äœ¿ãå
·äœçãªãµã€ãºæ±ºå®æ¹æ³ã¯ããã¯ãã«ã®æ°ã次å
æ°ããã©ãŒãããã«ãã£ãŠç°ãªããŸããåãã±ãã㯠Amazon S3 äžã®åäžã® LanceDB ããŒã¿ããŒã¹ãªããžã§ã¯ãã¹ãã¢å
ã«ç¬ç«ããããŒãã«ãšããŠåã蟌ãŸããŸãã ããŒã¿ããã±ããåå²ããããšã§ãåå¥ããŒãã§äžŠåã«ã€ã³ããã¯ã¹åã§ããå°ããªããŒã¿ããŒã¹ãè€æ°äœæã§ããã€ã³ããã¯ã¹äœææéã倧å¹
ã«ççž®ã§ããŸãããŸããæ¢åããŒã¿å
šäœãåã€ã³ããã¯ã¹ãã代ããã«ãæ°ãããã±ãããšããŠããŒã¿ã远å ã§ãå¢å远å ã容æã§ãã ãã±ããåå²ããŒã¿ã®åã蟌ã¿ãšã€ã³ããã¯ã¹äœæ ãã¯ãã«åãããããŒã¿ããã±ããã«å²ãåœãŠãããããLanceDB ããŒãã«ã«å€æããŠã€ã³ããã¯ã¹ãäœæããé«é㪠ANN ã¯ãšãªãå¯èœã«ããŸããããŒã¿ã LanceDB ããŒãã«ã«å€æããå
·äœçãªæ¹æ³ã¯ LanceDB ã®ããã¥ã¡ã³ã ãåç
§ããŠãã ãããçŽ 2 åãã¯ãã«ã®åãã±ããã«å¯ŸããŠãã³ãµã€ã³è·é¢ã® IVF-PQ ã€ã³ããã¯ã¹ãæã€ LanceDB ããŒãã«ãäœæããŸããã€ã³ããã¯ã¹äœæã§ã¯ãããŒãã£ã·ã§ã³æ°ã¯æ¿å
¥è¡æ°ã®å¹³æ¹æ ¹ããµããã¯ãã«æ°ã¯ãã¯ãã«æ¬¡å
æ°ã 16 ã§å²ã£ãå€ã䜿çšããŸãã ã¯ãšãªãã¹ã ãŒãºã«ãããããåããŒãã«ã¯äœæå
ã®ãã±ããã«ã¡ãªãã ååãä»ããåäžã® S3 ãã£ã¬ã¯ããªã«ã¢ããããŒãããŸãããã¡ã€ã«æ§é ããèŠããšãè€æ°ããŒãã«ãæã€ 1 ã€ã® LanceDB ããŒã¿ããŒã¹ãšããŠèªèãããŸãã 以äžã®ã³ãŒãã¹ããããã¯ã id ã«ã©ã ãš embedding ã«ã©ã ãå«ã HDF5 ãã¡ã€ã«ãããã¯ãã«ã LanceDB ããŒã¿ããŒã¹ã«åã蟌ã¿ãã³ãµã€ã³è·é¢ã«ããé«é ANN æ€çŽ¢çšã«ã€ã³ããã¯ã¹ãäœæããäŸã§ããå®è¡ã«å¿
èŠãªã®ã¯ python >= 3.9 ãš lancedb ã pyarrow ã h5py ããã±ãŒãžã§ãããã®ã¹ããããã¯éåæ LanceDB API ã䜿çšãã lancedb ããŒãžã§ã³ 0.21.1 ã§ãã¹ãã»éçºãããŠããŸãã from typing import List, Iterable from itertools import islice from math import sqrt import pyarrow as pa import datetime import asyncio import lancedb import h5py def batched(iterable: Iterable, n: int) -> Iterable[List]: """Yield batches of n items from iterable.""" while batch := list(islice(iterable, n)): yield batch async def vectors_to_db( vectors: str, db: str, table_name: str, vector_dim: int, ingestion_batch_size: int, ) -> int: """Ingest and index vectors from an HDF5 file into a LanceDB table. Args: vectors (str): An HDF5 file containing protein IDs and their 960-dimension vector representations. db (str): Path to the LanceDB database. table_name (str): Name of the table to create. vector_dim (int): Dimension of the vectors. """ # create db and table custom_schema = pa.schema( [ pa.field("embedding", pa.list_(pa.float32(), vector_dim)), pa.field("id", pa.string()), ] ) # count the total number of rows as they are added to the table total_rows = 0 # open a connection to the new database and create a table with await lancedb.connect_async(db) as db_connection: with await db_connection.create_table( table_name, schema=custom_schema ) as table_connection: # open vectors file with h5py.File(vectors, "r") as vectors_handle: # create a generator over the rows rows = ( {"embedding": e, "id": i} for e, i in zip( vectors_handle["embedding"], vectors_handle["id"], ) ) # insert rows in batches to avoid memory issues for batch in batched(rows, ingestion_batch_size): total_rows += len(batch) await table_connection.add(batch) # optimize the table and remove old data await table_connection.optimize( cleanup_older_than=datetime.timedelta(days=0) ) # configure the index for the table index_config = lancedb.index.IvfPq( distance_type="cosine", num_partitions=int(sqrt(total_rows)), num_sub_vectors=int( vector_dim / 16 ), ) # index the table await table_connection.create_index( "embedding", config=index_config ) # ingest and index your data asyncio.run( vectors_to_db( vectors="./my_vectors.h5", db="./test_db", table_name="bucket1", vector_dim=960, ingestion_batch_size=50000 ) ) ãã¯ãã«åãåã蟌ã¿ãåãã±ããã®ã€ã³ããã¯ã¹äœæã¯ãè€æ°ã® AWS Batch ãžã§ãã§äžŠåå®è¡ããããšããåäžã® Amazon Elastic Compute Cloud (Amazon EC2) ã€ã³ã¹ã¿ã³ã¹ã§å®è¡ããããšãã§ããŸãã ããŒã¿ããŒã¹ãžã®ã¯ãšãª ããŒã¿ããã±ããåå²ãã Amazon S3 äžã® LanceDB ããŒã¿ããŒã¹ã«åã蟌ãŸããããã¯ãšãªã®ææ®µãå¿
èŠã§ããLanceDB 㯠LanceDB Python API ã䜿ã£ãŠ Amazon S3 ããçŽæ¥ã¯ãšãªã§ãããããLambda 颿°ã§ãŠãŒã¶ãŒãæå®ããã¯ãšãªãã¯ãã«ãåãåããANN ãæ€çŽ¢ããŠçµæãè¿ãããšãã§ããŸãããã ããããŒã¿ãè€æ°ããŒãã«ã«ãã±ããåå²ãããŠãããããåãã±ããã§æè¿åãæ€çŽ¢ããçµæãéçŽããŠãããŠãŒã¶ãŒã«è¿ãå¿
èŠããããŸãã ã¯ãšãªã¯ãŒã¯ãããŒã¯ AWS Step Functions ã® ã¹ããŒããã·ã³ ãšããŠå®è£
ããŠããŸããåãã±ããã«å¯Ÿããã¯ãšãªåŠçã Lambda ããã»ã¹ãšããŠç®¡çããæåŸã«åäžã® Lambda ããã»ã¹ãããŒã¿ãéçŽããŠçµæã® ANN ã .csv ãã¡ã€ã«ãšã㊠Amazon S3 ã«æžã蟌ã¿ãŸããAWS Batch ããã»ã¹ãããŒã«ã«å®è¡ã§ã代æ¿å¯èœã§ãã以äžã®ã¹ããããã¯ã1 ã€ã®ãã±ããã«å¯Ÿã㊠ANN ã¯ãšãªãå®è¡ããããã»ã¹ã®äŸã§ããå®è¡ã«å¿
èŠãªã®ã¯ python >= 3.9 ãš pandas ã lancedb ããã±ãŒãžã§ããåã蟌ã¿ã»ã¯ã·ã§ã³ãšåæ§ã«ãéåæ LanceDB API ãš lancedb ããŒãžã§ã³ 0.21.1 ã䜿çšããŠããŸãã from typing import List, Iterable import asyncio import lancedb import pandas import random async def run_query_async( lancedb_s3_uri: str, table_name: str, q_vec: List[float], k: int, vec_col: str, n_probes: int, refine_factor: int, ) -> pandas.DataFrame: """Run a query on a LanceDB table. Args: lancedb_s3_uri (str): S3 URI of the LanceDB database. table_name (str): Name of the table to query. q_vec (List[float]): Query vector. k (int): Number of nearest neighbors to return. vec_col (str): Column name of the vector column. n_probes (int): Number of probes to use for the query. refine_factor (int): Refine factor for the query. Returns: pandas.DataFrame: DataFrame containing the approximate nearest neighbors to the query vector. """ # open a connection to the database and table with await lancedb.connect_async( lancedb_s3_uri, storage_options={"timeout": "120s"} ) as db_connection: with await db_connection.open_table(table_name) as table_connection: # query the approximate nearest neighbors to the query vector df = ( await table_connection.query() .nearest_to(q_vec) .column(vec_col) .nprobes(n_probes) .refine_factor(refine_factor) .limit(k) .distance_type("cosine") .to_pandas() ) return df # query the example bucket we produced in the last section bucket1_df = asyncio.run( snippets.run_query_async( lancedb_s3_uri="s3://mg-analysis/owen/20250415_lancedb_snippet_testing/test_db/", table_name="bucket1", q_vec=[random.random() for _ in range(960)], k=3, vec_col="embedding", n_probes=1, refine_factor=1, ) ) äžèšã®ã¯ãšãªã¯ä»¥äžã®æ§é ãæã€ pandas DataFrame ãè¿ããŸãã embedding id _distance [-5.124435, 4.242000, âŠ] id_1 0.000000 [-5.783999, 4.340500, âŠ] id_2 0.001000 [-6.932943, 3.394850, âŠ] id_3 0.04020 embedding ã«ã©ã ã«ã¯æè¿åã®ãã¯ãã«è¡šçŸã id ã«ã©ã ã«ã¯ãã® IDã _distance ã«ã©ã ã«ã¯ã¯ãšãªãã¯ãã«ãšã®ã³ãµã€ã³è·é¢ãæ ŒçŽãããŠããŸãã åãã±ãããåå¥ã®ããŒãã§æ€çŽ¢ããããããããæè¿åã® DataFrame ãè¿ããåŸãçµæãããŒãžããŠãŠãŒã¶ãŒã«è¿ãå¿
èŠããããŸãã以äžã®ã¹ããããã¯ãã®æ¹æ³ã®äŸã§ãã def aggregate_nearest_neighbors( dfs: List[pandas.DataFrame], k: int ): """Aggregate the nearest neighbors for each query vector. Args: dfs (List[pandas.DataFrame]): A list of DataFrames containing the nearest neighbors queried from each bucket. k (int): The number of nearest neighbors to aggregate. Returns: pd.DataFrame: A DataFrame with the aggregated nearest neighbors. """ # concatenate the DataFrames and get the top k nearest neighbors return ( pandas.concat(dfs, ignore_index=True) .sort_values(by=["_distance"], ascending=True) .reset_index(drop=True) .head(k) ) # add the dataframes from querying each bucket to a list dfs = [bucket1_df, bucket2_df, bucket3_df, bucket4_df, bucket_5] # aggregate the nearest neighbors across all buckets nearest_neighbors_all_buckets_df = aggregate_nearest_neighbors(dfs, 5) 倧éã¯ãšãªã®æé©å Lambda ã§ S3 äžã® LanceDB ããŒã¿ããŒã¹ãçŽæ¥æ€çŽ¢ããæ¹æ³ã¯ã1 ã€ãŸãã¯å°æ°ã®ã¯ãšãªãã¯ãã«ã® ANN æ€çŽ¢ã«ã¯é©ããŠããŸãããæ°åããæ°çŸäžã®ãã¯ãã«ãã¯ãšãªããå¿
èŠããããŠãŒã¹ã±ãŒã¹ããããŸãã 倧éã¯ãšãªã«å¯ŸããŠã¹ã±ãŒã«ããæ¹æ³ãšããŠãå
è¿°ã®ã¯ãšãªå®è£
ã倿ŽãããŸãããŒã¿ããŒã¹ã®ãã±ããã® 1 ã€ãããŒã«ã«ã¹ãã¬ãŒãžã«ããŠã³ããŒãããŠãã LanceDB API ã§ããŒã«ã«ã«æ€çŽ¢ããæ¹åŒãæ¡çšããŠããŸããããŒã¿ããŒã¹ãã±ããã®ã¹ãã¬ãŒãžãµã€ãºã倧ããããããã®å®è£
㯠Lambda ããã AWS Batch ãžã§ãã«é©ããŠãããEBS ããªã¥ãŒã ã§ã¯ãªãæé©åãããã€ã³ã¹ã¿ã³ã¹ã¹ãã¬ãŒãž (äŸ: i4i ã€ã³ã¹ã¿ã³ã¹) ã®äœ¿çšãæšå¥šããŸãããã¹ãŠã®ã¯ãšãª Batch ãžã§ããå®äºããåŸãæçµãžã§ããçµæãéçŽããŠãããŠãŒã¶ãŒã«è¿ããŸãã䞊åã¯ãšãªãžã§ããšéçŽãžã§ãã®ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ã«ã¯ Nextflow ã䜿çšã§ããŸãããã±ããããã£ã¹ã¯ã«ããŠã³ããŒããããªãŒããŒããããšã¬ã€ãã³ã·ãŒã¯å¢å ããŸããã倧éã®ã¯ãšãªãããå¹ççã«åŠçã§ããåžžæçšŒåã®ãµãŒããŒããŒã¹ããŒã¿ããŒã¹ãäžèŠã§ãã ãã³ãããŒã¯çµæ ã€ã³ããã¯ã¹æŠç¥ãããŒã¿ããŒã¹åå²ãµã€ãºã¯ãæ±ããããã©ãŒãã³ã¹ã«äŸåããŸãããŠãŒã¹ã±ãŒã¹ã«åãããŠã«ã¹ã¿ãã€ãºããéã®äžè¬çãªæé©åã¬ã€ãã³ã¹ã以äžã«ç€ºããŸãã Metagenomi ãäœæããããŒã¿ããŒã¹ã®äŸã§ã¯ãAMPLIFY ã§çæãã 960 次å
ã®ãã¯ãã«ãšã³ããã£ã³ã° 35 åä»¶ãæ ŒçŽããŠããŸãããã® 35 åãã¯ãã«ãšã³ããã£ã³ã°ã 2 åãã¯ãã«ããšã«åå²ãã i4i.8xlarge ã€ã³ã¹ã¿ã³ã¹ã§åã蟌ã¿ãšã€ã³ããã¯ã¹äœæãè¡ã£ããšãããåèš 108 ã³ã³ãã¥ãŒãæéã§å®äºããŸããããã®ãœãªã¥ãŒã·ã§ã³ã¯ãµãŒããŒã¬ã¹ã§ S3 ãªããžã§ã¯ãã¹ãã¢ããçŽæ¥ã¯ãšãªã§ãããããããŒã¿ããŒã¹ã®åºå®ã³ã¹ã㯠Amazon S3 äžã®ã¹ãã¬ãŒãžå®¹éã®ã¿ã§ã (35 åãã¯ãã«ã®ã€ã³ããã¯ã¹æžã¿ããŒã¿ããŒã¹ã§çŽ 12.9 TB)ãLambda ã«ããã¯ãšãªã¯éåžžã«äœã³ã¹ãã§ãå€ãã®ã¯ãšãªã 1 ã»ã³ãæªæºã§å®è¡ã§ããŸãã äžè¬çã«ãåå²ãµã€ãºã倧ããã»ã©ã¯ãšãªã®ã³ã¹ãå¹çã¯é«ããªããŸãããå®è¡æéãšã€ã³ããã¯ã¹äœææéã¯é·ããªããŸããåäžåå²ã§èš±å®¹å¯èœãªã¯ãšãªå¿çæéãç¶æã§ããæå€§ãµã€ãºãŸã§ã¹ã±ãŒã«ã¢ããããåæã« Lambda åæå®è¡æ°ã®äžéãªã©ã®äžŠååã®å¶çŽãèæ
®ããããšãæšå¥šããŸããMetagenomi ã§ã¯ 2 åãã¯ãã«ããšã®åå²ããå°èŠæš¡ã»å€§èŠæš¡äž¡æ¹ã®ã¯ãšãªã§ã³ã¹ããšå®è¡æéã®æé©ãªãã©ã³ã¹ã瀺ããŸãããåã蟌ã¿ãšã€ã³ããã¯ã¹äœæã«ã¯ i4i ãã¡ããªãŒãªã©ã®ã¹ãã¬ãŒãžæé©åã€ã³ã¹ã¿ã³ã¹ã®äœ¿çšãæšå¥šããŸãããã£ã¹ã¯ããŒã¹ã®ããŒã¿ããŒã¹ã§ã¯ãšãªãå®è¡ããå Žå (Lambda + Amazon S3 ã§ã¯ãªã) ããã¹ãã¬ãŒãžæé©åã€ã³ã¹ã¿ã³ã¹ã®äœ¿çšãæšå¥šããŸããLambda å®è£
ã§ã¯ãæå€§ 50,000 ANN ãèŠæ±ããåäžã¯ãšãªããŸã㯠5 ANN æªæºã§æå€§ 100 ã·ãŒã±ã³ã¹ã®ãã«ãã¯ãšãªãçŽ æ©ãåŠçã§ããŸããã以äžã®ã°ã©ãã«ç€ºãããã«ãå®è¡æéã¯èŠæ±ãã ANN æ°ã«å¯ŸããŠç·åœ¢ã«å¢å ããŸãã ãŸãšã ãã®èšäºã§ã¯ãMetagenomi ã LanceDB ã Amazon S3 ãš AWS Lambda äžã«å®è£
ããæ°ååã®ã¿ã³ãã¯è³ªãšã³ããã£ã³ã°ãäœã³ã¹ãã§ä¿åã»æ€çŽ¢ããæ¹æ³ã玹ä»ããŸããããã®åãçµã¿ã¯ãMetagenomi ãæ ¹æ²»çãªéºäŒåæ²»çã®éçºã«åããŠæšé²ãããæ°èŠé
µçŽ ã®çºèŠãšãšã³ãžãã¢ãªã³ã°ãã©ãããã©ãŒã ã®å éã«è²¢ç®ããŠããŸããã¯ãšãªã¿ã³ãã¯è³ªã® ANN ãšã³ããã£ã³ã°ç©ºéã«æ°ç§ã§ã¢ã¯ã»ã¹ã§ããããã«ãªã£ãããšã§ãå€§èŠæš¡ãªè§£æãã€ãã©ã€ã³ã«é«éæ€çŽ¢ææ³ãçµ±åãã倿§ã§æ°èŠãªé
µçŽ ãã¡ããªãŒã®çºèŠãå éããç ç©¶è
ããšã³ããã£ã³ã°ããªã³ã¶ãã©ã€ã§çæã»æ€çŽ¢ããææ®µãæäŸããŠã¿ã³ãã¯è³ªãšã³ãžãã¢ãªã³ã°ã®åãçµã¿ãå¯èœã«ããŠããŸããMetagenomi ãã¿ã³ãã¯è³ªã»DNA ããŒã¿ããŒã¹ã®æ¥éãªæ¡å€§ãç¶ããäžã䞊åã«ã€ã³ããã¯ã¹åã»æ€çŽ¢ã§ããããŒã¿ããŒã¹åå²ã«ããæ°Žå¹³ã¹ã±ãŒãªã³ã°ããå°æ¥ã®ããŒãºã«å¯Ÿå¿ãããšã³ããã£ã³ã°ããŒã¿ããŒã¹ãœãªã¥ãŒã·ã§ã³ãå®çŸããŠããŸãã ãã®èšäºã§ç޹ä»ãããœãªã¥ãŒã·ã§ã³ã¯ã¿ã³ãã¯è³ª å€§èŠæš¡èšèªã¢ãã« (LLM) ã§çæãããã¯ãã«ã«çŠç¹ãåœãŠãŠããŸãããä»ã®ãã¯ãã«åãããããŒã¿ã»ããã«ãé©çšã§ããŸããAmazon S3 ãšçµ±åãã LanceDB ã®è©³çŽ°ã¯ LanceDB ã®ããã¥ã¡ã³ã ãåç
§ããŠãã ããã åèæç® Fournier, Quentin, et al. âProtein language models: is scaling necessary?.â bioRxiv (2024): 2024-09. èè
ã«ã€ã㊠Audra Devoto Audra ã¯ã¡ã¿ã²ããã¯ã¹ã®ããã¯ã°ã©ãŠã³ããæã€ããŒã¿ãµã€ãšã³ãã£ã¹ãã§ãAWS äžã®å€§èŠæš¡ã²ããã¯ã¹ããŒã¿ã»ããã®åãæ±ãã«é·å¹Žã®çµéšããããŸããMetagenomi ã§ã¯å€§èŠæš¡è§£æãããžã§ã¯ããæ¯ããã€ã³ãã©ãæ§ç¯ããMGXdb ããã®æ°èŠé
µçŽ çºèŠãæšé²ããŠããŸãã Christopher Brown Christopher Brown å士㯠Metagenomi ã® Discovery ããŒã 責任è
ã§ããã¡ã¿ã²ããã¯ã¹ã®å°éå®¶ã§ãããéºäŒåç·šéå¿çšã«åãã倿°ã®æ°èŠé
µçŽ ã·ã¹ãã ã®çºèŠãšç¹æ§è§£æãäž»å°ããŠããŸããã Patrick OâConnor Patrick 㯠AWS ã®ã·ã㢠WorldWide AI ãããã¿ã€ãã³ã°ãšã³ãžãã¢ã§ãã¯ã©ãŠãäžã§çæ AI ãœãªã¥ãŒã·ã§ã³ãšãšã³ãããŒãšã³ãã®ãããã¿ã€ããæ§ç¯ããŠããŸããå€§èŠæš¡èšèªã¢ãã«ãšåæ£ AI ã·ã¹ãã ã®å®è£
ãå°éãšããŠãããIoTããµãŒããŒã¬ã¹æè¡ããã€ããã©ãŒãã³ã¹ã³ã³ãã¥ãŒãã£ã³ã°ã®ç¥èŠã掻ãããŠäŒæ¥ã®è€éãªèª²é¡è§£æ±ºã«åãçµãã§ããŸãã Owen Janson Owen 㯠Metagenomi ã®ãã€ãªã€ã³ãã©ããã£ã¯ã¹ãšã³ãžãã¢ã§ãå€§èŠæš¡ã²ããã¯ã¹ããŒã¿ã»ããã®è§£æãæ¯ããããŒã«ãšã¯ã©ãŠãã€ã³ãã©ã®æ§ç¯ã«æ³šåããŠããŸãã Pavel Novichkov Pavel Novichkov å士㯠AWS ã®ã·ãã¢ãœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãã§ãã²ããã¯ã¹ãšã©ã€ããµã€ãšã³ã¹ãå°éãšããŠããŸãã15 幎以äžã®ãã€ãªã€ã³ãã©ããã£ã¯ã¹ãšã¯ã©ãŠãéçºã®çµéšãæã¡ããã«ã¹ã±ã¢ã»ã©ã€ããµã€ãšã³ã¹åéã®ã¹ã¿ãŒãã¢ããã AWS äžã§ã¯ã©ãŠãããŒã¹ã®ãœãªã¥ãŒã·ã§ã³ãèšèšã»å®è£
ããæ¯æŽãè¡ã£ãŠããŸããNIH ã® National Center for Biotechnology Information ã§ãã¹ãã¯ç ç©¶ãè¡ããBerkeley Lab ã§ 12 幎以äžèšç®ç ç©¶ç§åŠè
ãšããŠå€åããŸããã ãã®èšäºã¯ Kiro ã翻蚳ãæ
åœããSolutions Architect ã® Sotaro Hikita ãã¬ãã¥ãŒããŸããã
ã¯ããã« ãããã€ã³ã¿ãŒãããã§ã¯ãImageFlux Live Streamingãšããã©ã€ãé
ä¿¡PaaSãæäŸããŠããŸãããã®ãµãŒãã¹ã§ã¯ãã©ã€ãé
ä¿¡ã ãã§ãªãããã®ã¢ãŒã«ã€ããHLS圢åŒã§ä¿åããããšãå¯èœã§ãã […]
ããã«ã¡ã¯ããã¡ã€ã³ãã£ã®PlatforméçºããŒã ïŒä»¥éãSREããŒã ïŒã§SREãæ
åœããŠããåïŒ ãããã
ã ïŒãå¯ç°ïŒ @Cooking_ENG ïŒãæŸæ¬ïŒ @mozumasu ïŒã§ãã 2026幎6æ25æ¥ã»26æ¥ã«å¹åŒµã¡ãã»ã§éå¬ããããAWS Summit Japan 2026ãã«ãSREããŒã ã®3åã§åå ããŠããŸããã aws.amazon.com ãããããå°è±¡ã«æ®ã£ãã»ãã·ã§ã³ã1æ¬ãã€åãäžãããã¡ã€ã³ãã£ã®çŸç¶ãšçŽã¥ããŠãå±ãããŸãã ã¹ã¿ãŒãã¢ããã«Amazon EKSã¯æ©ãããïŒ ãã«ããããã¯ãæŠç¥ãå éããPlatform Engineeringã®å®è·µ TBSãã¬ããã©ãŽã£ããïŒãå€§èŠæš¡é
ä¿¡ã®è£åŽãšAWSãµãŒããŒã¬ã¹èšèš å®è·µïŒAmazon RDSãšAmazon Auroraã®ã³ã¹ãæé©åãšããã©ãŒãã³ã¹åäž ãŸãšã ã¹ã¿ãŒãã¢ããã«Amazon EKSã¯æ©ãããïŒ ãã«ããããã¯ãæŠç¥ãå éããPlatform Engineeringã®å®è·µ SREããŒã ã® å ã§ãã ç§ãå°è±¡çã ã£ãã®ã¯ãæ ªåŒäŒç€Ÿãã°ã©ã¹ã®äžäºç¶Ÿäžããã«ããã»ãã·ã§ã³ãã¹ã¿ãŒãã¢ããã«Amazon EKSã¯æ©ãããïŒ ãã«ããããã¯ãæŠç¥ãå éããPlatform Engineeringã®å®è·µãã§ãã ãã¡ã€ã³ãã£ã¯ECSãäžå¿ã«æ§æããŠããŸãããä»åŸPlatformãã©ã®ããã«ããŠããããšããå€æè»žãæã¡åž°ããããšèãããã®ã»ãã·ã§ã³ã«åå ããŸããã ãã°ã©ã¹ã¯çµå¶ç®¡çãµãŒãã¹ãLoglassããäžå¿ã«ãã«ããããã¯ãæŠç¥ãé²ããŠããäŒç€Ÿã§ãæ¬ã»ãã·ã§ã³ã§ã¯Amazon EKSãããŒã¹ã«ããPlatformåºç€ã®å°å
¥ããã1幎ã§ç€Ÿå
ã«åºããŠãããŸã§ã®å®è·µã玹ä»ãããŸããã äžäºãããEKSå°å
¥ã倿ããæç¹ã§ã®ããŒã èŠæš¡ã¯ã次ã®éã玹ä»ãããŠããŸããã ãšã³ãžãã¢çŽ50å ãããã¯ã2〠SREããŒã 4å ããã«ããããã¯ãæŠç¥ã»SRE4åããšããæ¡ä»¶ã§ããªããéãããšèšãããã¡ãªEKSãéžãã ã®ãããšããã®ãæ¬ã»ãã·ã§ã³ã®äž»é¡ã§ããã ç¹ã«å°è±¡ã«æ®ã£ãã®ã¯ãæè¡éžå®ã®è»žãšããŠäžäºãããç¹°ãè¿ãèšãåã£ãŠããããä»ã®èŠæš¡ãã§ã¯ãªããæ°å¹ŽåŸã®äºæ¥ã«ãã£ããããããã§å€æããããšããèšèã§ããã åºç€éžå®ãããéã«ã¯ããçŸæç¹ã§ååããä»ã®äººæ°ã§éçšã§ããããšããçŸåšå°ããŒã¹ã«ãªããã¡ã§ãããäžäºããããã¯Platformæ§ç¯ã¯1ã2幎ãããé·ææè³ã§ã課é¡ãé¡åšåããŠããçæããã®ã§ã¯éã«åããªãããšããã¡ãã»ãŒãžãç¹°ãè¿ãããŠããŸããã å®éã«ãSRE4åã§å°å
¥ãé²ããPlatformåºç€äžã§ã1幎ã§5ããŒã ã»çŽ20ãµãŒãã¹ãŸã§å±éããããšã®ããšã§ãã ãã1ã€åºãã£ãã®ããAIæä»£ã ããããEKSãã©ãããã©ãŒã ã«äŸ¡å€ãããããšãã䞻匵ã§ããCoding Agentãé«éã«å€æŽãçãæä»£ã«ã¯ãNamespaceåé¢ã»RBACãAdmission Controllerã«ãã£ãŠããŒã ã»ãµãŒãã¹ããšã®æš©éå¢çãããªã·ãŒãæ©æ¢°çã«æ
ä¿ã§ããéçºå¹çãšå質ã»çµ±å¶ãäž¡ç«ã§ããããšãã芳ç¹ã§ããã ããã§æ°ã«ãªãã®ãããã¡ã€ã³ãã£ã®çŸåšå°ã§ãã ãã¡ã€ã³ãã£ã¯çŸåšããã«ããããã¯ãå±éãSREããŒã 4åãåºç€ã¯Amazon ECSäžå¿ã§ãã€ã³ãã©æ§ç¯ã¯Terraformæ±çšã¢ãžã¥ãŒã«ãä»ããŠéçºè
äž»äœã§é²ããããäœå¶ãæŽããŠããŸããã tech.findy.co.jp çŽè¿ã®SREããŒã å
šäœã®åãçµã¿ã¯ã次ã®Findy Tech Talkã§ã玹ä»ããŠããŸãã tech.findy.co.jp ãã«ããããã¯ããšéçºè
äž»äœã§ã®éçšãããã«åºãã£ããšãã«ãSREããŒã ãããã«ããã¯ã«ãªããªãPlatformã®åœ¢ãã©ãå
åãã§ä»èŸŒããã®éèŠæ§ãæããŸããããäºæ¥ã«å¯ŸããŠPlatformãã©ãå
åãã§ä»èŸŒããããšããèãæ¹ã¯å€§å€å匷ã«ãªããŸããã TBSãã¬ããã©ãŽã£ããïŒãå€§èŠæš¡é
ä¿¡ã®è£åŽãšAWSãµãŒããŒã¬ã¹èšèš SREããŒã ã® å¯ç° ã§ãã ç§ãåå ããã®ã¯ãæ ªåŒäŒç€ŸTBSãã¬ãã®äºç°éŒããã«ãããã¬ã€ã¯ã¢ãŠãã»ãã·ã§ã³ãTBSãã¬ããã©ãŽã£ããïŒãå€§èŠæš¡é
ä¿¡ã®è£åŽãšAWSãµãŒããŒã¬ã¹èšèšãã§ãã ãã©ãŽã£ããïŒå¿å¹ŽäŒ '25ãããæ³å®èŠèŽè
æ°6äžäººèŠæš¡ã§é
ä¿¡ããéã®è£åŽã玹ä»ããå
容ã§ããã å
šã宣äŒã§ããŠããŸããã§ããããAWS Summitã§åç»å£ããŸããïŒïŒ ãèãããã ãããããšãããããŸããð #AWSSummit pic.twitter.com/PtQwcKdcxY — Ryo (@ry_km_u_u) 2026幎6æ25æ¥ x.com ãã©ãŽã£ããïŒå¿å¹ŽäŒ '25ãã®é
ä¿¡ãã©ãããã©ãŒã ã«ã¯ãKustamieãšããTBSãã¬ããéçºããŠããèªç€ŸãµãŒãã¹ã䜿ãããŠããŸããé
ä¿¡è
ãšåå è
ã®åæ¹åãªãããšããå
å®ããããåå æããé«ããããã®ã€ãã³ãåããã©ãããã©ãŒã ã§ãã ã¢ãŒããã¯ãã£ã¯ãµãŒããŒã¬ã¹äžå¿ã§ãããŒã¿ç®¡çã«Amazon ECSãšAmazon Aurora Serverless v2ãã¯ã©ã€ã¢ã³ãAPIã«Amazon API GatewayãšAWS Lambdaãæ åãšãªã¢ã«ã¿ã€ã éä¿¡ã«Amazon IVS (Interactive Video Service) ãå©çšããŠããŸãã å€§èŠæš¡é
ä¿¡ã«åããæ¢åã®ã¯ã©ã€ã¢ã³ãAPIæ§æã«ã¯æ¬¡ã®ãããªèª²é¡ããã£ãããã§ãã ãã£ãã·ã¥ãåæãšããæ§æã«ãªã£ãŠããªãã£ã é
ä¿¡åå æã®APIã¬ã¹ãã³ã¹ã«æé·12ç§çšåºŠããã£ãŠãã è² è·è©Šéšã宿œããããšããªããé«è² è·æã®æåãæªç¥æ°ã ã£ã ãããã®èª²é¡ã«å¯Ÿãã解決çã®äžã§ãç¹ã«å°è±¡ã«æ®ã£ãã®ã倿®µãã£ãã·ã¥æ§æã«ããã¬ã¹ãã³ã¹æ¹åã®ã話ã§ããã æ¡çšãããã®ã¯ãAmazon API Gatewayã®ã¹ããŒãžãã£ãã·ã¥ã»AWS Lambda颿°ã®ã°ããŒãã«å€æ°ã»Amazon ECSãšäœµèšããAmazon ElastiCache (Valkey) ãçµã¿åããã3å±€æ§æã§ãã API Gatewayã¹ããŒãžãã£ãã·ã¥ã§GETç³»ã¬ã¹ãã³ã¹ããšããžããè¿ããLambdaã®ã°ããŒãã«å€æ°ã§ãããã¹ã¿ãŒãæã®é¢æ°åæåãçããElastiCacheã§åŸæ®µã®DBã¢ã¯ã»ã¹ã軜ãããããšãã圢ã§å€æ®µã«ãã£ãã·ã¥ãå¹ãããã«ããŠããŸããã çµæãšããŠãæé·12,000msçšåºŠããã£ãŠããé
ä¿¡åå æã®APIã¬ã¹ãã³ã¹ããå¹³å150msçšåºŠãŸã§æ¹åããããã§ãã Amazon SQSãšAWS Step Functions Expressã«ããéåæåãåãããŠå®æœãããŠãããèšèšå
šäœã§å€§ããªæ¹åå¹
ãåºãŠããŸããã è² è·è©Šéšã«ã¯OSSã®è² è·è©ŠéšããŒã«Grafana k6ã䜿ãããŠãããåŸ
æ©é
ä¿¡åâåŸ
æ©é
ä¿¡äžâæ¬ç·šé
ä¿¡äžã®3ãã§ãŒãºã§ææ°çã«VUãå¢ããã·ããªãªã§æ¬çªã®ã¢ã¯ã»ã¹ãã¿ãŒã³ãåçŸããããã§ãã çŽè¿ãç§ãk6ãšDatadogã§ãã¡ã€ã³ãã£ã®è² è·è©Šéšç°å¢ãæ§ç¯ããŠãããšããã ã£ãã®ã§ãã·ããªãªèšèšãèŠæš¡ã®èŠç«ãŠãèªåã®äœæ¥ãšéãªã£ãŠãç¹ã«èº«è¿ã«æãããã話é¡ã§ããã ãã¡ã€ã³ãã£ã§ã®è² è·è©Šéšç°å¢æ§ç¯ã®åãçµã¿ã¯æ¬¡ã®èšäºã§ç޹ä»ããŠããŸãã tech.findy.co.jp 6äžäººèŠæš¡ã®åæã¢ã¯ã»ã¹ããµãŒããŒã¬ã¹äžå¿ã®æ§æã§ãã°ãäºäŸãšããŠãèšèšã®åŒãåºããå¢ãããã»ãã·ã§ã³ã§ããã ãã¡ã€ã³ãã£ã§ããFindy Conferenceããäžå¿ã«ç¬éçãªã¢ã¯ã»ã¹éäžã¯çºçãããããããã£ãã·ã¥ãã©ã®å±€ã§éãããããã©ããéåæã«éãããããèšèšåæããæèããå§¿å¢ã¯åèã«ãããèãæ¹ã§ããããšããžã»Lambdaã»ElastiCacheã§å€æ®µã«ãã£ãã·ã¥ãå¹ãããçºæ³ã¯ãä»åŸã®è² è·ç¹æ§ã®å€åã«åããåŒãåºããšããŠæã¡åž°ããããšæããŠããŸãã ãŸããAmazon IVSã®ããã«ãã©ã€ãé
ä¿¡åãã«äœ¿ããAWSãµãŒãã¹ããŠãŒã¹ã±ãŒã¹ãšã»ããã§ç¥ããããšãåç©«ã§ããã Kustamieã¯2026幎ç§ã«ããŒã¿çæäŸéå§äºå®ãšã®ããšã§ããã©ããªã€ãã³ãäœéšãåºãã£ãŠããã®ãããªãªãŒã¹ã楜ãã¿ã§ãã å®è·µïŒAmazon RDSãšAmazon Auroraã®ã³ã¹ãæé©åãšããã©ãŒãã³ã¹åäž SREããŒã ã® æŸæ¬ ã§ãã ç§ãå°è±¡ã«æ®ã£ãã®ã¯ãã¢ããŸã³ ãŠã§ã ãµãŒãã¹ ãžã£ãã³ååäŒç€Ÿã®å¡äºç¥ä¹ããã«ãããã¬ã€ã¯ã¢ãŠãã»ãã·ã§ã³ãå®è·µïŒAmazon RDSãšAmazon Auroraã®ã³ã¹ãæé©åãšããã©ãŒãã³ã¹åäžãã§ãã ãããã©ãŒãã³ã¹åäžããšãã³ã¹ãæé©åãã¯äž¡ç«ã§ããããšããããŒãã®ããšãæ¶ç©ºã®ECæ¯æŽäŒæ¥ãAnyCompanyããçŽé¢ãã課é¡ãšããã®è§£æ±ºçã远äœéšããŠããæ§æã®ã»ãã·ã§ã³ã§ããã AnyCompanyã«ã¯ãã¬ããŒãã¯ãšãªã«ããéçšDBã®å§è¿«ããè€éã¯ãšãªã§ã®äžæãªããžã§ã¯ãæžãåºãã«ããI/Oããã«ããã¯ããã¡ã¢ãªã«ä¹ãåããªããããããŒã¿ããããã¯ã¢ããã³ã¹ãã®è¥å€§åããšãã£ããå®åã§ããééãã課é¡ã䞊ãã§ããŸããã ã»ãã·ã§ã³å
šäœã§ç¹°ãè¿ãåãããŠããã®ããã倧ããã€ã³ã¹ã¿ã³ã¹ãžã®åçŽã¹ã±ãŒãªã³ã°ã¯ãæãã³ã¹ãå¹çã®è¯ãéžæãïŒããšããåãã§ãã ç¹ã«å°è±¡ã«æ®ã£ãã®ããåçŽã¹ã±ãŒãªã³ã°ã«é Œããã«ã³ã¹ããšããã©ãŒãã³ã¹ãäž¡ç«ãã3ã€ã®ãã¿ãŒã³ã§ããã ãªãŒãã¬ããªã«ãžã®ã¯ãšãªãªãããŒãïŒã¬ããŒãã¯ãšãªãéããïŒ RDS Optimized ReadsïŒäžæãªããžã§ã¯ããããŒã«ã«SSDã«éããïŒ Aurora Optimized ReadsïŒãããã¡ãã£ãã·ã¥ãããŒã«ã«SSDã«æ¡åŒµããïŒ 1ã€ç®ã¯ããªãŒãã¬ããªã«ãžã®ã¯ãšãªãªãããŒãã§ãã 瀟å
ããŒã¿ã¢ããªã¹ãã®ã¬ããŒãã¯ãšãªãéçšDBãå§è¿«ããŠããç¶æ³ã§ãã€ã³ã¹ã¿ã³ã¹ã1段éäžãã代ããã«ãå°ããã®ãªãŒãã¬ããªã«ãè¶³ããŠã¬ããŒããéããæ§æã«ããããšã§ãçŽ15%ã®ã³ã¹ãåæžãšé¡§å®¢APIã®å®å®åãåæã«å®çŸã§ããããšãã詊ç®ã§ããã ãå
ã«åããããšã§ãããå®ãæžãããšããçºæ³ã¯ãAmazon RDSãŸããã®æ§æå€æã§ãå¿çšãå¹ã話ã ãšæããŸããã 2ã€ç®ã¯ãRDS Optimized Readsã§äžæãªããžã§ã¯ããããŒã«ã«SSDã«éãããã¿ãŒã³ã§ãã è€éãªã¯ãšãªã§çæãããäžæãªããžã§ã¯ããAmazon EBSã«æžãåºãããŠã¬ã€ãã³ã·ã䌞ã³ãããšããããã«ããã¯ã«å¯ŸããããŒã«ã«NVMe SSDãæèŒããã€ã³ã¹ã¿ã³ã¹ãžèŒãæ¿ããŠäžæãã¡ã€ã«ã®æžãåºãå
ãããŒã«ã«SSDã«åãæ¿ããããšããã¢ãããŒãã§ããã åçŽã¹ã±ãŒãªã³ã°ãšæ¯ã¹ãŠçŽ43%ã®ã³ã¹ãåæžãã€æå€§2åã®èªã¿åãæ§èœåäžãšããã®ã¯ãç¥ããªããšéžã¹ãªãéžæè¢ã ãšçæããŸããã 3ã€ç®ã¯ãAurora Optimized Readsã§ãããã¡ãã£ãã·ã¥ãããŒã«ã«SSDã«æ¡åŒµãããã¿ãŒã³ã§ãã ã¡ã¢ãªã«ä¹ãåããªããããããŒã¿ããã£ã¹ã¯ããèªã¿çŽããŠããŸãããšããããã«ããã¯ã«å¯ŸããããŒã«ã«NVMe SSDããããã¡ããŒã«ã®ç¬¬2éå±€ãšããŠäœ¿ããéå±€åãã£ãã·ã¥ãã§å¯ŸåŠããŸãã åçã®ã€ã³ã¡ã¢ãªãã£ãã·ã¥ãåŸãããã«å€§ããªã€ã³ã¹ã¿ã³ã¹ã«äžãã代ããã«ãå°ããã®ã€ã³ã¹ã¿ã³ã¹ + I/O-Optimizedã®çµã¿åãããéžã¶ããšã§ãçŽ90%ã®ã³ã¹ãåæžãšæå€§8åã®èªã¿åãæ§èœãå®çŸããäºäŸã§ããã 倿ã®ã¹ããããšã㊠BufferCacheHitRatio ã AuroraEstimatedSharedMemoryBytes ã§ã¯ãŒãã³ã°ã»ãããææ¡ããŠããéžã¶ããšããæé ãåãããŠç€ºãããŠãããããŸãå¯èŠåããŠããæãæã€ããšããåºæ¬ãããã§ã培åºãããŠããã®ãå°è±¡çã§ããã ããã¯ã¢ããé¢ã§ããèªåããã¯ã¢ããã®ä¿ææéãçãããããããå€ãåã¯Amazon S3ãžã®Parquet圢åŒã¹ãããã·ã§ãããšã¯ã¹ããŒãã«åãæ¿ããããšã§ã30%ã®ã³ã¹ãåæžãã§ãããšãã詊ç®ã玹ä»ãããŠããŸããã é害埩æ§ã®ããã®ãªã¹ãã¢èŠä»¶ã¯çŽè¿ã®ããŒã¿ã§è¶³ããäžæ¹ãç£æ»ãéå»ããŒã¿ã®åç
§ã¯å¿
ããã峿ã®ãªã¹ãã¢ãå¿
èŠãšããªããããS3ãžã®å®äŸ¡ãªãšã¯ã¹ããŒãã«éãããŸãããã®ããªã¹ãã¢èŠä»¶ããšãåç
§èŠä»¶ããåããŠèãããšã³ã¹ãæ§é ã倧ããå€ããããšããã®ã¯ãã¡ã€ã³ãã£ã®éçšã§ãããã«èŠçŽããããªèгç¹ã§ãã ã©ã®èª²é¡ã§ããDatabase InsightsãPerformance Insightsã§ãŸãã¯ãŒã¯ããŒããå¯èŠåããããã«ããã¯ã«å¿ããŠé©åãªã€ã³ã¹ã¿ã³ã¹ãã¡ããªãŒã»ã¹ãã¬ãŒãžã¿ã€ãã»ãã£ãã·ã¥éå±€ãéžã³çŽãããšããæµãã§é²ããããŠããã®ãå°è±¡çã§ããã ãèŠããªããã®ã¯æ¹åã§ããªãããšããåºæ¬ããAnyCompanyã®èª²é¡ãéããŠè¿œäœéšã§ããæ§æã«ãªã£ãŠãããšæããŸããã ãŸã㯠BufferCacheHitRatio ã VolumeReadIOPs ã» VolumeWriteIOPs ãèŠçŽããI/O-OptimizedãOptimized Readsãå¹ãã¯ãŒã¯ããŒãããªãããæ£åžããããšããããå§ããããšæããŸãã ãŸãšã 2æ¥éãéããŠãå瀟ã®äºäŸãææ°ãµãŒãã¹ã«çŽæ¥è§Šããããæ¿ãã€ã³ãããã®æ©äŒãšãªããŸãããè² è·è©Šéšã®ã·ããªãªèšèšããAmazon RDS/Auroraã®ã³ã¹ãæé©åããã«ããããã¯ãæä»£ã®Platformã®åœ¢ãšãã£ããçŸå°ã§æã¡åž°ã£ãè«ç¹ããSREããŒã ã®æ¥ã
ã®åãçµã¿ã«å°ããã€æŽ»ãããŠãããŸãã ãã¡ã€ã³ãã£ã§ã¯ãSREã¡ã³ããŒãåéããŠããŸããèå³ãæã£ãŠããã ããæ¹ã¯ãã¡ãã®ããŒãžãããå¿åãé¡ãããŸãã herp.careers






















