簡易なWEB/APサーバ、DBサーバのWEBアプリケーション環境をAWSで構築する。
出来上がり時のイメージは以下のとおり。
https://qiita.com/chokunari/items/28d160397b26a50d8c11
参考にした書籍
Amazon Web Services 基礎からのネットワーク&サーバー構築
https://www.amazon.co.jp/dp/B06Y5ZSYY4/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1
【ローカル環境】
MacBookPro
MacOS:Mojave 10.14.6
RDSでPostgreSQLのDBサーバ構築編
- RDSインスタンスの作成
- RDSダッシュボードのデータベースメニューからデータベースの作成。
- データベースの設定はStandard Create。
- エンジンのオプションはPostgreSQL。(任意。)
- バージョンは11.4-R1。(任意。)
- テンプレートは無料利用枠。
- DB インスタンス識別子はdatabase-1。(任意。)
- マスターユーザ名、マスターパスワードも任意。
- DB インスタンスサイズは変更できないので固定。
- ストレージ割り当ては無料枠に収まる20GiB。
- ストレージの自動スケーリングは無効。(任意。)
- マルチAZ配置は変更できないので固定。(本番環境等では活用。)
- Virtual Private Cloud (VPC)は作成済みVPCを選択。
- サブネットグループは新しいDBサブネットグループの作成。
- パブリックアクセス可能はなし。
- VPCセキュリティグループは新規作成。
- 新しい VPC セキュリティグループ名は任意。
- アベイラビリティーゾーンはWEBサーバが配置してあるところを選択。
- データベースポートは、今回はお試し用なので5432でOK。
- 追加設定の最初のデータベース名は任意で入力。
- DB パラメータグループはデフォルト。
- IAM db 認証は任意。
- 自動バックアップの有効化は任意。
- Performance Insights を有効にするは任意。
- マスターキーはデフォルトでOK。
- 拡張モニタリングの有効化は任意。
- ログのエクスポートは任意。
- マイナーバージョン自動アップグレードの有効化は任意。
- メンテナンスウィンドウは設定なし。
- 削除保護は任意。
- データベースの作成。
- WEBサーバからの疎通確認
- EC2ダッシュボードのセキュリティグループメニューで、前項番にて作成したセキュリティグループを選択。
- インバウンドタブを選択し、編集。
- PostgreSQLのソースを任意の場所に設定。
- ルールの追加。
- タイプはSSHを選択。
- ソースは任意の場所を選択。
- 保存。
- ECS2へログイン。
- yumパッケージのアップデート。(コマンド:yum update)
- psqlクライアントのインストール(コマンド:sudo yum install postgresql96.x86_64)
- DB(DB名:postgres)へのアクセス。(コマンド:psql --host=エンドポイント --port=5432 --username=ポストグレスのユーザ名 --password --dbname=postgres)
- 接続できたらDBを抜ける。(コマンド:¥q)
これでWEBサーバからアクセス可能なPostgreSQL(RDS)が完成。プライベートサブネット内に作成したため、外部からのアクセスは不可。
以上で簡易なWEBアプリケーション環境の構築が完了。
※ソースコードや諸々必要なファイルは、
scp -i [秘密鍵フルパス] [アップロードしたいファイルのフルパス] ec2-user@[パブリックIP]:[コピー先ディレクトリ]
でEC2インスタンスにコピーできる。
※公式HPに「注意: Amazon RDS では、ping を含むインターネットコントロールメッセージプロトコル (ICMP) トラフィックは受け入れられません。」と記載されており、pingによる疎通はできない。
https://aws.amazon.com/jp/premiumsupport/knowledge-center/rds-cannot-connect/