ハンズオン: AWS Service (RDS: PostgreSQL)¶
目的¶
RDSを利用してPostgreSQLによるデータベースサーバを構築する。
前提¶
作業環境条件¶
作業環境条件¶
本作業は、以下の作業環境で行います。
作業環境条件1: OSとバージョン
本手順は、Amazon Linux "Amazon Linux AMI release 2018.03"以降のOS環境での実施を前提としています。
コマンド:
cat /etc/issue | head -1
結果(例):
Amazon Linux AMI release 2018.03
作業環境条件2: シェルとバージョン
本手順は、bash "4.2.46(2)-release"以降のシェル環境での実施を前提としています。
コマンド:
bash --version -v | head -1
結果(例):
GNU bash, バージョン 4.2.46(2)-release (x86_64-redhat-linux-gnu)
作業環境条件3: AWS CLIのバージョン
本手順は、AWS CLIの最新バージョンでの実施を前提としています。
コマンド:
aws --version
結果(例):
aws-cli/1.16.2 Python/3.6.5 Linux/4.14.59-64.43.amzn1.x86_64 botocore/1.11.2
バージョンが古い場合は最新版に更新しましょう。
コマンド:
sudo -H pip install -U awscli
手順¶
ローカル環境での作業¶
- 今回は"${HOME}/tmp/parameter-handson-rds"をパラメータファイル情報用ディレクトリとします。
ディレクトリが存在することを確認します。
コマンド:
ls -d ${HOME}/tmp/parameter-handson-rds
結果(例:存在する場合):
${HOME}/tmp/parameter-handson-rds
存在しない場合は作成します。
コマンド:
mkdir -p ${HOME}/tmp/parameter-handson-rds
1. EC2権限での作業 (VPCの構築)¶
VPCの上限に達していないことの確認¶
変数の設定:
export AWS_DEFAULT_REGION='ap-northeast-1'
コマンド:
COUNT_VPCS=$( \ aws ec2 describe-vpcs \ --query 'length(Vpcs[])' ) \ && echo ${COUNT_VPCS}注釈
上限(デフォルト5)に達している場合、不要なVPCをあらかじめ削除してください。
CloudFormationテンプレートを利用して構築する場合¶
2. RDS権限での作業 (DBインスタンスの構築)¶
3. SSM権限での作業 (パラメータの登録)¶
コマンド:
diff ~/tmp/handson-rds-dbinstance-pgadmin.txt \ ~/tmp/handson-rds-dbinstance-pgadmin.tmp
結果(例):
1a2 >
4. IAM権限での作業 (パラメータへのアクセスポリシ作成)¶
5. CloudWatch Logs権限での作業 (ロググループ作成)¶
6. IAM権限での作業 (ロググループへのアスセスポリシ作成)¶
7. EC2権限での作業 (キーペアの作成)¶
8. IAM権限での作業 (インスタンスプロファイルの作成)¶
- 8.1. IAMインスタンスプロファイルの作成 (handson-rds-instanceprofile)
- 8.2. AssumeRoleドキュメントの作成 (handson-rds-role)
- 8.3. IAMロールの作成 (handson-rds-role)
- 8.4. IAMインスタンスプロファイルへのIAMロールのアタッチ
- 8.5. インスタンスプロファイルのIAMロールへのIAMポリシのアタッチ (handson-rds-connection-SSMParameterRead-policy)
- 8.6. インスタンスプロファイルのIAMロールへのIAMポリシのアタッチ (EC2LogsAgent-handson-rds)
9. EC2権限での作業 (EC2インスタンスの構築)¶
- 9.1. サブネットの作成 (handson-rds-env_maint-subnet)
- 9.2. ルートテーブルの更新 (handson-rds-env_maint-subnetとの関連付け)
- 9.3. セキュリティグループの作成 (handson-rds-env_maint-sg)
- 9.4. EC2ユーザデータの作成 (handson-rds-userdata)
- 9.5. EC2インスタンスの作成 (ユーザデータ/PublicIP/KeyPair: handson-rds)
- 9.6. セキュリティグループの更新 (Ingressの許可: CIDR指定(作業サイト): handson-rds-env_maint-sg: 22322)
- 9.7. セキュリティグループの更新 (Ingressの許可: ソースグループ指定: handson-rds-db-sg)
- 9.8. EC2インスタンスへのSSHログイン (handson-rds)
後始末1. EC2権限での作業 (EC2インスタンスの破棄)¶
後始末2. IAM権限での作業 (インスタンスプロファイルの削除)¶
後始末3. EC2権限での作業 (キーペアの削除)¶
後始末4. IAM権限での作業 (ロググループへのアクセスポリシ削除)¶
後始末5. CloudWatch Logs権限での作業 (ロググループ削除)¶
後始末6. IAM権限での作業 (パラメータへのアクセスポリシ削除)¶
後始末7. SSM権限での作業 (パラメータの削除)¶
後始末8. RDS権限での作業 (DBインスタンスの破棄)¶
後始末9. EC2権限での作業 (VPCの破棄)¶
ローカル環境での作業¶
コマンド:
rm -R ${HOME}/tmp/parameter-handson-rds
コマンド:
rm -R ${HOME}/tmp/conf-handson-rds
コマンド:
rm ${HOME}/tmp/handson-rds-*