iOSアプリにPHPからプッシュ通知(APNs)したいため、AWS EC2にPHPが動作するサーバーを立ち上げる手順MEMO。
ほぼ上記の流れと同様ですが、AWSの画面についてやセキュリティ関連、ドメイン設定部分について補足追加しておきます。
上記MEMO内の
- ドメイン
- パケットフィルタ設定
- DNS
- MySQL & おまけ:MySQL Driver
部分がAWSだと以下に置き換わるかなと思います。
AWS にアカウントを作り、コンソールにサインイン後、EC2のダッシュボードに移動。インスタンスを起動で、Ubuntu(Ubuntu Server 22.04 LTS (HVM), SSD Volume Type。インスタンスタイプを選ぶ際、最低でもメモリは1GB以上必要)をセットアップし、SSHでアクセスできるようになっている前提です。
インバウンドルールの設定
EC2ダッシュボードから「インスタンス(実行中)」を選び、対象となるインスタンスIDを選ぶ。インスタンス概要ページの下部にある「セキュリティ」を選択し、セキュリティグループという下のリンクをクリック。インバウンドのルールを編集。「HTTP」「HTTPS」を選び、「Anywhere-IP4v」を選択し「ルールを保存」。
これをしておかないとApacheを起動してもブラウザからアクセスできません。
Route 53 ホストゾーンの作成
コンソールのサービスから「Route 53」を検索し「Route 53 ダッシュボード」を表示。「ホストゾーンの作成」を選ぶ。
「ドメイン名」に上記のインスタンスに設定したいドメイン名を入力。タイプは「パブリックホストゾーン」。「ホストゾーンの作成」をクリックすると、タイプ「NS」 の値に
- ns-xxxx.awsdns-xx.org
- ns-xxx.awsdns-xx.net
- ns-xxxx.awsdns-xx.co.uk
- ns-xxx.awsdns-xx.com
と表示されます。
ムームードメインでネームサーバを登録
ドメイン管理しているサービスでネームサーバを登録します。以下はムームードメインの例です。
ムームードメインのコンパネで対象となるドメインを選択し、「ネームサーバ設定変更」をクリック。「取得したドメインで使用する」でネームサーバ1から4までに上記で表示されたアドレスを入力。最後にピリオドがついてますが、そこまで入力するとエラーになるので、最後のピリオドはなしで。
1日程度、浸透するのを待ってから(設定直後に浸透する場合もありそう)、バーチャルホスト設定以降の設定に戻る。
浸透しているかを確認するには、
nslookup -type=NS example.com
を行ってanswerにawsdnsのアドレスが表示されるかを確認します。
Elastic IP の割り当て
EC2ダッシュボードの左メニュー内「Elastic IP」を選択。右上の「Elastic IP アドレスを割り当てる」をクリックし、そのまま「割り当て」。アクションメニューから「Elastic IP アドレスの関連付け」を選択し、リソースタイプ「インスタンス」でインスタンス欄の「インスタンスタイプを選択します」というところから選択できる「xxx – running」という項目を選択し「関聯付ける」をクリック(プライベートIPアドレス欄は空欄のままにしました)
これでEC2のインスタンス概要を見ると、「自動的に割り当てられたIPアドレス」だったものが「Elastic IP アドレス」(再起動するなどしても変動しないIPアドレス)となるはず。
A レコードを作成
Route 53の対象とするホストゾーン詳細画面で「レコードを作成」。「レコードをクイック作成」画面で以下の値で空白のままと「www」とで二つのレコードを作成。
- 空白のままと「www」
- レコードタイプ:A
- 値:Elastic IP アドレス
- TTL:1時間(3600)
- ルーティングポリシー:シンプルルーティング
MySQL(Amazon RDS)
Amazon RDSのダッシュボードから「データベースの作成」で「簡単に作成」を選びます。以下の選択肢で
- エンジンのタイプ:MariaDB
- DBインスタンスのサイズ:開発/テスト
- DBインスタンス識別子:任意(db-mskgapps-hoge)
- マスターユーザー名:admin
- マスターパスワード:任意
- EC2コンピューティングリソースに接続
- EC2インスタンス:上記で作成したEC2インスタンスを選択
この場合のデータベース接続情報は、Amazon RDSダッシュボード>DBインスタンスから作成したDB接続子のリンクを押して表示される「エンドポイント」のアドレス。ポートは3306、ユーザーはadmin。SSHトンネルを使用して接続。
東京造形大学卒業後、マクロメディア(現アドビ)に入社。QAやテクニカルサポートマネージャーとしてFlash、DreamweaverなどのWeb製品を担当。独立後、2007年に虫カゴデザインスタジオ株式会社を設立。2021年東京三鷹を拠点に。最近は、Unity, Unity Netcode for GameObjects, CakePHP, Laravel, ZBrush, Modo, Adobe Substance 3D, Adobe Firefly, Xcode, Apple Vision Pro, Firebaseにフォーカスしています。モバイルアプリ開発情報を主としたブログ「MUSHIKAGO APPS MEMO」の中の人。