AWS(Cloud9)HTTPS化


目次

  • はじめに
    • 環境
    • 前提
  • Cloud9準備
    • 環境作成
    • 取り敢えず外部公開
    • indexを外部公開
    • indexファイル作成
  • HTTPS化
    • Route53設定
    • ACM証明書発行
    • ALB作成
  • おわりに

はじめに

使用環境

  • AWS Cloud9
  • EC2
    • t2.micro (1 GiB RAM + 1 vCPU)
  • Apache/2.4.39 (Amazon)

前提

  • AWSアカウントを持っていること
  • ドメインを取得可能(又は所持済み)

Cloud9準備

環境作成





EC2を作成
取り敢えずは最低サイズを選択
OSはAmazon Linux
ネットワークの設定はいじらずに次


内容を確認大丈夫なら作成


取り敢えず外部公開


下のウィンドウのbashに下記コマンドを打ちインスタンスIDを取得

curl 169.254.169.254/latest/meta-data/instance-id/

表示されたIDはコピーしておきます



EC2を開き、インスタンスに移動
検索欄に先ほどコピーしたIDを貼り付ける

表示されたインスタンスをクリック
情報が下ウィンドウに表示されるのでセキュリティグループまでスクロール
セキュリティグループをクリックしてセキュリティグループへ移動


表示されたグループを右クリックしてインバウンドルールの編集


HTTPとHTTPSを追加

Cloud9に戻り下記コマンドを打ってください

curl http://169.254.169.254/latest/meta-data/public-ipv4

IPアドレスを取得できます後程つかいますのでコピーしておいてください

sudo service httpd start

URL欄に先ほどコピーしたIPアドレスを貼り付けて確認してみましょう

これで接続できていることは確認できます
ですが、indexを表示するためのパスがデフォルトのままでは違うのでそれを直さなければいけません

php動作確認、document root設定

Apacheのパスを直すのですが、ついでにphpのバージョンがデフォルトでは5.6なので7.3にします

#パッケージを更新
sudo yum update -y

#phpバージョン確認
rpm -qa | grep php

#php5.6一式アンインストール
sudo yum remove php56*

#PHP7.3一式インストール
sudo yum install php73*

#リンク削除
sudo unlink /usr/bin/php
#貼り直し
sudo ln -s /etc/alternatives/php7 /usr/bin/php
sudo vi /etc/httpd/conf/httpd.conf

httpd.confを変更
変更する場所を間違えないように注意

httpd.conf
User apache → User ec2-user
Group apache → Group ec2-user

DocumentRoot "/var/www/html" → DocumentRoot "/home/ec2-user/environment"
#ec2-userのセッション変数用のファイル書き込み可に設定
sudo chown root:ec2-user /var/lib/php/7.3/session

#設定情報確認用ファイルを配置(rootで設定したディレクトリに配置)
echo "<?php phpinfo();" > index.php
#再起動します
sudo service httpd restart


先ほどのIPアドレスを再度踏めば今回はphpinfo()が出力されます
無事確認できればphpも動作しています

HTTPS化

ここからHTTPS化に入りますがこれにはRoute53でのドメイン取得又は登録が必要になります
取得に関しては今回はやりませんのでそれはまた別途確認して下さい

Route53設定




Cloud9でコピーしたIPアドレスを値欄に貼り付けて作成

ACMで証明書発行








発行済みになるまで待つ

ALBの作成





HTTPSを追加


アベイラビリティーゾーン2つ以上指定



HTTPとHTTPSを追加


成功コードを301に変更


ポート番号80でCloud9のインスタンスを登録済みに追加して残りは内容の確認をして作成


作成したロードバランサーのセキュリティグループ欄のグループID(青文字)をコピーします


インスタンスのセキュリティグループへ移動


インバウンドルール編集でHTTPを追加ソースには先ほどコピーしたALBのセキュリティグループIDを貼り付けて保存


Route53で登録したドメインのホストにレコードセットを作成
エイリアスをはいにして、エイリアス先で作成したALBを選択して作成


作成したサブドメインに対して、HTTPSでアクセスして動作を確認

おわりに

HTTPS化には苦労した記憶があるので作成しました

2020/07/28 追記
改めて記事を見直したところ無駄な箇所があったので修正