Amazon GameLiftの恐怖

Amazonからいかなるメールが突然来ました。

Greetings from Amazon Web Services,

This e-mail confirms that your latest billing statement, for the account ending in ****6128, is available on the AWS web site. Your account will be charged the following:

Total: $32.95

You can see a complete break down of all charges on the Billing & Cost Management page located here:

https://console.aws.amazon.com/billing/home#/bill?statementTimePeriod=1538352000

To protect your privacy, we can only communicate account information to the e-mail address on file for your account.

Thank you for using Amazon Web Services.

Sincerely,

Amazon Web Services

To learn more about managing your AWS costs with Cost Allocation and Tagging, visit http://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html

This message was produced and distributed by Amazon Web Services, Inc. and affiliates, 410 Terry Ave. North, Seattle, WA 98109-5210.

AWS will not be bound by, and specifically objects to, any term, condition or other provision which is different from or in addition to the provisions of the AWS Customer Agreement or AWS Enterprise Agreement between AWS and you (whether or not it would materially alter such AWS Customer Agreement or AWS Enterprise Agreement) and which is submitted in any order, receipt, acceptance, confirmation, correspondence or otherwise, unless AWS specifically agrees to such provision in a written instrument signed by AWS.

The AWS Customer Agreement was updated on May 14, 2018. You can see more information about these changes at https://aws.amazon.com/agreement/recent-changes/.

なに!32ドル92セント払え!何のこっちゃ!と思い、詳細を見てみると「GameLift」で32.92利用になっとる!ゲーム のサンプルで無料の筈が何故!

それの課金が!やられた!って感じでググってみたら案の定他のひとも悲惨な方がいらっしゃった。

チュートリアルを途中まで進めただけで数万円の支払が発生したAWS

 

あわてて僕もフリートを削除しました。

Amazon GameLift 入門 #5 フリートの削除

 

まあ、無料をうたうんだったらサンプルのダウンロードと通信も無料にしろよ!

高い勉強代になっちゃった!気をつけよう。

サポートに無料が課金されている旨を伝えたところ返金をする旨の連絡をいただきました。サンプルをビルドすると無料ではなく有料になる旨を記載すべきと進言しましたがどうなるかな?

少なくともサンプルをステップにしたがって進めると無料ではなくなるのでそれは明記すべきだと思います。

パッケージのアンインストール

インストールしたパッケージのアンインストールは簡単

パッケージのみアンインストール

apt-get remove パッケージ名

設定ファイルごとアンインストール

apt-get purge パッケージ名

AWSでWordPressのプラグインのインストール・アップデート

AWSで運用しているとWordPressのプラグインがインストール・アップデートできないって現象に見舞われるんですが、これはどうやら所有権の問題のようなのでその対処法を記載

まず、wp-config.phpに以下を追記。

define('FS_METHOD','direct');

これはFTPでエラーというのを防ぐためのもの。

続いてプラグインインストール・アップデート時のみwordpressディレクトリの所有権をrootに変更する。

chown -R root:root /home/wp

終わったら元に戻します。

chown -R user:user /home/wp

戻しておかないとWINSCPなどでアクセスできなくなっちゃいます。

超便利なWebminをAWSでも使う

まず、Webminをセットアップします。

で、デフォルトでは外部からアクセスできないので設定を変更します。rootでログインして、

vi /etc/webmin/miniserv.conf

を編集します。

最後の行の

allow=127.0.0.1

#allow=127.0.0.1

にして再起動

systemctl restart webmin

でアクセスできます。

アクセスしたら英語になってんので日本語にしましょ。

ここの設定をJapaneseに変えれば日本語になります。

AWSのUbuntuのSSL化

AWSのubuntuを無料のSSL化ました。

https://wspri.dip.jp

でアクセスできます。

Let’s EncryptのSSL証明書を使っています。

 

設定は簡単です。まず、rootでSSHにログインしてコンソールに

apt -y install certbot

と入力します。これでClientのcertbotがインストールされます。

次に証明書を発行しましょう。

certbot certonly --webroot -w /var/www/html -d wspri.dip.jp

で、DdocumentRootとアクセスしたいドメイン名を指定します。すると問い合わせ可能なメアドを聞いてきますので入力します。

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer None
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel):

で、あとは利用許諾をするかしないかを選択して終わりです。が、おまけに財団に協力するかとか聞いてきます。

-------------------------------------------------------------------------------
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel: A

-------------------------------------------------------------------------------
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about EFF and
our work to encrypt the web, protect its users and defend digital rights.
-------------------------------------------------------------------------------
(Y)es/(N)o: Y
An unexpected error occurred:
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Please see the logfiles in /var/log/letsencrypt for more details.

IMPORTANT NOTES:
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.

僕は一度失敗したのでもう一回やり直しました。

あとは/etc/letsencrypt/live/ドメイン/の中にcert.pem、chain.pem、fullchain.pem、privkey.pemがありますので通常の手順で設定してApache2の再起動で終わりです。

vi /etc/apache2/sites-available/default-ssl.conf

SSLCertificateFile      /etc/letsencrypt/live/wspri.dip.jp/cert.pem
SSLCertificateKeyFile   /etc/letsencrypt/live/wspri.dip.jp/privkey.pem

SSLCertificateChainFile /etc/letsencrypt/live/wspri.dip.jp/chain.pem

尚証明書の更新は

certbot renew

のようです。

AWSインスタンスをインターネットで公開する

ログインしてインスタンスを作るまでは簡単な筈ですね。
まあ、僕は使っているモバイルノートがubuntuなのでubuntuにしています。アマゾンLinuxはアバウトでいいんですがセキュリティがちょっと心配なのでubuntuにしているのも理由のひとつです。

インスタンスが稼動するとこんな感じで「インスタンスの状態」がRunninngになります。

ただ、これだけではAWSネットワーク内にインスタンスがあるだけでwwwに公開されていません。自宅サーバの公開手順ではルータの設定でportをwww上に公開したようにAWSもportを公開する必要があります。

左側メニューの一番上の「EC2ダッシュボード」をクリックするとこのようなページが表示されます。

で、ここでは「6個のセキュリティグループ」をクリックして解放するportを追加します。

WSPRIはメール(受信)、WEB(ssl)、SSHを開放しています。

開放するportは「セキュリティグループの作成」で作成します。

開放するプロコトルを選択して「セキュリティグループ名」を適当につけて「説明」を入れます。

で、作成すると左メニューの「インスタンス」の<アクション<ネットワーキング<セキュリティグループの変更<で開放するportが選択できます。

これでApache2なりNginxなりPopServerなり公開できます。

でも、SMTPなどメールの送信にはAWSは使わない方がいいかも?なぜならほとんどが迷惑メール扱いにされちゃいます。

WSPRIでは送信にはGmailを使ってます。

サンダーバードなどの場合はそのままではsmtp.gmail.comにログインできないのでGmail設定の以下を変更します。(Googleアカウントでログインした上で)

送受信のテストをしてみましょう。送受信できるはず。

ちなみにApache2の設定もpostfix+Devecotの設定も特殊な方法はしていません。

またWSPRIはIeserverのDDNSを利用してます。

IPの設定はCrontabで以下を設定しています。(30分おきにIPをIeserverに送信しています)

10,40 * * * * /usr/bin/wget -O - 'https://ieserver.net/cgi-bin/dip.cgi?username=wspri&domain=dip.jp&password=*****&updatehost=1' > /dev/null

AWSではrootの初期状態ではパスワードの設定がないため必要な場合は以下を参考に設定します。

AWSでのrootパスワードの設定

Apache2、php、Mysql、wordpressその他のインストールと設定は以下を参照します。

ServerWorld

WordPress

 

viエディタの使い方

↑Linuxだとよく使うエディタの使い方

Unixコマンド

↑Unixのコマンドもよく使うんだよね