CakePHP3 Tips

CakePHP3歴 1年のWEBエンジニアの備忘メモです。ブログ内容はCakePHP3.5 (PHP7.1) で検証しています。

AWS

翔泳社「AWSではじめるインフラ構築入門 安全で堅牢な本番環境のつくり方」メモ

投稿日:2021年9月7日 更新日:

AWSではじめるインフラ構築入門 安全で堅牢な本番環境のつくり方

  • 第3章

※AWSアカウント作成後にやること

ルートユーザーのアクセスキーの削除

ルートユーザーのMFAを有効化

個々のIAMユーザーの作成

グループを使用したアクセス許可の割り当て

IAMパスワードポリシーの適用

参考URL:

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/best-practices.html

アクセス許可ポリシー:

IAMFullAccess

-> AWSマネジメントコンソールを介してIAMへのフルアクセスを提供します。

PowerUserAccess

-> AWSサービスとリソースへのフルアクセスを提供しますが、ユーザーとグループの管理は許可しません。

 

  • 第4章

AWS・VPC作成

名前タグ:sample-vpc

IPv4 CIDRブロック:10.0.0.0/16

・サブネット作成

=Availability Zone1

sample-subnet-public01:10.0.0.0/20

sample-subnet-private01:10.0.64.0/20

=Availability Zone2

sample-subnet-public02:10.0.16.0/20

sample-subnet-private02:10.0.80.0/20

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

名前タグ:sample-igw

VPCアタッチ:sample-vpcをアタッチ

・NATゲートウェイ作成

=NATゲートウェイ1

名前:sample-ngw-01

サブネット:sample-subnet-public01

Elastic IP:自動割り当て

=NATゲートウェイ2

名前:sample-ngw-02

サブネット:sample-subnet-public02

Elastic IP:自動割り当て

・ルーティング作成

パブリックサブネット用:

送信先、ターゲット

10.0.0.0/16、local

0.0.0.0/0、sample-igw

=サブネット
sample-subnet-public01、sample-subnet-public02

プライベートサブネット1用:

送信先、ターゲット

10.0.0.0/16、local

0.0.0.0/0、sample-ngw-01

=サブネット
sample-subnet-private01

プライベートサブネット2用:

送信先、ターゲット

10.0.0.0/16、local

0.0.0.0/0、sample-ngw-02

=サブネット
sample-subnet-private02

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

踏み台サーバ

グループ名:sample-sg-bastion

説明:for bastion server

VPC:sample-vpc

インバウンドルール:SSH 0.0.0.0/0

ロードバランサー

グループ名:sample-sg-elb

説明:for load balancer

VPC:sample-vpc

インバウンドルール:HTTP 0.0.0.0/0、HTTPS 0.0.0.0/0

  • 第5章

キーペア作成

踏み台サーバ作成

ネットワーク:sample-vpc

サブネット:sample-subnet-public01

自動割り当てパブリックIP:有効

タグ:Name / sample-ec2-bastion

セキュリティグループ:default / sample-sg-bastion

  • 第6章

webサーバ2台作成

sample-ec2-web01

ネットワーク:sample-vpc

サブネット:sample-subnet-private01

自動割り当てパブリックIP:無効

セキュリティグループ:default

sample-ec2-web02

ネットワーク:sample-vpc

サブネット:sample-subnet-private02

自動割り当てパブリックIP:無効

セキュリティグループ:default

多段SSH(~/.ssh/config)

  • 第7章

ロードバランサー作成

名前:sample-elb

VPC:sample-vpc

アベイラビリティーゾーン:sample-subnet-public01、sample-subnet-public02

セキュリティグループ:default、sample-sg-elb

ターゲットグループ:sample-tg、HTTP、3000、sample-ec2-web01、sample-ec2-web02

ELB動作確認

index.html作成

<html><body>hello world</body></html>

python -m SimpleHTTPServer 3000

ターゲットグループのHealth Statusがhealthyであること

ロードバランサーのDNS名にブラウザからアクセス

  • 第8章

RDS作成

パラメータグループ作成

パラメータグループファミリー:mysql8.0

グループ名:sample-db-pg

説明:sample parameter group

オプショングループ作成

グループ名:sample-db-og

説明:sample option group

エンジン:mysql

メジャーエンジンバージョン:8.0

サブネットグループ作成

グループ名:sample-db-subnet

説明:sample db subnet

VPC:sample-vpc

アベイラビリティゾーン:対象サブネットのゾーン選択

サブネット:sample-subnet-private01、sample-subnet-private02

DB作成

エンジンタイプ:MySQL

DBインスタンス識別子:sample-db

Virtual Private Cloud:sample-vpc

サブネットグループ:sample-db-subnet

パブリックアクセス可能:なし

既存のセキュリティグループ:default

データベース認証オプション:パスワード認証

DBパラメータグループ:sample-db-pg

DBオプショングループ:sample-db-og

動作確認 ※WEBサーバにて

sudo yum install -y mysql

mysqladmin ping -u admin -p -h エンドポイント名

※上記にて「mysqld is alive」が返ってくることを確認

  • 第9章

S3バケット作成

バケット名:aws-intro-sample-upload

リージョン:ap-northeast-1

パブリックアクセス:すべてブロック

ロール作成

信頼されたエンティティ:EC2

アクセス権限ポリシー:AmazonS3FullAccess

ロール名:sample-role-web

ロールの説明:upload images

WEBサーバにロール適用

sample-ec2-web01、sample-ec2-web02

 動作確認

下記にてs3にファイルアップロードされていることを確認

 

  • 第10章

ドメイン購入

公開ホストゾーン設定

=踏み台サーバ

レコード名:bastion

レコードタイプ:A

値:踏み台サーバの公開IP

=ロードバランサー

レコード名:www

レコードタイプ:A

値:Application Load Balancer / ap-northeast-1 / 対象ロードバランサー

非公開ホストゾーン設定

=プライベートホストゾーン作成

ドメイン名:home

タイプ:プライベートホストゾーン

リージョン:ap-northeast-1 の sample-vpc

=サーバレコード定義

レコード名:bastion or web01 or web02

レコードタイプ:A

値:IPアドレスまたは別の値(各サーバのローカルIP)

=DBレコード定義

レコード名:db

レコードタイプ:CNAME

値:IPアドレスまたは別の値(エンドポイント)

SSLサーバ証明書発行

ロードバランサーに443リスナー追加

ポート:443

デフォルトのSSL証明書:ACM / 発行した証明書

デフォルトアクション:転送先 / sample-tg

S3の個別アクセスポリシー

 

  • 第11章

SES設定

・リージョン変更

東京

・ドメイン設定

Domain:対象ドメイン

Generate DKIM Settings:オン

・検証メールアドレス追加

・SMTP Settings

IAM User Name:no-reply

・テスト送信ファイル作成

sendmailtest.py

・メール受信時にS3保存

※バージニアリージョンに変更(東京利用不可のため)

S3バケット作成

バケット名:aws-intro-sample-mailbox

リージョン:バージニア北部

パブリックアクセス設定:すべてブロック

※作成後にポリシー修正

受信アクション作成(Rule Sets)

Recipient:xxx@xxx.net

Add action:S3

S3 bucket:対象バケット

Object key prefix:保存フォルダ

Rule name:sample-rule-inquiry-xxx

動作確認

対象メールアドレスにメール送信してS3に保存されることを確認

  • 第12章

Redis作成

クラスターエンジン:Redis

クラスターモード:有効

名前:sample-elasticache

説明:Sample Elasticache

ノードタイプ:t3.micro

シャドー数:2

シャードあたりのレプリカ:2

サブネットグループ:新規作成

名前:sample-elasticache-subnet

VPC:sample-vpc

サブネット:上記VPCのプライベートサブネット

動作確認

nc Redisエンドポイント ポート番号

ex) nc sample-elasticache.xxx.cache.amazonaws.com 6379

-AWS
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

関連記事はありませんでした




記事が役立ったら「投げ銭」してもらえると嬉しいです♪
0x28eb75414278F32e388509Cce2929EB8e5987634