LoginSignup
16
15

More than 5 years have passed since last update.

AWSでWEBサーバー構築手順

Posted at

EC2でWEBサーバーを立ち上げ、セッティング、PHPをインストールしSESを使った問い合わせを実装したWEBサイトをRoute53でドメインを紐付け公開する手順の記録。
今後の予定としてこの手順を自動化しデプロイ可能にすること。

EC2の起動

Amazon Linux AMIを利用、InstanceTypeはとりあえずt2.micro、EBSは8GB、他はデフォルトのまま。
※ReservedInstanceの設定は今回はなし

SecurityGroupを設定

Inbound SSH
Outbound All

Elastic IPの設定

InstanceIDを指定し、ElasticIPをひもづける。

EC2にSSH接続

秘密認証キーのパーミッション変更
$chmod 400 ~/hoge/hoge.pem

sshアクセス
$ssh -i ~/hoge/hoge.pem ec2-user@xx.xx.xx.xx

WEBサーバーセッティング

  • SecurityGroup確認、InboundのHTTP、HTTPSを許可する。
  • 参考リンクをもとにApache、PHPをインストール後、Apacheを起動する。

参考リンク チュートリアル: LAMP ウェブサーバーのインストール - Amazon Elastic Compute Cloud

  • ブラウザにElasticIPで設定したIPアドレスでアクセスし、ApacheのTestページが表示されればOK!
  • 次にapacheのドキュメントルートの所有権の変更。コレでec2-userからドキュメントルートにアクセスを出来るようにする。
  • アクセス権の設定が完了すればSFTPが利用可能なFTPソフトなどでアクセスできるようになる。

参考リンク AWSインスタンスにSFTPで接続(Cyberduck) | 日々是迷子

Route53を使ったホストゾーンの作成

上記リンクをもとにホストゾーンを作成後、Aレコードを設定。ドメインとElasticIPをひもづける。
今回はhoge.com、www.hoge.comに設定。

参考リンク ホストゾーンの使用 - Amazon Route 53

SESを使ったお問い合わせフォームの実装

SES のセットアップ

参考リンク Amazon SES のセットアップ - Amazon Simple Email Service

管理画面からSESの利用設定をする。EmailAdressの設定ページでアドレスを設定。
認証メールが登録したアドレス宛に届くので確認する。
上記手順でSESお試しモード(sandbox access)の利用が可能になる。

sandbox accessとProduction Accessの違い
sandbox accessは以下の制限がある

  • 登録したメールアドレスのみ送信可能
  • 最大で 24 時間あたり 200 メッセージを送信できます。
  • 最大で 1 秒あたり 1 メッセージを送信できます。

Production Accessでフル稼働させるにはリクエストをAWSに送る。1営業日必要。

AWS PHP SDKのセットアップ

今回は一番簡単に実装出来る方法にしました。
1.SESの利用登録後、IAMユーザーを作成する。Policyは"AmazonSESFullAccess"を利用。
2.Credential Key Passwordを控えておく
3.こちらのダウンロードからaws.pharをダウンロード AWS SDK for PHP | アマゾン ウェブ サービス(AWS 日本語)
4.PHPスクリプトを作成。参考はこちらがわかりやすいです AWS SDK for PHPを使ってAmazon SESからメール送信 - F.Ko-Jiの「一秒後は未来」
5.あとは通常のフォーム作成と同じです!

参考リンクまとめ

ホストゾーンの使用 - Amazon Route 53
Amazon SES のセットアップ - Amazon Simple Email Service
SSH を使用した Linux/Unix インスタンスへの接続 - Amazon Elastic Compute Cloud
AWS SDK for PHP — AWS SDK for PHP 2.7.12 documentation
AWS SDK for PHP | AWS SDK for PHP

16
15
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
16
15