【AWS】豆知識まとめてみた


目次

  1. データベースサーバーへのPing
  2. EC2シャットダウンの罠
  3. アカウント間のAMIの共有
  4. EC2のプロンプトをカスタマイズする

データベースサーバーへのPing

AWSでデーターベースサーバーを構築して、「疎通確認するぞ♪」とDBサーバーのホスト名を指定してPingコマンドを叩いたことはないでしょうか?

僕はAWS触りたての頃そうでした(その頃からインフラやり始めたので無知だった)。
セキュリティグループに誤りがあると思ったり、実は起動してないんじゃないかと疑ったりしてました。

なぜか?

こちらにあるように、AWSのAuroraを含むRDSでは、pingなどのICMPトラフィックは受け付けないとのこと。
つまりはPingが通りません。

じゃぁどうするか? 上記リンクに答えはありました。

telnet <RDS endpoint> <port number>
nc <RDS endpoint> <port number>

telnetもしくは、ncコマンドを利用しましょう。
個人的にはncコマンドがなんとなく好きです。

## 試しにDockerで立ち上げたローカルDBへ疎通確認
$ nc -z localhost 3306
Connection to localhost port 3306 [tcp/mysql] succeeded!
  • オプションについて
    • z : ポートスキャンオプション1

これで疎通に失敗した場合はセキュリティグループにより許可されてない可能性が高いです。
構築直後の疎通確認には良いと思います。

EC2シャットダウンの罠

利用していないEC2をシャットダウン。
いつかは使うかもしれないと停止したリソースを削除せずにそのまま放置している方いませんか?
シャットダウン中は料金かからないと思ってませんか?
そのEC2インスタンス、EBSがアタッチされてませんか?

実はEC2が停止中でもアタッチされたEBSは継続して料金が発生します。当たり前ですが。
少額とは言え勿体無いので、利用していないEC2インスタンス・関連するEBSha
削除しましょう!

スナップショットも同様に料金が発生するので、利用しない場合は削除しましょう。

アカウント間のAMIの共有

AのアカウントからBのアカウントへEC2をコピーして欲しいとの要望があり、こちらを参考に作業しました。

対象のEC2インスタンスをシャットダウンし、AMIの作成を開始した際に壁に当たりました。
10分で完了すると思っていた作成が1時間半経っても終わらないんですよね。

その日は放置して帰宅。次の日出社して確認すると作成済みになっており、トータルで3時間以上かかっていたようです。

原因としては、EC2のAMI自体はものの数分で完了していたようですが、EC2にアタッチされているEBSのスナップショット作成に時間を要しており、完了ステータスにならなかった模様。

EC2のプロンプトをカスタマイズする

EC2に限らずできますが、環境ごとに色分けしても良いかもしれませんね。

この部分

EC2インスタンスにSSHログインして.bash_profileに以下を追記。

.bash_profile
PS1="\[\e[36m\e[40m\][\u@開発サーバーhoge]\[\e[0m\]\\$ "
  • 解説。大きく3つにパーツ分割!
    • [\e[36m\e[40m]
      • 文字色をシアンで表示2
      • 背景色をブラックで表示
    • [\u@開発サーバー002]
      • [ : ただの「 [ 」を表示
      • \u : SSHログインしているユーザー名を表示
      • @開発サーバーhoge] : ただの文字列を表示
    • [\e[0m]\$
      • これ以降の文字をホワイトで表示

  1. REHL7系からポートスキャンオプション[z]は無くなったらしい。macでは一応使えてます。 

  2. カラーコードや記法はこちらを参考にすれば大丈夫だと思います。