【AWSを使おう!】EC2にSQLiteでデータベースを構築しよう!

スキルアップ

はじめに

AWSのステキな無料利用枠を使って、実際にAWSを触ってみるシリーズ!
前回はRDSを利用してデータベースを構築しました。

これらが未作成な場合は、こちらの記事などを参考にして準備を行なってください。

RDSはAWSがメンテナンスしてくれる高品質なデータベースのサービスです。
しかし、その対価として無料枠を超えやすく、料金が発生してしまいます
そのため、学習用という観点から、無料で使い勝手の良いデータベース「SQLite」を使用します。

SQLiteは、一般的なデータベースと比べて機能が少ないです。
データベースの機能をフル活用したい人には物足りないでしょうが、初心者にとってはその簡素さがハードルを下げてくれます

それでは、今回も実際の作成/設定画面をお見せしながら進めていきます。

構築しているAWSの全体像
一般的に、データベースはインターネットからアクセスできないPrivate Subnetに構築することが推奨されている
しかし、今回は学習用であり、機密データ等は登録しないためPublic Subnetに配置したEC2で構築しました。

SQLiteとは?

公式サイトでの紹介をGoogle翻訳すると・・・

SQLiteは、小さく、高速で、自己完結型で、信頼性が高く、フル機能のSQLデータベースエンジンを実装するC言語ライブラリです。 SQLiteは、世界で最も使用されているデータベースエンジンです。SQLiteはすべての携帯電話とほとんどのコンピューターに組み込まれており、人々が毎日使用する無数の他のアプリケーションにバンドルされています。

https://www.sqlite.org/index.html

これを要約すると、「軽量なため多種多様なデバイスで動作可能であり、利用実績が多い」となります。
どのような環境でも動作し、「利用実績が多い→ナレッジが多い」ため、学習用には最適です!

SQLiteの便利な特徴の1つに、「データベースをファイルで1纏りの管理する」があります。

通常のデータベースでは、データやデータベース設定情報を別々のファイルに分散管理しています。
数億件ものデータを取り扱えるハイエンドなデータベースにするためには仕方のないことです。

対して、SQLiteは大量データの管理に不得意ですが、データやデータベース設定情報を1つのファイルで管理しています。
これは、学習用としてはとてもメリットが大きいです。
例えば、
・ファイルをコピーすれば、バックアップが作成できる
・ファイルを別PCに移動すれば、移動先PCで学習を行える
・様々な操作を試してグチャグチャにしてても、ファイルを消せばクリンアップできる

SQLiteをEC2へインストールする

EC2へアクセスし、パッケージ管理ツール「pip3」を利用してSQLiteをインストールします。
はじめに、SQLiteのインストールコマンドを実行します。

pip3 install pysqlite3 

コマンドが正常終了したら、SQLiteが正しく動作することを確認するためにバージョンを表示させるコマンドを実行します。

sqlite3 -version

次のキャプチャのように、エラーなく完了できればOKです。

SQLiteでデータを登録/参照する

データベースファイルを作成する

SQLiteで作成するデータベースファイル名を指定することで、「SQLiteの起動」と「ファイル作成」を同時に行います。
正常に起動したら、コマンドラインの表示が「sqlite>」に変化します。

# sqlite3 [DB名].db
sqlite3 test.db

テーブルを作る

SQLiteの操作は、SQL(データベースを操作する言語)で行います。
データベースの種類によって記述方法に多少の違いはありますが、基本的には似通っています。

まず、「CREATE TABLE」を利用して、データを管理するためのテーブルを作成します。

# CREATE TABLE [テーブル名] ([カラム名] [データ型] [制約], ・・・);
CREATE TABLE user(id text primarykey, name text, age integer);

テーブル作成が実行できたら結果を確認します。
まず、「.tables」でテーブル一覧を表示させます。

.tables

次に、「.schema」でテーブルの設定内容を表示させます。

# .schema [テーブル名]
.schema user

データを登録/参照する

データ登録は、「INSERT INTO」を利用します。

# INSERT INTO [テーブル名]([カラム名], ・・・) VALUES([設定値], ・・・);
INSERT INTO user(id, name, age) VALUES("0001", "トビネズミ", 35);

データ参照は、「SELECT」を利用します。

# SELECT [カラム名], ・・・ FROM [テーブル名];
SELECT id, name, age FROM user;

SQLiteを終了する

SQLiteを終了するためには「.quit」「.exit」を利用します。
これを実行すると「sqlite>」の表示が消えるので、SQLiteが終了したことが分かります。

.quit

作成済みのデータベースファイルを読み込む

SQLiteでは、データベースをファイルとして管理しています。
そのため、データベースファイルを指定してSQLiteを実行することで、作成済みのデータベースへアクセスできます。

# sqlite3 [作成済みのデータベースファイル名]
sqlite3 test.db

最後に

SQLiteという学習用にも、実際のプログラム開発にも利用できるデータベースを紹介しました。

今回は、SQLiteをインストールして、データを1件登録しただけで、物足りないかもしれません。
しかし、実はこれだけでもデータベースの要点は大体抑えています

もう一歩踏み込むとしたら、「データ参照時の条件指定や集計」と「テーブル同士の結合」まで学ぶと実用レベルまで引き上がります。

難しい機能はたくさんありますが、「それ(難しい機能)は必要になったら調べれば良い」と思います。

焦らず、着実にレベルアップしていきましょう!!

コメント

タイトルとURLをコピーしました