AWS にアップロード
EC2 インスタンスの作成
最初なのでおすすめされた amazon linux にして、t2.micro にした。セキュリティは HTTP、HTTPS を任意、SSH を自分の IP のみとした。
Elastic IP を作成、グローバル IP を固定。1 つ目は無料っぽい。
SSH config をいじって ssh aws で通信できるようにした。
IAM ダッシュボードで MFA(多要素認証) すべきといわれたのでやる。連続する 2 つのコードは、30 秒前のコードと今のコード(更新前と後) の 2 つを入力する。
ec2 に Name=app1, Env=dev のタグをつける。
IAM ユーザー作成、アクセスキー作成、aws configure
でアクセスキー、シークレットアクセスキー、リージョン設定。インラインポリシー追加より下記の JSON を追加。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:PutParameter", "ssm:DeleteParameter", "ssm:GetParameterHistory", "ssm:GetParametersByPath", "ssm:GetParameters", "ssm:GetParameter", "ssm:DeleteParameters" ], "Resource": "arn:aws:ssm:(リージョン):(アカウント ID):parameter/app1/dev/*" } ] }
これで ssh して aws ssm put-parameter
などで Parameter Store が使えるようになった。
mysql インストールしようとしたら、glibc-2.28 の libc.so.6 がないと言われた、どうしようもなさそうなので、EC2 再構築、mariadb をインストールすることにした。 CURRENT_TIMESTAMP が使えない、バージョンが 5.5 のせい。 【Amazon Linux 2】MariaDBを5.5から10.5にバージョンアップ|IT石ログ これに沿ってアップデートすれば使えるようになった。
sudo vim /etc/environment
で環境変数を設定。port が 1024 以下の時は sudo が必要。root ユーザーでも aws configure
の設定する。
エラー: address already in use 、前に動かしたものが残っている。 ps ax | grep go
からプロセスを見て、kill する。
gmail 送信でエラー(認証系)が出る。安全性低いアプリを許可していたが、これを機にやめてみる。二段階認証、アプリパスワード生成して解決。
以上により AWS に上げることができた。
nohup で常に起動ができる。