【AWS】EC2インスタンスを作成しRDBへ接続


AWSのワークショップに参加してインスタンスとDBを作成したメモ

EC2 Linuxインスタンス作成

左上の「サービス」を選び「EC2」を選択

左のメニューから「インスタンス」を選び「インスタンスの作成」を選択

AMIはAmazon Linux 2 AMIを選択

インスタンスタイプは無料利用枠対象のt2.microを選択し「次のステップ」へ

ネットワークでVCP、サブネット(パブリックサブネット)、自動割り当てパブリックIPを「有効」にする

ストレージはデフォルトのままで「次のステップへ」

作ったインスタンスがわからなくならないように「Nameタグ」を追加

インスタンスの区別がつくようにNameタグを追加し「次」

セキュリティグループは、事前に作成してあるクライアントがあるネットワークからの接続を許可しているのを選択し、「確認と作成」

インスタンス作成の確認画面で設定を確認した上で「起動」

「既存のキーペアの選択」を選び、ダウンロードしたキーに対するキーペアを選択し、チェックを入れて「インスタンスの作成」

インスタンスの作成中になったら、インスタンスIDをクリックしてインスタンス画面へ

インスタンスの状態が「running」になったら起動完了。「説明」タブの「パブリックDNS(IPv4)」か「IPv4パブリックIP」のどちらの値を使って、sshで接続してみる。

EC2 Linuxインスタンス作成完了

SSHでアクセスすると Amazon Linux 2 AMIのプロンプトが表示される

RDS DBインスタンス作成

「サービス」から「RDS」を選択

「データベース」から「データベースの作成」をクリック

「PostgreSQL」を選択

DBエンジンは複数のバージョンがさレポートされているので使いたいのを選ぶ
テンプレートは「開発/テスト用」を選んでおくとコストがかかる選択肢が選ばれにくくなる

DBの設定画面

  • DBインスタンス識別子は、好きなものを。この名前ベースでアクセスするからわかりやすく
  • マスターユーザ名が管理者ユーザ名になる
  • マスターパスワード・パスワードを確認の部分で適当なパスワードを入力

DBインスタンスクラスは「バースト可能クラス(tクラスを含む)」で「db.t2.small」を今回は選択

ストレージは「汎用(SSD)20GB」のデフォルト

VPCはEC2と同じ「DBWORKSHOP-VPC」を選択(他のにするとEC2インスタンスとインターネットゲートウェイ経由じゃないと)繋がらなくなる)
「追加の接続設定」で「サブネットグループ」を「tmp-subnet-group-private-3az」を選択。RDSでは、サブネットをサブネットグループというひとまとまりの設定で扱う。ここでは、プライベートサブネットを束ねたこのサブネットグループを指定する。
パブリックアクセス可能は「なし」。パブリックサブネットとプライベートサブネットの間はプライベートIPだけで通信できる

VPCセキュリティグループを、「既存の選択」でDBように事前に作成してある「SG-PRIVATE」を選択
「追加設定」で「最初のデータベース名」に「test」と入力
最後に「データベースの作成」をクリックして作成完了

EC2インスタンスにDBクライアントをインストール
[ec2-user@ip-10-0-1-50 ~]$ sudo amazon-linux-extras install -y postgresql9.6
Installing postgresql
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
Cleaning repos: amzn2-core amzn2extra-docker amzn2extra-postgresql9.6
10 metadata files removed
4 sqlite files removed
0 metadata files removed
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core                                                                                                                          | 2.4 kB  00:00:00
amzn2extra-docker                                                                                                                   | 1.3 kB  00:00:00
amzn2extra-postgresql9.6                                                                                                            | 1.3 kB  00:00:00
(1/5): amzn2-core/2/x86_64/group_gz                                                                                                 | 2.5 kB  00:00:00
(2/5): amzn2-core/2/x86_64/updateinfo                                                                                               | 184 kB  00:00:00
(3/5): amzn2extra-postgresql9.6/2/x86_64/primary_db                                                                                 |  37 kB  00:00:00
(4/5): amzn2extra-docker/2/x86_64/primary_db                                                                                        |  59 kB  00:00:00
(5/5): amzn2-core/2/x86_64/primary_db                                                                                               |  36 MB  00:00:00
Resolving Dependencies
--> Running transaction check
---> Package postgresql.x86_64 0:9.6.8-1.amzn2.0.2 will be installed
--> Processing Dependency: postgresql-libs(x86-64) = 9.6.8-1.amzn2.0.2 for package: postgresql-9.6.8-1.amzn2.0.2.x86_64
--> Processing Dependency: libpq.so.5()(64bit) for package: postgresql-9.6.8-1.amzn2.0.2.x86_64
--> Running transaction check
---> Package postgresql-libs.x86_64 0:9.6.8-1.amzn2.0.2 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===========================================================================================================================================================
 Package                             Arch                       Version                                 Repository                                    Size
===========================================================================================================================================================
Installing:
 postgresql                          x86_64                     9.6.8-1.amzn2.0.2                       amzn2extra-postgresql9.6                     1.3 M
Installing for dependencies:
 postgresql-libs                     x86_64                     9.6.8-1.amzn2.0.2                       amzn2extra-postgresql9.6                     253 k

Transaction Summary
===========================================================================================================================================================
Install  1 Package (+1 Dependent package)

Total download size: 1.6 M
Installed size: 5.3 M
Downloading packages:
(1/2): postgresql-libs-9.6.8-1.amzn2.0.2.x86_64.rpm                                                                                 | 253 kB  00:00:00
(2/2): postgresql-9.6.8-1.amzn2.0.2.x86_64.rpm                                                                                      | 1.3 MB  00:00:00
-----------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                      9.3 MB/s | 1.6 MB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : postgresql-libs-9.6.8-1.amzn2.0.2.x86_64                                                                                                1/2
  Installing : postgresql-9.6.8-1.amzn2.0.2.x86_64                                                                                                     2/2
  Verifying  : postgresql-libs-9.6.8-1.amzn2.0.2.x86_64                                                                                                1/2
  Verifying  : postgresql-9.6.8-1.amzn2.0.2.x86_64                                                                                                     2/2

Installed:
  postgresql.x86_64 0:9.6.8-1.amzn2.0.2

Dependency Installed:
  postgresql-libs.x86_64 0:9.6.8-1.amzn2.0.2

Complete!
  0  ansible2                 available    [ =2.4.2  =2.4.6  =2.8 ]
  2  httpd_modules            available    [ =1.0 ]
  3  memcached1.5             available    \
        [ =1.5.1  =1.5.16  =1.5.17 ]
  5  postgresql9.6=latest     enabled      [ =9.6.6  =9.6.8 ]
  6  postgresql10             available    [ =10 ]
  8  redis4.0                 available    [ =4.0.5  =4.0.10 ]
  9  R3.4                     available    [ =3.4.3 ]
 10  rust1                    available    \
        [ =1.22.1  =1.26.0  =1.26.1  =1.27.2  =1.31.0  =1.38.0 ]
 11  vim                      available    [ =8.0 ]
 13  ruby2.4                  available    [ =2.4.2  =2.4.4  =2.4.7 ]
 15  php7.2                   available    \
        [ =7.2.0  =7.2.4  =7.2.5  =7.2.8  =7.2.11  =7.2.13  =7.2.14
          =7.2.16  =7.2.17  =7.2.19  =7.2.21  =7.2.22  =7.2.23
          =7.2.24 ]
 16  php7.1                   available    \
        [ =7.1.22  =7.1.25  =7.1.27  =7.1.28  =7.1.30  =7.1.31
          =7.1.32  =7.1.33 ]
 17  lamp-mariadb10.2-php7.2  available    \
        [ =10.2.10_7.2.0  =10.2.10_7.2.4  =10.2.10_7.2.5
          =10.2.10_7.2.8  =10.2.10_7.2.11  =10.2.10_7.2.13
          =10.2.10_7.2.14  =10.2.10_7.2.16  =10.2.10_7.2.17
          =10.2.10_7.2.19  =10.2.10_7.2.21  =10.2.10_7.2.22
          =10.2.10_7.2.23  =10.2.10_7.2.24 ]
 18  libreoffice              available    [ =5.0.6.2_15  =5.3.6.1 ]
 19  gimp                     available    [ =2.8.22 ]
 20  docker=latest            enabled      \
        [ =17.12.1  =18.03.1  =18.06.1  =18.09.9 ]
 21  mate-desktop1.x          available    [ =1.19.0  =1.20.0 ]
 22  GraphicsMagick1.3        available    [ =1.3.29  =1.3.32 ]
 23  tomcat8.5                available    \
        [ =8.5.31  =8.5.32  =8.5.38  =8.5.40  =8.5.42  =8.5.50 ]
 24  epel                     available    [ =7.11 ]
 25  testing                  available    [ =1.0 ]
 26  ecs                      available    [ =stable ]
 27  corretto8                available    \
        [ =1.8.0_192  =1.8.0_202  =1.8.0_212  =1.8.0_222  =1.8.0_232
          =1.8.0_242 ]
 28  firecracker              available    [ =0.11 ]
 29  golang1.11               available    \
        [ =1.11.3  =1.11.11  =1.11.13 ]
 30  squid4                   available    [ =4 ]
 31  php7.3                   available    \
        [ =7.3.2  =7.3.3  =7.3.4  =7.3.6  =7.3.8  =7.3.9  =7.3.10
          =7.3.11 ]
 32  lustre2.10               available    [ =2.10.5  =2.10.8 ]
 33  java-openjdk11           available    [ =11 ]
 34  lynis                    available    [ =stable ]
 35  kernel-ng                available    [ =stable ]
 36  BCC                      available    [ =0.x ]
 37  mono                     available    [ =5.x ]
 38  nginx1                   available    [ =stable ]
 39  ruby2.6                  available    [ =2.6 ]
 40  mock                     available    [ =stable ]
 41  postgresql11             available    [ =11 ]
[ec2-user@ip-10-0-1-50 ~]$
EC2インスタンスからRDSに接続
[ec2-user@ip-10-0-1-50 ~]$ psql -h postgredb.chckkbdbpisq.ap-northeast-1.rds.amazonaws.com -p 5432 -U postgres -d test
Password for user postgres:
psql (9.6.8, server 11.5)
WARNING: psql major version 9.6, server major version 11.
         Some psql features might not work.
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Type "help" for help.

test=>
test=>
test=>