Upgrade to Pro — share decks privately, control downloads, hide ads and more …

サーバレスなDBと向き合う

 サーバレスなDBと向き合う

Avatar for kunioku_KGX

kunioku_KGX

August 22, 2025
Tweet

More Decks by kunioku_KGX

Other Decks in Technology

Transcript

  1. 3
 Serverless アプリケーション利用 
 スケーラビリティ
 可用性
 ミドルウェアのメンテ
 ミドルウェアの導入
 OSのメンテ
 OSの導入


    サーバーのメンテ
 ハードウェ導入管理
 電源・ネットワーク
 アプリケーション利用 
 スケーラビリティ
 可用性
 ミドルウェアのメンテ
 ミドルウェアの導入
 OSのメンテ
 OSの導入
 サーバーのメンテ
 ハードウェ導入管理
 電源・ネットワーク
 アプリケーション利用 
 スケーラビリティ
 可用性
 ミドルウェアのメンテ
 ミドルウェアの導入
 OSのメンテ
 OSの導入
 サーバーのメンテ
 ハードウェ導入管理
 電源・ネットワーク
 オンプレミス
 仮想サーバー
 Amazon EC2
 サーバレス
 AWS Lambda等
 ユーザー対応 AWS側対応
  2. 当社で使うサーバレス 
 AWS IoT Core AWS Lambda Amazon DynamoDB Amazon

    S3 Amazon Aurora Serverless v2 AWS Amplify Amazon API Gateway AWS Fargate IoTデバイス連携
 データベース
 データレイク
 データ処理
 コンテナ
 Webアプリケーション
 API
 AWS Step Functions ワークフロー
 認証認可
 Amazon Cognito
  3. データの見える化 遠隔制御 当社の使い所 
 保存
 収集・処理
 ネットワーク 
 機器接続
 AWS

    IoT Core AWS Lambda Amazon DynamoDB IoTゲートウェイ 
 4G/LTE
 SORACOM Beam
 AWS Cloud 詳細は(株)エナジーソリューションHP https://energy-solution.co.jp/service/mys3/
  4. VPC
 Public subnet
 Private subnet
 Amazon Aurora Serverless v2 IGW

    Application Load Balencer ECS 当社の使い所 
 IoTデバイスのデータ可視化や 分析等にFargate上でGrafana をホスティング
  5. 11 Auroraサーバレスでもアップグレード?? 
 - そう。私はDBをよく知らない。アップグレードも実はよく知らない。
 - Aurora Serveless v2のPostgreSQL13系をずっと使ってたけど、標準サポート終了 が迫っていることから、アップグレード作業を決意。


    - 当チームではAWS CDKを使いAWSを構築している。
 調べたところ、ダウンタイムが許容できるなら、CDKでAuroraのバージョン設定を 変えてデプロイすることでうまくできそう。
 (インプレースアップグレード)
 今回、DB初心者の私がAuroraのアップグレードにトライしました

  6. 12 コンソール上でのアップグレードを試す 
 v13.17→ v14.19に上げようとしたとこ ろ、エラー発生。
 VPC
 Public subnet
 Private

    subnet
 Amazon Aurora Serverless v2 ECS 過去にコンソール上で作成したECS、Auroraの 環境があったため、コンソール上でアップグ レードをテスト
 Database cluster is in a state that cannot be upgraded: Postgres cluster is in a state where pg_upgrade can not be completed successfully
  7. 15 AWS CDKを使ったアップグレード 
 じゃあ、CDKでアップデートするときも、 あらかじめ、ACUあげておけばOKね。 VER_13_8から VER_14_8へ Resource handler

    returned message: "Cannot upgrade aurora-postgresql from 13.18 to 14.8 (Service: Rds, Status Code: 400, Request ID: xxxxxxxxxxxxx) しかし、アップグレード失敗 (あとから思うとこのとき、しっかりエラー内容を見ておけば そこまで沼に入らずに済んだ)
  8. 17 AWS CDKを使ったアップグレード 
 - AWS CDK L2コンストラクトで設定したAuroraは自動でマイナーバージョン アップデートが走る。実際のAuroraは新しいバージョンで稼働していた
 


    - AWS CDKで設定しているバージョンはv13.8で古いままであり差分があるも のの、この状態でCDK delpoyを走らせてもDBのバージョンダウンは勝手に 動かないようになっている
 
 →その結果、CDK側のAuroraのマイナーバージョンがdepricatedになってい ることに気づかず、今回あたふたしてしまった
 なぜ今まで不都合がなかったのか??

  9. 19 真のサーバレスを求めて・・・ 
 “Amazon Aurora DSQL は、事実上無制限の スケール、最高の可用性を備え、インフラストラ クチャ管理が不要なサーバーレス分散 SQL

    データベースです。(中略)
 Aurora DSQL は PostgreSQL と互換性 があ り、使いやすいデベロッパーエクスペリエンスを 提供します。”
 https://aws.amazon.com/jp/rds/aurora/dsql/ Aurora DSQLをDBとして使えないだろうか??
  10. Aurora DSQLをGrafanaのDBにできないか? 
 Grafanaの環境設定にAurora DSQLの情 報を設定
 VPC
 Public subnet
 Private

    subnet
 Amazon Aurora Serverless v2 ECS Amazon Aurora DSQL ×
 Endpoints
 (VPC Endpoint)
 IAM認証だけではなく、トークンの取得が 必要でうまくいかず。
 →15分でトークンが切れるため、
 結果としてはうまくいかず。。。
 (サイドカー等で定期的にトークンを取得 する仕組みが必要かも)

  11. 21 まとめ
 - Aurora Seveless v2のメジャーバージョンアップグレードは、適切な ACUを設定することが大事
 
 - AWS

    CDKにてAuroraをデプロイする際は、バージョンの指定に注意が 必要
 (Depricatedのバージョンからはアップグレードできない)
 
 - Auroraの仕組みを学びAurora DSQLも触ることができたので、少しだ けDB運用の自信がついた