4
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

初AWSサーバー構築してみた(EC2+RDS for PostgreSQL)

Last updated at Posted at 2022-11-02

背景

業務でAWSを使用したテスト環境の構築を試みており、知識が少ないなと思ったため
また、AWS系の資格を取るにあたって実際に触りたいと思ったので、
技術部のAWSの学習計画に沿って行いました

手順

VPCの作成

サーバーを立てるにあたって、広大なネットワークの空間にサーバーを立てる用の場所(土地的なもの)を作らないといけないので、VPCと呼ばれる仮想プライベートネットワーク空間を作成します
VPC1.png
まずコンソールのホーム画面から検索するなりなんなりしてVPCのコンソールに入ります
VPC2.png
「VPCを作成」というボタンを押下して作成画面に移ります
名前は任意で、今回はIPv4ブロックのみを作成
IPアドレス周り理解が追いついていなかったので、下記の記事を参考にしたりしました

VPC4.png

サブネットの作成

次にサブネットを作成
VPCのコンソールの左端にあるサブネットという文字をクリックするとサブネットのコンソールに遷移し、「サブネットを作成」というボタンを押下すれば作成画面に移れます
サブネット1.png

さきほど作成したVPCにサブネットを設定する、この設定したサブネットにサーバーを立てます
VPCが土地だとしたらサブネットは住所でしょうか
サブネット2.png

ルートテーブルの作成

次にルートテーブルを作成します
先程作成したサブネットなどからのネットワークトラフィックの経路の判断に使われるものです
左端のタブからルートテーブルの文字を押下し、ルートテーブルのコンソールに移動します
「ルートテーブルの作成」ボタンを押下して作成画面に移ります
適当に名前つけて作成します
image.png

インターネットゲートウェイの作成

インターネットゲートウェイも作成します
メインのEC2を立てるまで結構やることが多いです(めんどくさい
これまでと同じように左端のタブからインターネットゲートウェイの文字を押下し、インターネットゲートウェイのコンソールに移動します
そして、「インターネットゲートウェイの作成」ボタンを押下し、作成画面で適当な名前をつけて作成します
image.png
成功すればリストに作成したインターネットゲートウェイが表示されていると思うので、
選択してアクションというボタンを押下します
そうするとVPCにアタッチという欄があるのでクリックして、さきほど作成したVPCをアタッチします
image.png
次に、ルートテーブルのコンソールに戻り、
さきほど作成したルートテーブルを選択し、同じようにアクションボタンを押下します
そしてルートの編集をクリックします
ルートテーブル1.png
ルートの追加をクリックし、送信先を0.0.0.0/0、ターゲットにインターネットゲートウェイを選択し、先程作成したインターネットゲートウェイを選択して、保存します
ルートテーブル2.png
サブネットにも同様にルートテーブルを紐づけます(やることおおいなあ
サブネットのコンソールに行き、作成したサブネットを選択、アクションを押下してルートテーブルの関連付けを編集を押下します
image.png

そこで先程のルートテーブルを選択して保存します
スクリーンショット 2022-11-02 164125.png

これでVPC周りの作成は完了です、ああ長かった

EC2の構築

検索なりタブから探すなりしてEC2のコンソールに移動します
image.png
オレンジの「インスタンスを起動」というボタンを押下すると作成画面に移ります
お財布と相談しながら好きな構成で作成します
私はインスタンスタイプがt2.microでAMIはRed Hatにしました
image.png

セキュアにEC2にアクセスするためのキーペアを新しく作成するとファイルがDownloadされるのできちんと.ssh以下にしまっておきましょう
ネットワーク設定は編集ボタンをクリックして、先程作成したVPCとサブネットを設定します
スクリーンショット 2022-11-02 170610.png

セキュリティグループはSSH接続のみ想定なのでタイプはSSH、Source typeを自分のデバイスのIPアドレスにしておきます
スクリーンショット 2022-11-02 170730.png

他はいい感じに設定して作成ボタンを押します
リストにある作成したインスタンスの状態が実行中になれば構築完了です
image.png

早速SSH接続してみましょう、リストにある作成したインスタンスを選択し、接続ボタンを押下します
image.png

SSH クライアントの欄をクリックし、手順に従いながら接続します
image.png
PowerShellなりなんなりで以下のコマンドでSSH接続します、ヤー!

C:\Users\◯◯◯> ssh -i (先程Downloadしたキーのファイル) ec2-user@(インスタンスのパブリックIPアドレス)

だめでした

damedeshita

ssh: connect to host (インスタンスのパブリックIPアドレス) port 22: Connection timed out

なんどやってもSSH接続できないのでググる
どうやらパブリックIPアドレスの設定を無効化してEC2を構築してしまったようです
既に構築したインスタンスに後から付与することはできなそうなので、設定を有効にして改めて構築…
image.png
そしたら入れました、やったね

[ec2-user@ip-◯◯◯ ~]$

RDSの構築

DB用セキュリティグループの作成

RDSを構築する前にDBサーバー用のセキュリティグループを作ります
EC2のコンソールからセキュリティグループのコンソールに移動して、セキュリティグループの作成ボタンを押下し、作成画面に行きます
VPCは作成したもので、アウトバウンド(サーバー内から外)のルールは、タイプがPostgreSQL(任意のDB)、送信先はEC2の作成時に作成したセキュリティグループに設定して作成します。
image.png

サブネットグループの作成

次にDB用のサブネットグループを作成します
簡単に言うとそのDBを置くサブネットの集合を定義することをします
マルチAZにするので、一番最初に作成したサブネットのAZとは違うAZのサブネットをもう一つ作成しておきましょう
検索なり何なりしてRDSのコンソールに移動します
左端のサブネットグループを選択し、DBサブネットグループの作成を押下すると作成画面に移ります
image.png
最初に作成したVPCを設定し、違うAZのサブネットを2つ以上選択して作成します
(2つ以上選択しないと怒られます)
image.png

DBの作成

RDSのコンソールのトップ画面からデータベースの作成をクリックすると作成画面に移ります
Postgresを選択し、その他いい感じに設定します AWSの学習用なので、構成は最小限です

image.png
接続の箇所はEC2コンピューティングリソースに接続を選択し、先程作成したEC2インスタンスを設定します
VPCや、一つ前に作成したDBのサブネットグループも設定して作成ボタンを押します
データベースのリストに実行中とあれば構築完了です(結構実行中になるまで時間かかりました)
スクリーンショット 2022-11-02 180222.png
EC2から接続してみましょう
EC2にpsqlをインストールします

sudo yum search postgresql
sudo yum -y install postgresql.x86_64

RDSに接続します
エンドポイントはリストの作成したDBをクリックすると見ることができます

どうやら成功したようです
(EC2からはわからなかったのですが、RDSの様子をコンソールから見ると接続数1になっているのでOKでしょう(適当))

psql -h (エンドポイント) -U (ユーザ名)
postgres=#

おわりに

ほぼボタンをポチポチ押していくだけのように見えて、知識が相当量要求されるなあという感想
業務などに絡めていくにはより知識を蓄積していかないといけないと痛感しました
特にIPアドレス周りは全く知識がなく、それが多く要求されるのが一番最初のVPC周りの構築で、最初の最初で躓くわけにはいかないので、より意識した学習が必要だと思いました また、AWSの資格の存在意義を理解しました

学習計画では、ここからELBやS3も構成に入れてLv.1達成となっているので、引き続き実際に触りながら学習していきたいです
(構築したらまた記事にしようと思っております)

余談

ググりながら構築してましたがAWSのUI変わりすぎてネットにあるhow to全然参考になりませんでした

4
7
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
4
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?