AWSでEC2作成時にパブリックIPが付与されていないときの解決法
今後仕事でAWSを触ることになり、こちらの記事を参考にVPCの作成から順を追ってEC2インスタンスを作ってみることに。
VPC、サブネットマスク、EC2と順を追って作成してみたが、立ち上げたインスタンスにパブリックIPが付与されていない。 あれえ。 どうやらローンチするときにパブリックIPを有効にするチェックを入れていなかったらしい。 再ローンチすれば割り当てられるみたいだ。
下記のブログを参考にAMIを作ってみることにする。
https://blog.serverworks.co.jp/tech/2015/05/18/ami_gettodaze/
メニューからEC2のダッシュボードに遷移後、「インスタンス」を選択して作成したEC2にチェックを入れ、「アクション」→「イメージ」→「イメージの作成」を選択。
モーダルが開くので、「イメージ名」「イメージの説明」にわかりやすい名前を入力。 そして「再起動しない」にチェックをいれる。 これで「作成」ボタンを押下するとAMIの作成が開始される。
ダッシュボードから「AMI」を選択して作成されたAMIを確認。 できてますね? 今度はこのAMIからEC2を再ローンチ。 対象のAMIを選択して「アクション」→「作成」をクリック。
あとはEC2の作成の手順と同じ。 パブリックIPを有効にすることを忘れずに。
作成!
改めてEC2から作成されたインスタンスを確認してみると、パブリックDNSとパブリックIPが付与されていました。 よかったよかった。
このAMIは不要になったので削除しておく。 対象のAMIを選択して「アクション」→「登録解除」。
また、不要になったスナップショットも廃棄。 ダッシュボードから「スナップショット」へ遷移。
削除!!!!
引き続きAWSを触ってみる。
Port:80が使用されていてapacheを起動できない
apacheを起動しようとしたらほかのプロセスが80番ポートを使用しているらしく起動することができない。
netstat -ano で使用しているプロセスを確認。
PID:4とはなんじゃらほい……
4とはWindowsのSystemで動いているものだそう。 ふむ、止められないか……?
こちらのブログを参考に解決をもくろむも、World Wide Webサービスにチェックがないのでここが原因ではないことが判明。
念のため、チェックが入っていた.NET FrameWorkのチェックを外して再起動してみるもやはり効果はなくポート80は生きたまま。 ほかのサービスか……
今度はこちらのブログを参考にしてみる。
コンパネの管理ツールからサービスをチェック。 SQL Server……これが自動になっているのが怪しい。 SQL Serverのプロパティを変更して手動起動に。 これだけでは解決できなかったので、かつ停止にしてみる。
netstat -ano !!!!!
ポート80が解放されたああああああああ 長い戦いだった……
外部キーの設定でError:1215
あるテーブルにカラムとそのカラムに対応する外部キー制約を追加することになった。
BEGIN;
ALTER TABLE テーブルA ADD
id
int(10) AFTERquantity
; ALTER TABLE テーブルA ADD CONSTRAINTテーブルA_ibfk_1
FOREIGN KEY (id
) REFERENCES テーブルB (id
) ON DELETE CASCADE ON UPDATE CASCADE;COMMIT;
よく見る形だと思うが、これでエラーが吐き出されてしまった。
Error Code: 1215. Cannot add foreign key constraint
どうやらINDEXも張らないと外部キーが設定できないらしい……(使用しているのはMySQL5.6(InnoDB))
INDEXを張ることで外部キーが設定できるようになった。
JSライブラリを用いてパーティクルを飛ばす
web背景にパーティクルを飛ばすJSライブラリ
・particles.js
particles.js - A lightweight JavaScript library for creating particles
・particlejs
名前が似ているが……
どちらもパーティクルの形やマウスクリック時の動作、色など、サイト上で動かしてみたコードを自動的に吐き出してくれる。
導入は比較的容易そうなので、よりリッチなページにしたい場合に用いることができる。
MySQLでupdate文を実行するとError:1175
MySQLでUPDATE文を実行すると、以下のエラーが発生した。 (Workbench使用のときに限る)
Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences
実行したSQLはこちら。
ex.
UPDATE table SET count_max = floor(count/100) WHERE floor(count/100) < count_max; なお、countもcount_maxもPKではない。
このエラーが起きる原因は、大量の(主キー以外の)update/deleteをワークベンチから行えない制約になっているから。 一時的にこの制約を外してあげると実行可能。
SET SQL_SAFE_UPDATES = 0;
なお、元に戻してあげるには、このフラグを1にする。
SET SQL_SAFE_UPDATES = 1;