AWS Linux 2023にLaravelデプロイ[1] 〜EC2セットアップ、MySQLインストール
ここ数ヶ月で、プライベートで実装したものも含め、数個のwebアプリケーション(Laravelで実装)をAWSにデプロイしたので、備忘録も兼ねて記録。ここではEC2セットアップまで。
SSHでEC2に接続(※macユーザー)
[1] awsコンソールからダウンロードしたsshキーを、PCの.sshフォルダに格納
※.sshフォルダは隠しフォルダなので通常は見えない。表示させる場合は、「command」+「shift」+「.」 で表示される
[2] ターミナルを開き、cdで.sshのフォルダに移動し、キーの権限を変更する(所有者のみRead可能に)※これは最初だけ
% chmod 400 mcp-aws-user.pem
[3] SSHに接続
接続のコマンドは以下(.sshで行うこと)
% ssh -i {pemキーのファイル名} ec2-user@{EC2インスタンスのIPアドレス}
なので、例えば、キーのファイル名がaws_test_key.pemで、インスタンスのIPアドレスが55.55.222.22だったら
% ssh -i aws_test_key.pem ec2-user@55.55.222.22
hostname、言語、タイムゾーン変更
以下からはSSHでの作業。
hostnameの変更
SSHで接続したときに、どのインスタンスに接続しているか分かり易いように名前を設定する。
いくつも保守をしていると、本当に目的のインスタンスなのか疑心暗鬼になることがあるので、設定した方がいい。
[1] ターミナルで以下(場所はどこでも良い。SSH接続したその場とか)
{設定したい名称}に変更後の名称を入れる。例えば、test-app-pd とか。
$ sudo hostnamectl set-hostname {設定したい名称}.localdomain
[2] /etc/hosts を開いて[1]でセットした名称をセットする
$ sudo vi /etc/hosts
するとエディタが開くので、1行目の二箇所「localhost localhost.~」の部分の「localhost」を[1]でセットした名称にする。
■変更前
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost6 localhost6.localdomain6
■変更後(test-app-pd)にしたい場合
127.0.0.1 test-app-pd test-app-pd.localdomain localhost4 localhost4.localdomain4
::1 localhost6 localhost6.localdomain6
[3] EC2再起動
$ sudo reboot
それで再度SSHで接続し、
[ec2-user@test-app-pd ~]$
と変更されていたらOK
言語設定
[1] /etc/sysconfig/i18n のファイルを編集する
$ sudo vi /etc/sysconfig/i18n
でエディタを開く。
以下に変更。
LANG=ja_JP.UTF-8
保存する。(エスケープキー→「:」→「w」→「q」でエンター)
タイムゾーンを日本時間に
現在のタイムゾーンを確認。
$ date
で現在の時刻が表示される。
[1] タイムゾーン用のファイルをコピーする
$ sudo cp /usr/share/zoneinfo/Japan /etc/localtime
[2] 以下のファイルを開き編集する
$ sudo vi /etc/sysconfig/clock
エディタが開くのでZONEを変更。
ZONE="Asia/Tokyo"
[3] date で現在時刻を確認して日本時間が表示されればOK
MySQLインストール
コマンドを打つために、EC2にMySQL8をインストールする。(今回は、DBはプライベートサブネットにRDSを入れている)
MySQL 8.0 Communityリポジトリを追加
sudo dnf -y localinstall https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
MySQLとMySQLコミュニティクライアントをインストール
sudo dnf -y install mysql mysql-community-client
これでコマンドラインでmysqlを打てるようになる。
次は、nginx、phpをインストールしphpの表示確認まで。