AWS ワークショップシリーズ

開発者のためのデータベースサービスの学び方

2024-01-04
AWS ワークショップ

Author : 金森 政雄

AWS に限らず技術を学ぶ一番の方法は「触ってみる」ことですよね ?

とはいえ、初心者の方が新しい技術を何もガイダンスなしで触ってみるのは少し難しいかもしれません。ワークショップやハンズオンはそのような時にガイドに沿って「まずは触ってみる」ことができる便利な方法です。そのため、AWS も多くのワークショップを公開していますが、「自分が学びたいことのために何を選んだら良いかわからない」というお声も多く聞くようになりました。

このシリーズではそのような方のために、AWS の技術者がそれぞれおすすめのワークショップを紹介していきます。第一回は、開発者支援を中心に活動しているDevAx (Developer Acceralation) SA の金森による 「Databases for Developers」のワークショップのご紹介です。

ワークショップ紹介のその他の記事はこちら

選択
  • 選択
  • 3 時間でマスター !? 位置情報サービス Amazon Location Service 入門 ワークショップ
  • 産業 IoT による工場のデータ収集から可視化まで、AWS Industrial IoT Workshop で一気に体験 !
  • 開発者のためのデータベースサービスの学び方
  • AWS Security Hub を利用したセキュリティ体制の可視化
  • AWS Amplify Gen2 を使ったウェブアプリケーション構築の学び方
  • AI コード生成で開発効率アップ ! Amazon CodeWhisperer ワークショップ
  • データレイク構築の第一歩 ! はじめてのデータレイクハンズオン
  • App2Container を利用した .NET アプリケーションのコンテナ化

このクラウドレシピ (ハンズオン記事) を無料でお試しいただけます »

毎月提供されるクラウドレシピのアップデート情報とともに、クレジットコードを受け取ることができます。 


はじめに

皆さん、ワークショップやハンズオンは好きですか ? AWS では AWS Summit や AWS re:Invent などで実施されているワークショップを皆さんが後から見て復習したり自分の環境で試せるようにWeb ページで公開しています (一部対応していないワークショップもあります)。

AWS Workshops のページにいくとそのようなワークショップを探すことができます。また、日本語のコンテンツは日本のAWS メンバーの有志が JP Contents Hub というページでまとめてくれています。これらを使ってぜひ皆さんの興味や課題に応じたハンズオンを見つけ、勉強の役に立てていただければ幸いです。

ということで、あとは皆さんお好きなワークショップを見つけて楽しんでください !!

 

 

 

 

 

記事が短すぎると怒られてしまいました。

確かに、上記のサイトにコンテンツはまとまっていますが、そこから自分にあったものを見つけていくのは少し大変かもしれません。ですので、これから何回かのシリーズで、AWS の SA がそれぞれおすすめのワークショップをご紹介していきます。「どのワークショップから始めて良いかわからないよー」という方はぜひ、このシリーズで紹介されるワークショップから始めて、自分のお気に入りのワークショップを見つけてください !!


開発者のためのデータベースサービスの学び方

改めまして、ワークショップ紹介シリーズの初回記事を拝命しました、DevAx (Developer Acceralation) SA の金森と申します。

DevAx チームはアプリケーション開発者の方々と一緒に、AWS を活かした開発を探求しています。 この記事ではそんな DevAx チームが作成した、“Databases for Developers” ワークショップを紹介したいと思います。


こんな人にオススメ !

このワークショップは「アプリケーション開発者の方がクラウドのデータベースサービスを活用する方法を学ぶ」ためのワークショップです。そのため、主にお仕事でアプリケーションやソフトウェアの開発を行っている方に向けて作られています。ですので、こんな人にオススメです。

  • 普段アプリケーション開発をしているが、クラウドのデータベースサービスを使ったことがない人
  • データベースパフォーマンスを改善するための最適化の基礎を学んでみたい人
  • アプリケーションの特性に応じたデータベースの使い分けを体験してみたい人

一方で、データベース管理者の方やインフラを主担当とされている方からすると基本的なことすぎたり、アプリケーションコードの変更など普段の業務から距離があって「ちょっと違うな・・・」と思ってしまうかもしれません。ただ、アプリケーション開発をされている方から見た時に、皆さんのお仕事がどのように見えたり、どのような影響があるのか、を知るきっかけにはなると思いますので、ご興味あればぜひチャレンジしてみてください。


どんなことを学べるの ?

このワークショップでは「AWSome Pets」 と言う架空のペットショップのアプリケーションを題材にして、下記の 3 つのステップでそのアプリケーションで利用しているデータベースをクラウドに最適化していきます。

  1. マイグレーション
  2. 最適化
  3. モダナイゼーション

これらの 3 つのステップはモジュールとしてそれぞれ独立してワークショップを実施できるようになっていますので、皆さんの興味に応じて好きなモジュールを選択できます。

1. マイグレーション

「1. マイグレーション」では、AWS クラウド上にクラウドに最適化されたリレーショナルデータベースである、Amazon Aurora Database を作成し、そこにアプリケーションのデータを移行しアプリケーションの接続先を変更する、と言う基本的な手順を体験します。

Amazon Aurora Database の作り方やそこへのデータの移行方法など、AWS でのデータベースサービスの使い方の基本をご紹介しているので、初めて AWS を触るアプリケーション開発者の方にも安心して取り組んでいただける内容になっています。

一方で本格的なマイグレーションを進める際にはこの内容だけでは不十分な部分がありますので、実際にマイグレーションを進める際にはぜひお近くの AWS 社員にご相談ください。

モジュール 1 の最終的なアーキテクチャ

2. 最適化

「2. 最適化」ではデータベースのスケーラビリティやパフォーマンスを改善するために、サイトに負荷テストをかけながら、コネクションの管理方法の変更やリードレプリカの導入、クエリの最適化などを行っていきます。

アプリケーション開発者の皆さんは、もしかすると遅いクエリを書いてしまったり、古いクエリで問題が発生するなどして、クエリの最適化によるパフォーマンスチューニングをした経験があるかもしれません。

クエリの最適化は重要なスキルですが、データベースパフォーマンスの向上の方法はそれだけではありません。クラウドを使った開発では、API を通してインフラの操作もしやすくなるため、これまでデータベース管理者やインフラの方にお願いしていたパフォーマンスチューニングも担当する場面が出てくる可能性があります。

このモジュールでは実際に負荷テストをかけながら、どのようにパフォーマンスを計測し、そこで見つけた問題を解決するためにどのような手法が使えるのか、またそのために利用できるサービスについても実際に動かしながら学ぶことができます。

行った最適化の効果も負荷テストツールで改めて確認できるので、効果を体感しながら学ぶことができる、まさにハンズオンの良いところが出ている内容です。(ただし、変更を反映するためのデプロイや毎回の負荷テストの待ちなど、少し待ち時間が多くなってしまうのがたまに傷です。。。コードを読んだり、コーヒーを入れて気長にお待ちください)

負荷テストの様子

クエリの分析

3. モダナイゼーション

「3. モダナイゼーション」では、より個々の機能に適合したデータベースを選択するためにシステムをサービスに分解し、それぞれのサービスに適したデータベースに置き換えていきます。また、分散したデータベース間でデータの整合性をとるためのデザインパターンである Saga パターンも取り上げます。

「目的別データベース」(Purpose Build Database) と言う言葉を聞いたことはあるでしょうか ? AWS ではアプリケーションのニーズに合わせて、開発者の皆さんが適切なデータベースを選択できるように、様々な特性を持ったデータベースエンジンのマネージドサービスを提供しています。

クラウドを活用した分散アプリケーションにおいては、サービスごとに最適な技術スタックを選択できることもメリットです。1 つの大きな RDBMS に縛られることなく、個々のサービスごとにデータベースを選択できることはその中でも最も強力かつ重要なメリットになってきます。

とはいえ、いきなり「サービス毎にデータベースを選択できます」と言われても、

  • 何を基準に選べば良いんだろう
  • どうやってそれぞれのデータベースを使えば良いんだろう
  • サービス間のデータ連携はどうすれば良いんだろう

と悩んでしまうことも多いかと思います。このモジュールでは、仮想のペットショップ「AWSome Pets」のワークロードを例に、実際に 1 つの RDBMS を利用していたサービスを段階的に複数の目的別データベースを使うように修正していくことで、このような疑問に答えられるようになることを目指します。

最初は OpenSearch の導入からスタートします。

最終的なアーキテクチャはこのようになります。


自分で試すには ?

このワークショップを皆さんの手元で実際に試してみたい場合は、こちら の「自分のAWS アカウントで実施する場合」タブに手順を掲載しています。モジュール毎の AWS CloudFormation テンプレートをご用意しておりますので、それを使うことで簡単にセットアップできるようになっています。

一方で、いくつかの AWS  サービスを利用しますので、AWS 利用料もかかってきます。不要なコストが掛からないよう、試したあとは必ずリソースを削除するようにお願いいたします。


時間とコストは ?

このワークショップの実行にかかる時間とコストは下記の通りです。AWS 利用料はお使いの環境やかけた時間によって変動しますので参考までにご参照ください。

モジュール 料金
モジュール 1. マイグレーション 45 分 / 3 ~ 5 ドル
モジュール 2. 最適化 2 時間 / 8 ~ 10 ドル
モジュール 3. モダナイゼーション 2 時間 / 20 ~ 30 ドル

(※コストは実測時を元に準備時間や作業後に復習のために少し残した場合も考慮して幅を持って記載しています。利用する環境や実際の利用状況、リージョンなどにより変動するため、参考値としてご参照ください)

builders.flash の メールメンバーに登録 いただくと毎月抽選で 300 名の方にハンズオンをお試しいただくための無料クーポンを差し上げておりますので、ぜご登録いただいて、当選を狙ってみるのも良いですね !


まとめ

いかがでしたでしょうか ? この投稿では、開発者の方が、AWS のデータベースサービスについて学べる、 Databases for Developers をご紹介しました。

データベースと関わらないアプリケーションはほとんどないかと思います。そして、データベースをいかにうまく扱うか、は皆さんのアプリケーション開発の成功に大きく関わってきます。

AWS クラウドを使うことで、RDB だけではなく、様々な特徴を持ったデータベースを簡単に皆様のアプリケーションから利用することができます。そのような多様で便利なデータベースサービスをうまく使いこなすためのスタートを切るのにこのワークショップは最適です。ぜひ、この記事をきっかけに試してみていただければ嬉しく思います。

ワークショップ紹介のその他の記事はこちら

選択
  • 選択
  • 3 時間でマスター !? 位置情報サービス Amazon Location Service 入門 ワークショップ
  • 産業 IoT による工場のデータ収集から可視化まで、AWS Industrial IoT Workshop で一気に体験 !
  • 開発者のためのデータベースサービスの学び方
  • AWS Security Hub を利用したセキュリティ体制の可視化
  • AWS Amplify Gen2 を使ったウェブアプリケーション構築の学び方
  • AI コード生成で開発効率アップ ! Amazon CodeWhisperer ワークショップ
  • データレイク構築の第一歩 ! はじめてのデータレイクハンズオン
  • App2Container を利用した .NET アプリケーションのコンテナ化

builders.flash メールメンバーへ登録することで
AWS のベストプラクティスを毎月無料でお試しいただけます

筆者プロフィール

金森 政雄
アマゾン ウェブ サービス ジャパン合同会社
デベロッパースペシャリスト ソリューションアーキテクト

Web、モバイル向けの自社サービスの開発やクラウドを活用したシステムの請負開発を経験後、パートナーソリューションアーキテクトとして、アマゾン ウェブ サービス ジャパン合同会社に入社。2021 年から DevAx チームとして、開発者の方に向けたイベントやワークショップの提供を中心に活動。
最近の個人的ニュースは家の近くのラーメン屋で、「まさお」という自分の名前と同じメニューがあったこと。

AWS を無料でお試しいただけます

AWS 無料利用枠の詳細はこちら ≫
5 ステップでアカウント作成できます
無料サインアップ ≫
ご不明な点がおありですか?
日本担当チームへ相談する