2019年8月28日水曜日

ドメイン名からIPアドレスを調べる方法

ドメイン名からIPアドレスを調べるには、以下の2つ方法があります。

方法1、digコマンドを使います。 yahoo.co.jpのIPアドレスを調べることを例とします。
$ dig +short yahoo.co.jp
182.22.59.229
183.79.135.206
方法2、hostコマンドを使います。同じくyahoo.co.jpを例とします。
$ host yahoo.co.jp
yahoo.co.jp has address 183.79.135.206
yahoo.co.jp has address 182.22.59.229
yahoo.co.jp mail is handled by 10 mx2.mail.yahoo.co.jp.
yahoo.co.jp mail is handled by 10 mx5.mail.yahoo.co.jp.
yahoo.co.jp mail is handled by 10 mx3.mail.yahoo.co.jp.
yahoo.co.jp mail is handled by 10 mx1.mail.yahoo.co.jp.

2019年8月26日月曜日

aws オートスケーリング時に追加されたインスタンスに名前を自動設定

awsのオートスケール機能を使ってインスタンスが立ち上げられた時に、名前が設定されてないことに気づきました。どうずればオートスケーリングで追加されたインスタンスに自動的に名前をつけられるのかを調べてみました。

結論からいうと、Auto Scalingのタグ機能を使えばインスタンスが立ち上げられ時に自動的に名前を作られることができます。

やり方は以下の通りです。
・管理コンソールからEC2の管理画面を開きます。
・Auto Scalingグループから対象Auto Scalingグループを選択します。
・「タグ」タブをクリックし、以下のタグを追加します。
キー:Name、値:インスタンスのName

2019年8月22日木曜日

phpのexec関数でコマンド実行時に、エラーが発生した場合はエラーが表示されていません

phpのexec関数でawsのコマンドを実行したら、エラーが発生したが、何も表示されませんでした。


<?php

$ret = exec("aws s3 ls", $out, $status);
var_dump($ret);
var_dump($out);
var_dump($status);

$statusの値を確認したところ、0ではないことをわかりました。ただ、エラーも何も出力されてないので、どこか駄目なのかさっぱりです。

そんなとき、標準エラーも標準出力へ吐き出すように設定すれば解決できます。

標準エラー出力も標準出力へ吐き出すには2>&1を使います。
改修後、以下になります。


<?php

$ret = exec("aws s3 ls 2>&1", $out, $status);
var_dump($ret);
var_dump($out);
var_dump($status);
再度実行後、ようやくエラーが表示されるようになりました。


Unable to locate credentials. You can configure credentials by running "aws configure
httpdはapacheユーザーとして実行されていますが、apacheユーザーのaws設定がうまくできてないことがわかりました。