はじめに
この度、公開するアプリケーションはWebSocketを使用します。
ついては、使用した事のないRoute53、AWS Shield、 ELBは今回の記事では扱いません。
今回の目標は、デプロイをし、ローカル環境と同様、正常に動作する事の確認のみ行います。
構成
予算は、130$ / 月なので、AWS Budgetsでアラートを設定します。
デフォルトは85%で通知のため、今回は、110$を超えると設定したアドレスに通知が届きます。
使用するEC2インスタンスは予算の都合上もあり、t3.nanoとします。
What is Amazon EC2? - Amazon Elastic Compute Cloud
最大 3.1 GHz のインテル Xeon スケーラブルプロセッサ (Skylake 8175M または Cascade Lake 8259CL)
バーストパフォーマンスインスタンスに関する主要な概念と定義 - Amazon Elastic Compute Cloud
VPCは、一昨年あたりに無料利用期間枠で作成したものを流用します。
What is Amazon VPC? - Amazon Virtual Private Cloud
セキュリティグループでは、私からしかSSH接続はしないので、ソースを「自分のIP」にします。
ストレージでは、Amazon EBSのgp2を使用します。
ハイパフォーマンスブロックストレージの料金 – Amazon EBS の料金 – Amazon Web Services
料金がわかりにくかったので調べました。
「料金設定が月単位」「課金が秒単位」のAWS EBSの料金計算 - Qiita
下記は、私がEBSを知らないため、備忘録として残します。
Amazon Elastic Block Store (Amazon EBS) - Amazon Elastic Compute Cloud
インスタンスの有効期間とは無関係に存続するストレージボリュームとして公開されます。これらのボリューム上にファイルシステムを構築できます。または、これらのボリュームをブロックデバイス (ハードドライブなど) を使用する場合と同じ方法で使用できます。インスタンスにアタッチされているボリュームの設定は動的に変更できます。
デフォルトでは、Amazon Linux 2 ベースの Amazon ECS に最適化された AMI(Amazon ECS に最適化された Amazon Linux 2 AMI、Amazon ECS に最適化された Amazon Linux 2 (arm64) AMI、および Amazon ECS GPU に最適化された AMI)には、1 つの 30 GiB のルートボリュームが付属しています。30 GiB ルートボリュームのサイズを起動時に変更して、コンテナインスタンスで使用可能なストレージを増やすことができます。このストレージは、オペレーティングシステム用と Docker イメージおよびメタデータ用に使用されます。
ストレージ側に設定をする容量は、そこまで大量に使用しない予定なので、デフォルトの8GBにします。
EC2インスタンス作成後
2023/9/4、現在、OSDNが不安定との事でGithubからダウンロードできるようです。
Releases · TeraTermProject/osdn-download · GitHub
後は、パブリックIPアドレスを使用して、鍵は発行したキーペアを使用します。
AWS EC2 AmazonLinux2 MySQLをインストールする - Qiita
MariaDB用のパッケージがあるそうなので、こちらの記事に倣います。
MySQL :: MySQL 8.0 リファレンスマニュアル :: 2.5.1 MySQL Yum リポジトリを使用して MySQL を Linux にインストールする
Amazon Linux2 はRedHat7がベースだそうです。
MySQL :: Download MySQL Yum Repository
現在は、mysql80-community-release-el7-10.noarch.rpm
初期パスワードは、sudo grep 'temporary password' /var/log/mysqld.logで確認が取れます。
ログインできず、下記エラーが発生しました。
Job for mysqld.service failed because a fatal signal was delivered to the control process. See "systemctl status mysqld.service" and "journalctl -xe" for details.
ep 04 11:13:00 ip-何々.internal systemd[1]: mysqld.service failed.
Sep 04 11:13:00 ip-何々.us-east-2.compute.internal systemd[1]: mysqld.service holdoff time over, scheduling restart.
-- Subject: Unit mysqld.service has finished shutting down
-- Unit mysqld.service has finished shutting down.
-- Subject: Unit mysqld.service has begun start-up
-- Unit mysqld.service has begun starting up.
Sep 04 11:13:05 ip-何々.us-east-2.compute.internal kernel: [ 7528] 27 7528 271536 85325 1069056 0 0 mysqld
Sep 04 11:13:05 ip-何々.us-east-2.compute.internal kernel: oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/,task=mysqld,pid=7528,uid=27
Sep 04 11:13:05 ip-何々.us-east-2.compute.internal kernel: Out of memory: Killed process 7528 (mysqld) total-vm:1086144kB, anon-rss:341300kB, file-rss:0kB, shmem-rss:0kB, UID:27 pgtables:1044kB oom_score_adj:0
Sep 04 11:13:05 ip-何々.us-east-2.compute.internal systemd[1]: mysqld.service: main process exited, code=killed, status=9/KILL
-- Subject: Unit mysqld.service has failed
-- Unit mysqld.service has failed.
Sep 04 11:13:05 ip-何々.us-east-2.compute.internal systemd[1]: Unit mysqld.service entered failed state.
Sep 04 11:13:05 ip-何々.us-east-2.compute.internal systemd[1]: mysqld.service failed.
Sep 04 11:13:06 ip-何々.us-east-2.compute.internal systemd[1]: mysqld.service holdoff time over, scheduling restart.
-- Subject: Unit mysqld.service has finished shutting down
-- Unit mysqld.service has finished shutting down.
-- Subject: Unit mysqld.service has begun start-up
-- Unit mysqld.service has begun starting up.
Sep 04 11:13:05 ip-何々.us-east-2.compute.internal kernel: Out of memory: Killed process 7528 (mysqld) total-vm:1086144kB, anon-rss:341300kB, file-rss:0kB, shmem-rss:0kB, UID:27 pgtables:1044kB oom_score_adj:0
【out of memory kill process】OOM Killerさんに殺されたくない - Qiita
スワップ領域の作成で不足分を補います。
…次回はJDKのインストールから行います。
設定の見直しはこちらを参考にしたいと思います。
【2022年版】Amazon EC2 ベストプラクティス - Qiita
感想
CPUの性能はサーバーというのもありますが、いまいち、ピンと来ません。
また、Out Of memoryで具体的に消されてしまったプロセスについては、後日、詳細を調べたいと思います。
chess.comでパズルレートが前アカウントの2000に戻りました。
また、リーグがエリートに上がりました。
AtCoderでのコーディング力強化と基本情報技術者試験対策は順調です。
後者はいつでもできるので、デプロイを第一優先とします。
旧前田侯爵邸に行ってきました。
チューダー様式の素晴らしい内観と外観は、包み込むような壮大な空間で落ち着きました。また、暖房が地下から温風を送る構造であったり、地下とを結ぶエレベーターが存在しているようです。
昭和五年といいますと、1930年、私の母方の祖父が生まれる一年前か同じ歳です。
歴史を感じます。