Archive for the ‘Amazon Web Service’ Category

PHP 5.6のセキュリティーサポートは2018年末まで延長されたこともありますが、PHP 7系の案件も、ここ最近ではボチボチ見られるようにもなってきました。

かなり前にセットアップしたまま放置していたAWSのAmazon Machine Imagesで、PHPのバージョンの古いものがありましたので7.1にアップデートしたいと思います。

まず、インストール済みのPHPを削除したいと思いますので、PHP関連のものでインストールされているものを削除しておきます。

続きを読む »

WordPressのxmlrpc.phpに対する攻撃って結構頻繁にあるものなんですね。インターネットで検索すると色々対策されている記事を見かけますが、実際に自分のサイトが攻撃の対象になるとは思っていませんでした。

.htaccessやxmlrpc.phpのパーミッションで対応する方法などいくつかあるようですが、sshなどでサーバーに接続ができない環境にある時などはすぐに対応するのはなかなか難しいです。そこで今回はAmazon Web Services VPCのセキュリティ、Network ACLsのファイアウォール機能を使って、ブラウザからAWS Management ConsoleにアクセスさえできればIP制限できる方法で対策してみたいと思います。

Network ACLsについてはこちらを参考にしてください。
ネットワーク ACL – Amazon Virtual Private Cloud

ある時、アクセス数が増加してサーバーへの負荷が急にかかり始めました。Scalingしてもある程度時間が経つと同じ状況になってしまいます。アクセスログを確認してみたところ

2017-02-27T23:00:33.822147Z example.com 51.00.00.00:54628 172.00.00.00:80 0.000029 0.236676 0.000022 200 200 250 370 “POST http://54.00.00.00:80/xmlrpc.php HTTP/1.0″ “Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)” – -

のアクセスログが多発していることがわかりました。
続きを読む »

小規模なWebサイトをAWSで運営しています。突発的なアクセスに備えてインスタンスを増減できるようElastic Load Balancer(Classic Load Balancer)を利用しauto scalingするようしており、稼働中インスタンスのAMIバックアップをLambdaファンクションで夜間にとるようにしています。

今回は、このバックアップしたAMIでAuto Scaling設定を更新するLambdaファンクションを作ってみたいと思います。

こちら記事を参考にさせていただきました。
suz-lab – blog: “Auto Scaling”で利用するAMIをアップデートしてみる

Auto Scalingの設定を更新するコマンドは主にこちらの2つ。

●起動設定(Launch Configuration)を新規作成するコマンド

[root@ip-172-30-0-167 ~]# as-create-launch-config –image-id –group –instance-type < インスタンスタイプ> –region < リージョン>
OK-Created launch config

●Auto Scalingグループを更新するコマンド

[root@ip-172-30-0-167 ~]# as-update-auto-scaling-group –launch-configuration –region < リージョン>
OK-Updated AutoScalingGroup

です。
続きを読む »

Amazon Web Serviceの提供するバージョン管理システム、CodeCommitをgitのクライアントツールSourceTreeで使ってみたいと思います。

CodeCommitをコマンドラインで使う方法はこちらに記載しています。

Developer’s blog | AWSのソース管理サービスCodeCommitを使ってみる

こちらの記事を参考にさせていただきました。

AWS CodeCommit with SourceTree – geekprotem projects

ローカルリポジトリが作成済みの状態で、SourceTreeを開きます。
続きを読む »

今回は、Amazon Web ServiceのEC2インスタンスでvsftpdをインストールしてFTPサーバーをたてたいと思います。

早速ですが、yumでvsftpdをインストールします。

[root@ip-172-30-0-43 ec2-user]# yum install vsftpd
読み込んだプラグイン:priorities, update-motd, upgrade-helper
依存性の解決をしています
–> トランザクションの確認を実行しています。
—> パッケージ vsftpd.x86_64 0:2.2.2-13.13.amzn1 を インストール
–> 依存性解決を終了しました。

依存性を解決しました

========================================================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
========================================================================================================================
インストール中:
vsftpd x86_64 2.2.2-13.13.amzn1 amzn-main 161 k

トランザクションの要約
========================================================================================================================
インストール 1 パッケージ

総ダウンロード容量: 161 k
インストール容量: 320 k
Is this ok [y/d/N]: y
Downloading packages:
vsftpd-2.2.2-13.13.amzn1.x86_64.rpm | 161 kB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : vsftpd-2.2.2-13.13.amzn1.x86_64 1/1
検証中 : vsftpd-2.2.2-13.13.amzn1.x86_64 1/1

インストール:
vsftpd.x86_64 0:2.2.2-13.13.amzn1

続きを読む »

ある時から急に、t2.microインスタンスで稼働しているWordPressのサイトが「データベース接続確率エラー」で1週間に一度くらいの頻度で落ちるようになってしまいました。
いろいろ調査してみると、どうやらMySQLが落ちてしまっていることがわかりました。

こちらがその時のログです。

151010 03:21:04 mysqld_safe Number of processes running now: 0
151010 03:21:04 mysqld_safe mysqld restarted
151010 3:21:04 [Note] /usr/libexec/mysql55/mysqld (mysqld 5.5.45) starting as process 4511 …
151010 3:21:04 [Note] Plugin ‘FEDERATED’ is disabled.
151010 3:21:04 InnoDB: The InnoDB memory heap is disabled
151010 3:21:04 InnoDB: Mutexes and rw_locks use GCC atomic builtins
151010 3:21:04 InnoDB: Compressed tables use zlib 1.2.8
151010 3:21:04 InnoDB: Using Linux native AIO
151010 3:21:04 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
151010 3:21:04 InnoDB: Completed initialization of buffer pool
151010 3:21:04 InnoDB: Fatal error: cannot allocate memory for the buffer pool
151010 3:21:04 [ERROR] Plugin ‘InnoDB’ init function returned error.
151010 3:21:04 [ERROR] Plugin ‘InnoDB’ registration as a STORAGE ENGINE failed.
151010 3:21:04 [ERROR] Unknown/unsupported storage engine: InnoDBB
151010 3:21:04 [ERROR] Aborting
151010 3:21:04 [Note] /usr/libexec/mysql55/mysqld: Shutdown complete
151010 03:21:04 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

注目すべきは
続きを読む »

迷惑メールのメッセージ

システムから送信されたメールがGmailの迷惑メールに振り分けられてしまうことたまにありますよね?

WordPressにコメントがあるとメール通知があるように設定していましたが、ある時、そのメールがGmailで迷惑メールに振り分けられていることに気づきました。

この事象が発生した環境は以下の通り。
●サーバー
・Amazon EC2
・Nginx
・WordPress(PHP)
・MySQL
●クライアント(メール)
・Gmail
・Google Chrome

送られたはずのコメント通知のメールがなかなかこないな〜
と思い、Gmailを開いて迷惑メールを見てみると、、、なんと!その通知メールがはいっておりました。
メールには以下のようなメッセージが。
続きを読む »

ずっとprivateなgitリポジトリが欲しかったんです。
GitHubはprivateなリポジトリを使おうと思うと有料で、リポジトリの数が多くなればなるほど月額費用があがっていってしまうんですよね。
自前でたてるのもねぇ〜

そんな時、

Amazon Web Services ブログ: 【AWS発表】AWS CodeCommitが利用可能に

ということを知りました。

利用料金は1アカウントあたり1$/月で、10GBのストレージと2,000回のGitリクエスト(pushやpullといったリポジトリのオブジェクト転送)が毎月の利用枠となっています。

これはありがたい!ということで早速使ってみたいと思います。

使い始める前に、いくつかツールのインストールと設定が必要になりましたので、いつものように手順をまとめておきたいと思います。
続きを読む »

前回に引き続き、SSL関連のエントリです。

AWSのCDNサービスCloudFront、ご利用されている方も多いかと思いますが、CloudFrontにも独自SSLをアップロードして、コンテンツを暗号化することが可能です。

例えば、当サイトのようにWordPressのメディアのアップロード先をS3にして、CloudFrontを利用している場合など、本体(WordPress)の方をSSLで暗号化するのとあわせてCloudFront側の暗号化しないと、ブラウザに表示した際にMixed Contents(SSL暗号化されているコンテンツとされていないコンテンツが混在する状態)となってしまい、ブラウザに正しく表示されないことがあります。

そうなっては困るので、本エントリでは、CloudFrontにSSLをアップロードする方法をまとめておきたいと思います。
続きを読む »

ちょっと前にやったことを思い出しながら文章をまとめていたら時間がかかってしまい、いつのまにかAWS Management Consoleが日本語化されておりました…d
本文中の画面キャプチャは英語表記になっているので、お手数ですが適宜読みかえていただければと思います。

ずいぶん前のことになりますが、Nginxで稼働中のインスタンスを配下に持つElastic Load Balancers(ELB)にSSLを設定する機会があったので、備忘録もかねて手順を簡単にまとめたいと思います。

大まかな手順は以下のようになります。

  1. 秘密鍵を作成する
  2. 作成した秘密鍵からパスフレーズを抜く
  3. CSRを作成する
  4. SSL証明書の申請・取得
  5. ELBにSSLアップロードする

この手順に従って作業を進めますが、SSL証明書の申請方法や、認証局については細かくは触れていません。あらかじめご了承ください。
続きを読む »