WEBREE | WEBを自由に、WEBで自由を。 https://webree.jp WEBを自由に、WEBで自由を。 Sun, 03 Mar 2024 08:38:46 +0000 ja hourly 1 https://wordpress.org/?v=6.2.4 https://webree.jp/wp-content/uploads/2020/01/favicon.png WEBREE | WEBを自由に、WEBで自由を。 https://webree.jp 32 32 AWSのリザーブドインスタンスを間違えて購入してしまい、EC2をt2.microからt3.microに変更した話 https://webree.jp/article/aws-ec2-instance-change/ Sun, 03 Mar 2024 08:31:30 +0000 https://webree.jp/?p=874 AWSで利用しているEC2インスタンスを「t2.micro」から「t3.micro」に変更したので、メモ書きとしての公開です。

リザーブドインスタンスを購入

私は開発用として「t2.micro」のEC2サーバーを利用しており、支払いについては1年単位で「リザーブドインスタンス」で購入して支払っていましたが、今月の請求内容がいつもと少し異なっていたことから「リザーブドインスタンス」の有効期限が切れていることに気づき、急いで新しく1年分の「リザーブドインスタンス」を購入をしました。

間違えたインスタンスタイプを購入

が、購入後に内容を改めてみていたら「リザーブドインスタンス」の「インスタンスタイプ」が利用しているものと異なっていることに気がついてしまいました。。。「リザーブドインスタンス」のデフォルトの選択が「t3.micro」だったようなのですが、利用していた「t2.micro」と似ていて費用も大差なかったので、利用しているものが自動で選ばれているんだろうと勝手に思い込み確認がきちんとできていませんでした。

EC2のインスタンスの変更を決意

間違えて購入してしまった「t3」のリザーブドインスタンスを「t2」に適用できないか調べてみましたが「適用できず」、購入したリザーブドインスタンスのインスタンスタイプを変更できるか調べましたが「サイズは変えられるけど種類は変えられず」で困りながらいろいろ調べていたところ「t2」から「t3」に変更したという記事を見かけて、いっそサーバーのインスタンスタイプを変えてしまおう!と思い方法を探しました。

t2.microとt3.microの違いについて

「t2」と「t3」の違いについて調べてみたところ気になる違いは以下でした。

良さそうなこと
・vCPUの数が1つ増える(vCPU 1 → 2)
・料金が低くなる(USD 0.0152 → 0.0136)

困りそうなこと
・拡張ネットワーキングの設定変更が必要(vif → ena)
・CPUのクレジットの扱いが変わる(無制限モードがある)

vCPUが増えるのに利用料金は低くなるという素敵な結果がわかったのですが、一方でCLIコマンドで設定変更が必要だったり、CPUがバーストした際に上限を突破できるモード(課金される)があるというのが懸念点として出てきました。が、良いこともあるのと、今のままだと購入したリザーブドインスタンスが無駄になってしまうので変更することにしました。

t2.microからt3.microに変更

先に結論から書いてしまうと「t2」から「t3」への移行はコンソール画面から「インスタンスの停止 > インスタンスの変更 > インスタンスの開始」の3ステップのみで対応することができました。

事前に調べて気になる内容としてあげていた「拡張ネットワーキング」の件も「CPUのクレジット」の件も、特に何もせず期待していた通りの形になっていました。

今回は自分の不注意で誤った「リザーブドインスタンス」を購入してしまい、結果として利用していたEC2のインスタンスサイズを変更するという作業が必要になってしまう形となりましたが、費用は「t2.micro」の時より低くできて変更作業の経験もできたので前向きに捉えて、今度も開発を進めようと思いました。

それではみなさん、自由なWEBライフをお過ごしください!

]]>
AWSのS3バケットを公開する https://webree.jp/article/aws-s3-public/ Sun, 20 Aug 2023 07:35:59 +0000 https://webree.jp/?p=852 ある程度の規模のサイトを作成していると、画像やcss、jsなどの静的なファイルをプログラムとは別の場所(S3)で管理・運営したいといったことがあると思います。

ここでは作成したS3バケットを公開する方法をご紹介しています。

公開したいバケットを選択

最初に、公開したいS3バケットを選択してください。

アクセス許可のタブを選択

以下の赤枠にあるタブ「アクセス許可」を選択して表示される「ブロックパブリックアクセス (パケット設定) 」の「編集」を選択してください。

権限の設定

パブリックアクセスのブロックをすべてオフに変更

「パブリックアクセスをすべてブロック」を「オフ」にして「変更の保存」をクリックします。この時点ではまだ公開されません。

バケットポリシーの入力

バケットポリシーに以下のコードを入力します。「Resource」の部分は自身のS3のバケット名を入力してください。入力をして「変更の保存」を設定すると外部からファイルへアクセスできるようになります。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::バケット名/*"
        }
    ]
}

今回は特に制限などは付与していませんが、バケットポリシーを変更することで特定のIPのみを許可するなどの制限をすることも可能です。

]]>
GitHubにSSH接続すると「WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!」が発生する場合の対応 https://webree.jp/article/github_known_hosts/ Mon, 17 Apr 2023 00:13:05 +0000 https://webree.jp/?p=844 GitHubにSSHで接続しようとすると、以下のエラーが表示されて接続できなくなっている場合があります。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
・・・・
Please make sure you have the correct access rights
and the repository exists.

こちらは、GitHubがRSA SSHキーを更新したことによる影響となります。上記のエラーを解消して再度接続できるようにするためには、以下のコマンドを実行してGitHubの古い情報を一度削除してあげる必要があります。 ※GitHubによる説明はこちらを参照

$ ssh-keygen -R github.com
# Host github.com found: line 4
/home/www/.ssh/known_hosts updated.
Original contents retained as /home/www/.ssh/known_hosts.old

実行したあとに再度GitHubへSSH接続を行うと、以下のようなメッセージが出てくるので「yes」と入力すれば接続することできます。

Are you sure you want to continue connecting (yes/no)?

それではみなさん、自由なWEBライフをお過ごしください!

]]>
WordPressの不要データを削除してDB容量を削減する https://webree.jp/article/wordpress-wp-optimize/ Thu, 23 Feb 2023 05:08:22 +0000 https://webree.jp/?p=826 WordPressはとても優秀&便利なCMSで、過去の履歴保持や記事の自動保存などをしてくれるのですが、長年利用しているとそれらのデータが増えていき、サーバーの容量を圧迫してしまう要因となりやすいです。

そういった場合はWordPressのプラグイン「WP-Optimize」を利用すると簡単に削除することができるので、DB容量が気になる人はぜひ使ってみてください。

WP-Optimizeのインストール

「WP-Optimize」のインストールは左メニューの「プラグイン > 新規追加」から行うことが出来ます。 プラグインを追加画面で「WP-Optimize」と検索して表示される「WP-Optimize – Cache, Clean, Compress.」をインストールして有効化してください。

WP-Optimizeの利用

インストールすると左メニューに「WP-Optimize」が追加されます。メニューを選択すると以下のような画面が表示されますので、整理したい項目の「最適化を実行」を選択してください。一括で実行したり、定期的に自動削除するように設定することも可能です。

WordPressの利用状況にもよりますが「データベーステーブルの最適化」を行うと大きく容量が削減できることが多いです。私の場合、実行前が「1.1G」だったのですが、実行後は「20M」程度にまで容量を減らすことが出来ました。

それではみなさん、自由なWEBライフをお過ごしください!

]]>
gitコマンドを実行したらxcrun: errorエラー https://webree.jp/article/git-xcrun-error/ Thu, 23 Feb 2023 02:30:08 +0000 https://webree.jp/?p=811 過去にmacでgitを利用していたのに、急に以下のようなエラーが表示されてgitコマンドが実行できなくなることがあります。

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

上記のエラーは、macOSのアップデートの後に発生する場合が多く、発生した場合はXcodeをインストールし直すことで解消できます。

xcode-select --install

それではみなさん、自由なWEBライフをお過ごしください!

]]>
MySQLのバイナリログの出力を停止する https://webree.jp/article/mysql-binarylog-stop/ Thu, 23 Feb 2023 02:13:33 +0000 https://webree.jp/?p=814 以前「MySQLのバイナリログを自動削除設定を使って削除する」の記事でバイナリログのローテーションする方法をご紹介しましたが、レプリケーションを使っていない場合などはバイナリログ自体を必要としないので、その場合は、バイナリログの出力自体を停止してしまうのも1つの方法です。

現在の設定と容量を確認する

まずは、現在のバイナリログの設定と使用容量を確認しましょう。現在の設定はMySQLにログインして「SHOW GLOBAL VARIABLES LIKE ‘log_bin’;」で表示することが出来ます。ValueがONになっていると有効ということになります。

mysql> SHOW GLOBAL VARIABLES LIKE 'log_bin';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| log_bin              | ON     |
+-------------------+-------+
1 row in set (0.34 sec)

上記で有効になっている場合は、バイナリログがどのくらい保存されているかも確認しておきましょう。こちらは「SHOW MASTER LOGS;」で表示することが出来ます。

mysql> SHOW MASTER LOGS;
+-------------------+---------------+-------------+
| Log_name         | File_size      | Encrypted |
+-------------------+---------------+-------------+
| binlog.000020 |  27656653 | No              |
+-------------------+---------------+-------------+
1 row in set (0.00 sec)

バイナリログの保存を停止する

停止はmy.cnfを編集することで対応できます。以下のようにコメントアウトされている箇所があるので最後の行の「disable_log_bin」の部分のコメントを削除しましょう。

# Remove the leading "# " to disable binary logging
# Binary logging captures changes between backups and is enabled by
# default. It's default setting is log_bin=binlog
# disable_log_bin

   ↓

# Remove the leading "# " to disable binary logging
# Binary logging captures changes between backups and is enabled by
# default. It's default setting is log_bin=binlog
disable_log_bin

「my.cnf」を編集したらMySQLを再起動してください。

$ systemctl restart mysqld

再起動が完了したら再度「SHOW GLOBAL VARIABLES LIKE ‘log_bin’;」で確認してみましょう。Valueが「OFF」になっていればバイナリログの保存が停止されていることになります。

mysql> SHOW GLOBAL VARIABLES LIKE 'log_bin';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| log_bin              | OFF    |
+-------------------+-------+
1 row in set (0.02 sec)

サーバーの容量は限られていますので、不要なログなどは抑制・削除して低コストでサーバー運用していきましょう!

それではみなさん、自由なWEBライフをお過ごしください!

]]>
MySQLのバイナリログの上限サイズを変更する https://webree.jp/article/mysql-max-binlog-size/ Sat, 19 Nov 2022 02:25:57 +0000 https://webree.jp/?p=806 MySQLでにはデータの変更などがあった際にバイナリログというログに記録をしているのですが、デフォルトでは1ファイル1GBとなっているため「MySQLのバイナリログを自動削除設定を使って削除する」で自動削除を有効にしてもログが1GB未満の場合はファイルがローテーションされずログが削除されません。

今回はログファイルの上限を変更することで1GB未満でもローテションされるように上限サイズの変更を行います。

現在の上限サイズを確認

まずは、現在の上限サイズの設定がいくつになっているかを確認しましょう。確認はMySQLにログインしてSHOWコマンドを利用して確認することができます。以下では1GB(1073741824)であることが確認できます。

$ mysql -u root -p
Enter password:

mysql> SHOW VARIABLES like 'max_binlog_size';
+-----------------+------------+
| Variable_name   | Value      |
+-----------------+------------+
| max_binlog_size | 1073741824 |
+-----------------+------------+
1 row in set (0.06 sec)

設定を変更する

それでは、現在の値を確認できたので設定を変更しましょう。設定は「my.cnf」ファイルを編集するか、SET文で行うことができます。今回は再起動が不要なSET文で1GBから200MBに変更します。

// 200MBに変更
mysql> SET GLOBAL max_binlog_size=209715200;
Query OK, 0 rows affected (0.00 sec)

// 反映確認
mysql> SHOW VARIABLES like 'max_binlog_size';
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| max_binlog_size | 209715200 |
+-----------------+-----------+
1 row in set (0.00 sec)

なお、上限サイズの変更をしても自動削除を有効にしないとログは溜まってしまうので「MySQLのバイナリログを自動削除設定を使って削除する」が未設定の人はこちらも参考にして自動削除を有効にしてみてください。

それではみなさん、自由なWEBライフをお過ごしください!

]]>
AmazonLinux2サーバーの容量を確保する(不要データを削除) https://webree.jp/article/securing-resources/ Thu, 11 Aug 2022 06:33:30 +0000 https://webree.jp/?p=802 AmazonLinux2サーバーを運用していると日々のログなどが溜まっていき、気づいたらディスク容量が100%になって動作しなくなっていた、、、といったことが起きたりします(私も何度か・・・)

ディスク容量が増えてきたら以下の作業をすることで容量を減らすことができます。

MySQLのバイナリログを削除する

デフォルトでは自動削除の設定がないためログが溜まり続けます。過去一度もログを削除していない場合は削除することで容量が確保が期待できます。また、バイナリログの保存を停止することも出来ます。

ジャーナルログを削除する

こちらもデフォルトでは自動削除の設定がなくログが溜まり続けるため、削除することで容量が確保が期待できます。

]]>
MySQLのバイナリログを自動削除設定を使って削除する https://webree.jp/article/mysql-binarylog-delete/ Thu, 11 Aug 2022 05:38:54 +0000 https://webree.jp/?p=792 MySQLでにはデータの変更などがあった際にバイナリログというログに記録をしているのですが、デフォルトでは自動削除機能がオフとなっているため、長い間MySQLを運用しているとログが肥大化しディス容量を圧迫されていきます。

バイナリログの削除方法はいくつかあるのですが、ここでは自動削除を設定することでバイナリログの削除を行います。

バイナリログの自動削除設定

バイナリログの自動削除は「my.cnf」に「expire_logs_days=◯」と追記することで設定することができます。以下は7日過ぎたら自動削除する設定になります。

$ vi /etc/my.cnf
# default-authentication-plugin=mysql_native_password
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

                                            ↓

# default-authentication-plugin=mysql_native_password
expire_logs_days=7

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

MySQLを再起動する

「my.cnf」を編集したらMySQLを再起動してください。

$ systemctl restart mysqld

私の場合は以下のように約1G程度の容量確保をすることができました。

# du /var/lib --max-depth=1 -h | grep mysql
1.8G        ./mysql

                                ↓

# du /var/lib --max-depth=1 -h | grep mysql
803M	/var/lib/mysql

それではみなさん、自由なWEBライフをお過ごしください!

]]>
MySQLの初期パスワードがわからない https://webree.jp/article/mysql-initial-password/ Sat, 23 Jul 2022 03:56:09 +0000 https://webree.jp/?p=785 MySQLはバージョン5.7から初期パスワードが自動で生成される仕様になりました。初期パスワードについてはMySQLを起動するとログに出力されるので、以下のコマンドで確認しましょう。

$ grep password /var/log/mysqld.log
2022-01-01T00:00:00.270120Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 初期パスワード

無事ログインできたら、パスワードも変更しておきましょう。

ALTER USER 'root'@'localhost' IDENTIFIED BY '新しいパスワード';

それではみなさん、自由なWEBライフをお過ごしください!

]]>