元オンプレエンジニアがAWSを使ってみた(EC2編)

こんにちは、大柳です。
1月にナレッジコミュニケーションに入社しました。

これまではLinux、Oracleなどを使ったオンプレの基幹系システムを構築してきましたが、AWS含めてクラウドは未経験です。AWSを実際に触りながら勉強中ではありますが、元オンプレエンジニア視点でAWSを使った感想、オンプレとの違いについて紹介していきたいと思います。

第1回目はAmazon EC2(Amazon Elastic Compute Cloud)を使ってみた感想を紹介します。

AWSサービスの選択

マネジメントコンソールにログインするとAWSで利用できるサービス一覧が表示されます。
EC2はコンピューティングのカテゴリにありますので今回はこれを選択します。
他にも、ストレージ、データベース、ネットワーキングなどのサービスがあり、
提供されているサービスを組み合わせることで、オンプレ同等にシステム構築ができそうです。

EC2 ダッシュボード

ダッシュボード画面が表示されるので、「インスタンスの作成」をクリックします。

ステップ 1: Amazon マシンイメージ(AMI)

AWSではOSなどの構築済テンプレートがAmazon マシンイメージ(AMI)として提供されているので、利用したいものを選択します。
オンプレのようにOSのインストールディスクやイメージファイルをダウンロードしたり、焼いたりして自分で用意する必要はありません!
LinuxからWindowsまで様々なタイプのものが提供されており、以下のようなものがラインアップにあります。

・Amazon Linux AMI 2016.09.1 (HVM)
・Red Hat Enterprise Linux version 7.3 (HVM)
・SUSE Linux Enterprise Server 12 SP2 (HVM)
・Ubuntu Server 16.04 LTS (HVM)
・Microsoft Windows Server 2016 Base

なお、上にあげたAMIはAWSクラウド無料利用枠(https://aws.amazon.com/jp/free/)として提供されるもので、アカウント作成から12ヶ月間は一定範囲内に限り無償で利用できるので、コストをかけずにまず触ってみることもできます。
Windows Serverも無料利用枠で使えますので、クラウド上にWindowsのリモートデスクトップ環境を構築することなんかも手軽にできます。

また、AWS提供のものだけでなく、AWS Marketplaceには外部ベンダが提供するAMIもあります。

例えばWordPress powered by Bitnamiは、WordPress、Apache、MySQL、PHPなどWordPress環境構築に必要なソフトウェアがイメージ化されており、AMIを選択して、EC2インスタンスを起動させるだけで、WordPress環境を手に入れることができます。

今回は、Amazon Linux AMIを選択します。Amazon Linux AMIはAWSが提供するEC2向けLinuxイメージです。

ステップ 2: インスタンスタイプの選択

インスタンスは汎用インスタンスに加えてCPU、メモリ、ストレージの各々の性能を重視したインスタンス(コンピューティングの最適化、ストレージの最適化、メモリ最適化)が提供されます。

またGPUが利用可能なインスタンスも提供されており、これまでの基幹系システム構築ではなかった選択肢です。

インスタンスごとにCPUとメモリの組み合わせは固定されており、利用者で変えることはできません。

汎用インスタンスの場合は下図のような組み合わせになります。

また、オンプレの場合は最大リソースを見積もった上で、必要CPUコア数とメモリサイズを決定しますが、クラウドの場合は後からコア数、メモリサイズを増やすスケールアップも可能です。
クラウドではリソース見積もり、決定のアプローチを変える必要がありそうです。

今回は、汎用のt2.microを選択して、「次の手順:インスタンスの詳細設定」をクリックします。

ステップ 3: インスタンスの詳細の設定

インスタンスの詳細設定は標準設定のままとし、「次の手順:ストレージの追加」をクリックします。
IAMロールでは権限の設定、モニタリングでは監視設定をすることができ、インスタンス作成の段階で運用関連設定を行うこともできます。

ステップ 4: ストレージの追加

次の画面では、ボリュームタイプ、サイズを選択できます。今回は標準設定のままとし、「次の手順:Add Tags」をクリックします。
ボリュームタイプは標準の汎用SSD、高IOPSを実現できるプロビジョンド IOPS (SSD)、HDDのマグネティックボリュームが選べます。
標準でSSDを利用可能なところが、オンプレより進んでいます。

ステップ 5: Add Tags

タグは設定せず、「確認と作成」をクリックします。

ステップ 6: セキュリティグループの設定

この画面では、インスタンス作成時に、プロトコル、ポート、IPアドレスを条件としたセキュリティ設定が可能です。
今回は、構築後にSSH接続の確認を行いたいので、SSH(TCP、22番ポート)について送信元をマイIPのみ許容する設定として、「確認と作成」をクリックします。

ステップ 7: インスタンス作成の確認

ここまでの設定内容をチェックしたら、「作成」をクリックします。

キーペアの作成

最後にキーペア作成の確認があります。
デフォルトの認証は秘密鍵方式のため、キーペアを作成する必要があります。
キーペア名を入力して、「キーペアのダウンロード」をクリックして、キーペアを保存しておきます。
このキーペアをターミナルからの接続時に指定することで、インスタンスにログインできます。
パスワード認証への変更もできますが、セキュリティ上推奨されません。
「インスタンスの作成」をクリックすると、インスタンスの構築が開始されます。

インスタンスの起動確認

EC2ダッシュボードに戻り、左のメニューから「インスタンス」をクリックすると、インスタンスの状況が確認できます。
インスタンスの状態がrunning、ステータスチェックが「2/2 のチェックに合格しました」になれば、起動完了です。
インスタンスへのログインは、先ほどダウンロードしたキーペアを使用して行います。

手順はこちらをご覧ください。

ここまでインスタンス設定が5分、インスタンス起動が5分と、合わせてなんと10分でサーバを構築することができました!

まとめ

Webブラウザ上でほぼクリックだけで、短時間でサーバを構築することができ、これまでオンプレをやってきた身としては、手軽に出来すぎて驚いた、というのが感想です。
オンプレ構築のようなデータセンターへの設置調整、搬入、据え付け、動作確認といったモノの確認は全く不要、OS、ミドルウェアの導入もAWSのテンプレートに最低限の設定を行うだけでした。
このように、手軽に短時間でサーバが構築できる一方、CPU、メモリの組み合わせなど、クラウドには制約もあります。

クラウドの利用においては、クラウドのメリットと制約を考慮しながら、これまでのオンプレの経験に固執せず、新しい視点で開発することが大切そうです。

次回はAWSのデータベースサービスであるAmazon RDS(Amazon Relational Database Service)を使ってみた感想を報告します。

お楽しみに!