今までレンタルサーバーでホームページを運用してきた方が、これからAWSを利用しようとした場合、運用面でどのような違いがあるでしょうか。おそらく、レンタルサーバーでは運用に相当するものはWordPressのアップデート程度、という方が大半ではないでしょうか。
仮想サーバーやクラウドを利用する場合は、今までレンサバ事業者が行ってくれていたことをユーザー側で行う必要があります。社内にインフラエンジニアの方がいれば問題ないのですが、おられない企業も多数あると思います。
そこで、今回は運用に注目して、AWSで運用する際に意識して行わなければいけないことをまとめてみました。
最低限、以下の3点は抑えておきましょう。
- バックアップ
- 監視
- セキュリティ対策
1. バックアップ
何はともあれバックアップ。
とはいえ、AWSでは自動的にバックアップは作成されません。ユーザーが自分でバックアップの設定を行う必要があります。
レンタルサーバーでは1日1回はバックアップが取られています。用途はサーバー事業者が、サーバーの障害が発生した際に復旧するためのバックアップです。ユーザーの誤操作でデータを削除してしまった場合は対応ができないので、必ずユーザー自身でもバックアップを取る必要はあります。
AWSでのバックアップはサーバー構成により方法が異なります。今回はシンプルにWebサーバーのバックアップを例に説明します。
AWSでWebサーバーを構築する一般的な方法は、EC2(Amazon Elastic Compute Cloud)にEBS(Amazon Elastic Block Store)というストレージの組み合わせです。このバックアップを取得するには、AMI(Amazon マシンイメージ)のバックアップを取れば完了です。
AMIバックアップの取得はAWSの管理画面から行えます。詳細な手順はたくさん記事がありますので割愛しますね。
2. 監視
AWSでは自動的に死活監視はしてくれません。サーバーが停止していても気付きませんので、ユーザーが自分で必要な監視設定を行う必要があります。
レンタルサーバーでは、監視サービスは多くの場合付いています。監視内容は各社違いがありますが、サーバーへの疎通ができない障害などであればサーバー事業者が復旧措置を行い障害連絡をしてくれますよね。
AWSで監視を行う一般的な方法は、Amazon CloudWatchを利用する方法です。最低限、サーバーへ疎通ができているのかを確認することを考えると、「StatusCheckFailed」という監視項目を追加して、通知設定をしておきましょう。
「StatusCheckFailed」の監視項目では以下のような障害が検知できます。
- ネットワーク接続が不可
- 電源断
- 物理サーバー上のソフトウェアの問題
- ネットワークに関するハードウェアレベルの接続障害
- ネットワーク設定の不備による接続障害
- メモリの枯渇
- ファイルシステムの破損
3.セキュリティ対策
AWSではOSやミドルウェアの脆弱性に対するセキュリティパッチの適用は行ってくれません。AWSのインフラとして必要なアップデートは稀にアナウンスされ、実施される程度です。
レンタルサーバーでは、重大な脆弱性が発見された際はメンテナンスの時間が通知され、セキュリティパッチの適用がなされることが多いです。何も考えなくてもある程度のセキュリティが担保される理由はここにあります。一方で、自分たちのシステムに合わせたメンテナンス時間が決定できない、事前に検証ができずシステムが可動しなくなる可能性がある、などのデメリットもあります。
AWSではどのようにセキュリティパッチの運用を行えば良いのでしょうか?既に察しておられるかもしれませんが、AWSだからどうすれば良い、というものではありません。世の中のセキュリティ情報にアンテナを張っておき、重大な脆弱性が公表されたらユーザー自身でセキュリティパッチを適用します。
この際に、かんたんにサーバーの複製を作成し、検証を行えることが最大のメリットです。メンテナンスの時間もユーザーの予定に合わせて随時実行できます。
最後に
運用はあれもこれもやっておいた方が良いのでは・・・となりがちで、AWSでは自動化できることがたくさんあるので悩んでしまいますよね。ただ、運用項目を増やしすぎて本来のWebサイト自体の制作や改善が遅くなってしまっては元も子もありません。
まずは、何かあっても最悪は復元できるように「バックアップ」を確実に取得すること。
これだけは自動化して確実に行いましょう。できれば、バックアップからの復元ができることまでは確認をしておくことが大切です。
続いて、信頼を失わないように「監視」と「セキュリティ対策」を行ってみてはどうでしょうか。