AWSでEC2作成時にパブリックIPが付与されていないときの解決法

今後仕事でAWSを触ることになり、こちらの記事を参考にVPCの作成から順を追ってEC2インスタンスを作ってみることに。

qiita.com

VPCサブネットマスク、EC2と順を追って作成してみたが、立ち上げたインスタンスにパブリックIPが付与されていない。 あれえ。 どうやらローンチするときにパブリックIPを有効にするチェックを入れていなかったらしい。 再ローンチすれば割り当てられるみたいだ。

sheeplogh.hatenablog.com

下記のブログを参考にAMIを作ってみることにする。

https://blog.serverworks.co.jp/tech/2015/05/18/ami_gettodaze/

メニューからEC2のダッシュボードに遷移後、「インスタンス」を選択して作成したEC2にチェックを入れ、「アクション」→「イメージ」→「イメージの作成」を選択。

f:id:satomiO:20170509104113p:plain

モーダルが開くので、「イメージ名」「イメージの説明」にわかりやすい名前を入力。 そして「再起動しない」にチェックをいれる。 これで「作成」ボタンを押下するとAMIの作成が開始される。

ダッシュボードから「AMI」を選択して作成されたAMIを確認。 できてますね? 今度はこのAMIからEC2を再ローンチ。 対象のAMIを選択して「アクション」→「作成」をクリック。

f:id:satomiO:20170509104549p:plain

あとはEC2の作成の手順と同じ。 パブリックIPを有効にすることを忘れずに。

作成!

改めてEC2から作成されたインスタンスを確認してみると、パブリックDNSとパブリックIPが付与されていました。 よかったよかった。

このAMIは不要になったので削除しておく。 対象のAMIを選択して「アクション」→「登録解除」。

f:id:satomiO:20170509105039p:plain

また、不要になったスナップショットも廃棄。 ダッシュボードから「スナップショット」へ遷移。

f:id:satomiO:20170509105748p:plain

削除!!!!

引き続きAWSを触ってみる。

Port:80が使用されていてapacheを起動できない

apacheを起動しようとしたらほかのプロセスが80番ポートを使用しているらしく起動することができない。

netstat -ano で使用しているプロセスを確認。

f:id:satomiO:20170508150048p:plain

PID:4とはなんじゃらほい……

4とはWindowsのSystemで動いているものだそう。 ふむ、止められないか……?

lovee7.blog.fc2.com

こちらのブログを参考に解決をもくろむも、World Wide Webサービスにチェックがないのでここが原因ではないことが判明。

念のため、チェックが入っていた.NET FrameWorkのチェックを外して再起動してみるもやはり効果はなくポート80は生きたまま。 ほかのサービスか……

blog.naosan.jp

今度はこちらのブログを参考にしてみる。

コンパネの管理ツールからサービスをチェック。 SQL Server……これが自動になっているのが怪しい。 SQL Serverのプロパティを変更して手動起動に。 これだけでは解決できなかったので、かつ停止にしてみる。

netstat -ano !!!!!

ポート80が解放されたああああああああ 長い戦いだった……

外部キーの設定でError:1215

あるテーブルにカラムとそのカラムに対応する外部キー制約を追加することになった。

BEGIN;

ALTER TABLE テーブルA ADD id int(10) AFTER quantity; 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

github.com

 

 名前が似ているが……

どちらもパーティクルの形やマウスクリック時の動作、色など、サイト上で動かしてみたコードを自動的に吐き出してくれる。

導入は比較的容易そうなので、よりリッチなページにしたい場合に用いることができる。

UI参考ページまとめ(リンク集)

baigie.me

liginc.co.jp

ohako-inc.jp

www.hp-stylelink.com

http://uxblog.meycou.com/entry/2014/01/05/153419uxblog.meycou.com

NativeゲームとWebゲームでのUIデザインの違いと目指す価値「海賊コロンブスと消滅都市の比較」 | GREE Creators Blog

design.kayac.com

techstars.jp

biz.moneyforward.com

ゲームUIブログ | ゲームUI画像の収集と考察

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;

Smartyでfor文を書く

基本的にはforeachでなんとかなってしまうが、稀にfor文のようにループを行いたい場合がある。

phpとは違い、Smartyではsectionを使用。

{section name=i start=1 loop=13} {$example[i]} {/section}

startに初期値、loopにいくつまでループさせるのかを設定すれば、ループごとにi++をしてくれる。