0
1

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 5 years have passed since last update.

初めてのAWSで、WebアプリケーションからプライベートサブネットのRDSへ接続までを実施した。

Last updated at Posted at 2017-03-14

AWSの人気が非常に高いことは存じ上げておりました。
しかしながら、現職の業務上だと触る機会が皆無であるため、
プライベートで触ろうとしました。

しかし…
AWS、ぜんぜんわかりませーーーん。

何がわからん?

目標

  • RDSを使用して、DBの構築、自作WebアプリケーションからDBアクセスを可能にする。

実施したこと

AWSユーザー設定

  1. アカウントを作成する
  2. 仮想MFAデバイスをインストールする
    • 自分のiPhoneに「Google Authenticator」をインストールする
  3. MFAを設定する
    • 2つの認証コードは、以下
      • 表示された6桁の番号を、「認証コード1」に入力する
      • 約30秒後、続けて表示された6桁の番号を、「認証コード2」に入力する
      • 2行表示されるものだ、と思ってはまった。
  4. MFAを用いてサインインする
  5. グループを作成する
  6. IAMアカウントを作成する
    • キーなどが記載されたCSVをダウンロードできる。紛失しないようにする。
    • 一番最初に作成したアカウントは、ルートアカウントと呼ばれる。それで作業することは、基本的にしない。
  7. パスワードポリシーを設定する
  8. 作成したユーザへMFA割り当てる

AWS 環境構築

アカウント登録は完璧! さあ構築だ! と思ったら…。

  • 「サービスへのお申し込みはあと少しで完了です!」ページが表示されてしまうッッ!!

??? と思いましたが、以下が終わっていませんでした。

  • クレジットカードの登録
  • 電話により本人確認

アカウント登録、完璧ではありませんでした。
「サービスへのお申し込みはあと少しで完了です!」ページの「AWS への登録を完了してください。」をクリックし、
残りを登録・本人確認をしました。

環境構成

  • VPC
    • パブリックサブネット
      • EC2(踏み台)
    • プライベートサブネット
      • RDS

VPC作成

  1. 項目を入力して作成する
    • ネームタグ
      • vpc-employee-mask-management
    • IPv4 CIDR Block
      • x.x.x.x/xx
    • テナンシー
      • デフォルト
  2. 右クリックして「DNSホスト名の編集」を「はい」にする

サブネット作成

  1. 項目を入力してパブリックサブネットを作成する
    • ネームタグ
      • EM-public-subnet
    • VPC
      • vpc-employee-mask-management
    • アベイラビリティーゾーン
      • ap-northeast-1a
    • IPv4 CIDR Block
      • x.x.x.y/xx
  2. 項目を入力してプライベートサブネットを作成する
    • ネームタグ
      • EM-private-subnet
    • VPC
      • vpc-employee-mask-management
    • アベイラビリティーゾーン
      • ap-northeast-1a
    • IPv4 CIDR Block
      • x.x.x.z/xx
  3. パブリックサブネットの「自動割り当てパブリックIP」を有効化する

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

  1. 項目を入力してインターネットゲートウェイを作成する
    • ネームタグ
      • EM-internet-gateway
  2. インターネットゲートウェイにVPCをアタッチする

ルートテーブル作成

  1. 項目を入力してルートテーブルを作成する
    • ネームタグ
      • EM-root-table
    • VPC
      • vpc-employee-mask-management
  2. ルートタブにて、新しいルートを作成する
    • 送信先
      • 0.0.0.0/0
    • ターゲット
      • EM-internet-gateway

サブネットへルートテーブルを割り当て

  1. サブネット「EM-public-subnet」のルートテーブルタブで、ルートテーブルを割り当てる

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

  1. 項目を入力してパブリック用のセキュリティグループを作成する
    • ネームタグ
      • EM-public-DMZ
    • グループ名
      • EM-public-DMZ
    • 説明
      • Employee Management Public Security Group
    • VPC
      • vpc-employee-mask-management
  2. 項目を入力してプライベート用のセキュリティグループを作成する
    • ネームタグ
      • EM-private-DMZ
    • グループ名
      • EM-private-DMZ
    • 説明
      • Employee Management Private Security Group
    • VPC
      • vpc-employee-mask-management
  3. インバウンドを変更する
    • EM-public-DMZ
      • 1行目
        • タイプ
          • SSH
        • プロトコル
          • TCP
        • ポート
          • 22
        • 送信元
          • マイIP
      • 2行目
        • タイプ
          • PostgreSQL
        • プロトコル
          • TCP
        • ポート
          • 5432
        • 送信元
          • 0.0.0.0/0
    • EM-private-DMZ
      • 1行目
        • タイプ
          • PostgreSQL
        • プロトコル
          • TCP
        • ポート
          • 5432
        • 送信元
          • EM-public-DMZ

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

  1. RDSを開き、項目を入力し、DBサブネットグループを作成する
    • 名前
      • EM-dbsubnet-mask
    • 説明
      • Employee management DB subnet
    • VPC
      • vpc-employee-mask-management
    • 追加するサブネット
      • ap-northeast-1a
        • アベイラビリティーゾーン
          • ap-northeast-1a
        • サブネットID
          • EM-private-subnetのID
      • ap-northeast-1c
        • アベイラビリティーゾーン
          • ap-northeast-1c
        • サブネットID
          • EM-private-subnet-CのID

RDSインスタンス作成

  1. エンジンを選択する
    • PostgreSQL
  2. インスタンスの仕様を入力する
    • ライセンスモデル
      • postgresql-license
    • バージョン
      • PostgreSQL 9.5.4-R1
    • インスタンスのクラス
      • db.t2.micro
    • DBインスタンス識別子
      • employee-mask-management
    • マスタユーザの名前
      • adminuser
    • マスターパスワード

    • パスワードの確認

  3. 詳細設定の設定
    • VPC
      • vpc-employee-mask-management
    • サブネットグループ
      • EM-dbsubnet-mask
    • パブリックアクセス
      • いいえ
    • アベイラビリティーゾーン
      • 指定なし
    • VPCセキュリティグループ
      • EM-private-DMZ
    • データベースの名前
      • employeemanagement
    • データベースのポート
      • 5432
    • DB パラメータグループ
      • default.postgres9.5

EC2インスタンス作成

  1. マシンイメージを選択する
    • Amazon Linux AMI 2016.09.1 (HVM), SSD Volume Type
  2. インスタンスタイプを選択する
    • t2.micro
  3. インスタンスの設定をする
    • インスタンス数
      • 1
    • ネットワーク
      • vpc-employee-mask-management
    • サブネット
      • EM-public-subnet
    • 自動割り当てパブリックIP
      • サブネット設定を使用
  4. ストレージの設定をする
    • 全てデフォルトのまま
  5. Add Tags
    • Name
      • EM-Server
  6. セキュリティグループの設定をする
    • 既存のセキュリティグループを選択する
      • EM-public-DMZ
  7. キーペアを作成、ダウンロードする
    • キーペア名
      • EM_Server_Key

EC2インスタンスへの接続

  • ssh -i {key file name} {your user name}@{your address.com}

ローカルの開発環境にあるWebアプリからRDSへ接続する方法

  • Webアプリ側で、JSchを使用して、SSHポートフォワーディングする

結果

  • ローカルのWebアプリから、プライベートサブネットのRDSへ接続することができた。

わからないこと

  • EC2によるポートフォワーディングが、AWS上に存在しないアプリケーションがRDSへ接続する方法として、適切なのか?
    • 別のAWSサービスを利用した、もっとよい方法があるのではないか?

参考にさせて頂きました

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?