LoginSignup
19
19

More than 5 years have passed since last update.

[PostgreSQL10] EC2での導入~初期設定

Last updated at Posted at 2018-12-16

P&Dアドベントカレンダー16日目の記事です。
2018年もあとは半月ですね。
私個人としては博多駅のクリスマスマーケットへの参加を切望してる次第です泣

はじめに

Rails5アプリのHerokuからAWS EC2への移行の際に少し躓いたことがあったので載せておきます
HerokuではPostgreSQL10を使用してます。

注意事項

PostgreSQL10のDB移行の際には、移行先のPostgrSQLのバージョンも10.0以上にする必要があります。
PostgreSQL10はAmazonLinuxではサポートされていません。
なので、EC2のAMIはAmazonLinux2を選択するようにお願いします。

公式リポジトリの追加

経緯

今回はyumを利用して、installしていきます。

ここで注意しておくことが…
普通にyum install postgresqlとするとPostgreSQL9の最新バージョンがインストールされます。
ということで、PostgreSQLの公式yumリポジトリからinstallする必要があります。

実行したこと

上記より、yum localinstall <URL>を利用して、
PostgreSQLの公式リポジトリをAmazon Linux2に追加が必要となります。

# yum -y localinstall https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm

-yで途中でYes/Noなどを入力する手間を省いて、すべてYesでインストールしていきます。

パッケージの確認

PostgreSQLの公式yumリポジトリで提供されているPostgreSQL10の詳細を確認をしておきましょう。

PostgreSQL10の関連パッケージは、
postgresql10-というプレフィックスで始まるパッケージ名になっていて、
PostgreSQL 10 Serverのパッケージ名はpostgresql10-serverとなっています。
詳細情報の閲覧にはyum info <パッケージ名>を利用しましょう。

# yum info postgresql10-server

これで、Available Packagesと出力されればOKなので、進めていきましょう!
そのほかにも使用できるバージョン等も確認することが可能です。

(やっと)インストール

さてさて、インストールを進めていきましょう。
yum installを利用してインストールしていきます。

# yum -y install postgresql10-server

上記コマンド実行後、Complete!が出力されればOKです!
石橋を叩いて渡りたい方は、postgres –versionを利用して、
コマンド利用の可否とバーションを確認してみましょう。

# /usr/pgsql-10/bin/postgres --version

Ex. version10.6の場合
postgres (PostgreSQL) 10.6と出力されればOKです!

DB初期化

インストールができたらDBの初期化ですね。
postgresql-setup initdbを利用していきましょう。

# /usr/pgsql-10/bin/postgresql-10-setup initdb

Initializing database ... OKを出力されればOKです!

自動起動設定(サービス化)

サーバーの起動・再起動時にPostgreSQLを自動起動するように設定しておきましょう
…してないと結構面倒なことが起こる(未来予知)
systemctl enablepostgresql-10を指定しましょう。

systemctl enable postgresql-10

起動・停止・再起動

今回はservicepostgresql-10を指定して行なっていきます。

起動

さてさて、ついに起動のときです…

# sudo service postgresql-10 start

エラーが吐かれなければ起動完了!!

停止

# sudo service postgresql-10 stop

再起動

# sudo service postgresql-10 restart

ユーザー

PostgreSQLをインストールした時点で
PostgreSQL Severの管理者権限を持つユーザー「postgres」が作成されます。
初期状態ですと、パスワードは設定されていません。

ログイン

起動ができたので「postgres」でログインしてみましょう。
ログインにはpsqlを利用します。

# sudo -u postgres psql -U postgres
  could not change directory to "/root"
  psql (10.6)
  Type "help" for help.

postgres=# 

上記のようになれば、成功です!

ログアウトは\qで可能です。

postgres=# \q

ここまでできれば、今回は完璧です!!
お疲れ様でした!!!

最後に

はじめに述べたアプリの移行でおきたことを簡単にまとめてみました。
PostgreSQLを初めて扱ってみて、
バージョン10.0以上とそれより下のもので導入の違いがかなりあったことが結構な驚きでした汗
年明けにはPosgreSQLのユーザー設定やRailsアプリでおいての導入、
そして上記で述べたアプリ移行の全容もお伝えしていく予定なので少々お待ちいただけたらなと思います。

参考記事

19
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
19