APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

Aivenに入門してみた

はじめに

こんにちは。ACS事業部)土居です。
最近私の所属するチームで話題になっているAivenに入門してみました。
あまり知られていないサービスだと思いますので、これを気にたくさんの方に知ってもらえればと思い紹介します。

Aivenとは?

Aivenはヘルシンキに本社があり、オープンソースのデータプラットフォームをフルマネージドでサービス提供しています。
昨今のクラウドシステムではオープンソースのデータプラットフォームが利用される事も多くなってきています。 一方で、これらの高度な設定、パフォーマンスのチューニングやバージョンアップなどの継続的な管理を考慮すると管理者に負担を強いることも多いです。 データプラットフォームをマネージドのサービスとして利用することで、エンジニアはアプリケーション開発やデータマネジメントに集中して取り組むことが可能です。
Aivenは現在(2023年2月)、下記のオープンソースをサービス提供しています。

  • Apache Kafka
  • Apache Flink
  • PostgreSQL
  • MySQL
  • Redis
  • Apache Cassandra
  • OpenSearch
  • InfluxDB
  • ClickHouse
  • M3
  • Grafana

もう一つの特徴として、AivenはこれらのサービスをAWS、Google Cloud、Microsoft Azureの主要クラウドプロバイダーへ自由に展開することが可能です。 この時、各自で所持しているAWSアカウントやAzureのサブスクリプション情報などは必要ありません。 Aivenは自社で主要クラウドプロバイダー内に大規模なリソースをプールしているので、利用する側はAivenが所持するクラウドプロバイダー上のホストで稼働しているサービスを利用します。
各クラウドプロバイダーのアカウントや環境の準備を行わなくても、マルチクラウド化が簡単に実現できます。例えば、データベースをAWSとMictosoft Azureでレプリーケーションしてデザスターリカバリーの対策を行ったり、クラウド間でデータを保持したままの移行も簡単に行えます。
一応、自身のアカウントを持ち込むことも可能です。詳細は下記を参照下さい。

docs.aiven.io

加えて、各クラウドプロバイダー上の構築した自社のシステムとAivenのデータサービスを閉域で接続したいニーズもあるかと思います。その際は、VPCという機能を使ってpeeringを設定することで接続が可能です。 docs.aiven.io

また、マルチクラウドの利用が当たり前となった現在では、各クラウド上のシステムが抱えているデータや様々なデバイス等から送信されるテレメトリデータなどを一元的に管理するのが難しいといった課題もあります。 これも、AivenのKafkaやOpenSearchなどを活用することで、データを集約して可視化や分析を行ったりすることが可能です。

まさにAivenのコンセプトである「データインフラをシンプルに」で自由度の高いクラウドデータ管理が可能になります。

AivenでPostgreSQLを作成してみる

では、無料トライアルでAivenを利用してRDBとしてよく使われるPostgreSQLを作成してみたいと思います。

https://aiven.io/ にアクセスして、「無料トライアル」に進みます。

画面指示に従い、必要情報を入力してAivenのアカウントを作成します。

Aivenアカウントの作成が完了すると、無事Aivenにアクセスできます。

「Create service」から以下設定でPostgreSQLを作成してみます。

  • 「1. Select Your Service」で「PostgreSQL」を選択します。

  • 「2. Select Service Cloud Provider」で「Microsoft Azure」を選択します。

  • 「3. Select Service Cloud Region」で「Asia Pacific」-「azure-japaneast」を選択します。

  • 「4. Select Service Plan」では最安の「Startup-4」を選択します。

  • 「5. Additional Storage」と「6. Provide Service Name」はデフォルトのままにします。

※Aivenでの高可用性については、各クラウドのAvailability Zoneの仕組みが採用されています。詳細は下記を参照下さい。

docs.aiven.io

たったこれだけでAivenでPostgreSQLがバックグランドで作成開始されます。UIではPostgreSQLの詳細設定のステップに遷移しますが、後からでも設定変更可能なので「Skip this step」します。

こちらはPostgreSQLのサービス画面です。

  • Connection informationの「Service URI」をpsql等で指定すればデータベースにアクセス可能です。

  • メニュータブにある「Metrics」、「Logs」、「Query Statistics」あたりでPostgreSQLの簡易的な監視が可能となっています。より詳細なMetricsやログの分析などは、「Integrations」でその他のソリューションと連携しましょう。

画面をスクロールすれば、PostgreSQLの機能設定が可能です。例えば、スペックの変更、別のリージョンやクラウドへのレプリカ作成、データベースの複製、メンテナンスウィンドウの設定、IPアドレス許可、バックアップ頻度変更など行えます。

早速、チュートリアル Getting started with Aiven for PostgreSQL® - Aiven に従ってPostgreSQLにアクセスしデータベースとテーブルを作成してみます。

#サンプルデータのダウンロード と解凍
k_doi@Azure:~$ wget https://ftp.postgresql.org/pub/projects/pgFoundry/dbsamples/dellstore2/dellstore2-normal-1.0/dellstore2-normal-1.0.tar.gz
k_doi@Azure:~$ tar -zxvf dellstore2-normal-1.0.tar.gz 
k_doi@Azure:~$ cd dellstore2-normal-1.0/

#psqlでPostgreSQLにアクセスする
#接続先はConnection informationの「Service URI」となる
k_doi@Azure:~/dellstore2-normal-1.0$ psql postgres://avnadmin:********************@doi-test-ap-*****.aivencloud.com:19872/defaultdb?sslmode=require

#データベースとテーブルを作成する
defaultdb=> CREATE DATABASE dellstore;
defaultdb=> \c dellstore
dellstore=> \i dellstore2-normal-1.0.sql
dellstore=> \d
                    List of relations
 Schema |           Name           |   Type   |  Owner
--------+--------------------------+----------+----------
 public | categories               | table    | avnadmin
 public | categories_category_seq  | sequence | avnadmin
 public | cust_hist                | table    | avnadmin
 public | customers                | table    | avnadmin
 public | customers_customerid_seq | sequence | avnadmin
 public | inventory                | table    | avnadmin
 public | orderlines               | table    | avnadmin
 public | orders                   | table    | avnadmin
 public | orders_orderid_seq       | sequence | avnadmin
 public | products                 | table    | avnadmin
 public | products_prod_id_seq     | sequence | avnadmin
 public | reorder                  | table    | avnadmin
(12 rows)

通常のPostgreSQLと何ら変わらず操作可能です。

PostgreSQLのバージョンアップを実行してみる

Aivenは各アップストリーム プロジェクトが設定するEOLに合わせる形でサービスを提供しています。 詳細は下記を参照下さい。
今回は作成したPostgreSQLのメジャーバージョンをアップしてみましょう。

docs.aiven.io

作成したPostgreSQLのサービス画面上部の「EOL:2026-11-12:OK」-「Upgrade」を選択します。 PostgreSQLを14系から15系にメジャーバージョンアップします。

バージョンアップが完了すると、無事PostgreSQL 15系になっているのが確認できます。

PostgreSQLのバージョンアップ時の詳細な挙動は下記に記載があります。 インプレースアップグレードのため、作成したデータベースやテーブルの中身もそのままです。

docs.aiven.io

私は普段Azureをよく使っているのですが、Azure Database for Postgresのメジャーバージョンをアップする際は結構手間がかかったりするので、 Aivenは使いやすいなと感じました。

PostgreSQLのフォークを作成する

Aivenでは稼働中のPostgreSQLの複製を簡単に作成できます。 PostgreSQLの複製を別のクラウドに作成(移行)したり、先程のバージョンアップの検証として同じPostgreSQLを準備するなど色々なシナリオで使えます。

PostgreSQLのサービス画面から「New database fork」を選択します。 フォーク先のPostgreSQLの設定を行います。「Service Cloud Provider」をAWSに変更し、スペックなどはそのままで作成します。

フォークが完了すると、「Services」に新しいPostgreSQLが表示されます。

同じ要領で、「Create a read replica」からはレプリカサーバをワンボタンで作成できます。 直感的で分かりやすく、とても使いやすいですね。

おわりに

いかがだったでしょうか?今回はAivenのPostgreSQLサービスを簡単な紹介しました。
この他にも、VPC peeringやIntegrationsあたりでさらに使いやすい拡張ができそうなので、また次回試してみたいと思います。

私達ACS事業部はAzure・AKSを活用した内製化のご支援をしております。ご相談等ありましたらぜひご連絡ください。

www.ap-com.co.jp

また、一緒に働いていただける仲間も募集中です!
切磋琢磨しながらスキルを向上できる、エンジニアには良い環境だと思います。ご興味を持っていただけたら嬉しく思います。

www.ap-com.co.jp

本記事の投稿者: 土居 幸平