EC2にてMySQLを使用する
はじめに
みなさん、こんにちは。
今回は、AWS(Amazon Web Services)の1つEC2について書いていきます。先ず、本題のES2とは何?というところからそのメリットを紹介していきます。その後に、ES2と切り離せないMySQLについても説明させて頂き、それらの設定方法まで紹介させて頂きます。最後までお付き合い頂けると幸いです。
■ EC2(Amazon Elastic Compute Cloud)とは
EC2とはAmazon Elastic Compute Cloudの略称で、AWSで利用できるシステムのひとつ、仮想サーバー構築サービスで、クラウド上に仮想環境を作ることが出来ます。EC2では仮想サーバーを、インスタンスという単位で扱います。インスタンスは複数作成し、必要に応じて複数インスタンスを立ち上げることが出来ます。仮想サーバーでは標準的なOSが利用可能で、Linux、WindowsといったOSの利用が出来ます。OSにつきましてはEC2上で選択することで、自動的にサーバーの構築、インストールが行われます。
EC2を利用するメリットについては以下になります。
①構築にかかる時間の短縮
物理サーバーを使う場合、数日のタイムラグが発生することもありますが、EC2で構築されるシステムは数分で立ち上げが完了します。
②柔軟なスペック変更
簡単なスペック変更が可能で、要求スペックに対して画面上の設定からハードディスクやメモリの増設が行えるます。物理サーバーで変更を行う場合、サーバー構築にかかる時間や増設するハードディスク、メモリにコストがかかことを考えるとEC2を使えば簡単に行えます。
③簡単な冗長化
冗長化も簡単に行うことが出来、仮想サーバーの複製やテンプレート化が容易なため、簡単かつ短時間での冗長化が実現できます。
④選択可能な料金体系
料金体系は3つあり利用者が選択できます。
・オンデマンドインスタンス
利用時間によって料金が発生する従量課金。
・リザーブドインスタンス
稼働時間を自洗に設定することでの料金の先払い。
・スポットインスタンス
AWS上で使われていないインスタンスを安い利用料で使う。
■ MySQLとは
MySQLとはOracle社が開発・提供をしているオープンソースのリレーショナルデータベース管理システム(RDBMS)です。このためリレーショナルデータベースの機能は全て備えています。リレーショナルデータベースとはデータを表形式で管理し、表と表の間を関連付けて関係モデルを使用したデータベースです。表の行をレコード、表の列をフィールド、表をテーブルとして構成されています。
1件のデータがレコードとなり、レコードはフィールドで構成されています。
(MySQL以外のリレーショナルデータベース管理システムとしては、Oracle社のOracleや、Microsoft社のSQL Server、OSSとして配布されているPostgreSQLなどがあります)
データベースの作成、編集、削除などを行うことができ、無償で利用することができます。
(個人利用、非商用利用の場合のみ、フリーですが商用利用ではライセンスの購入が必要となります。)
Web系のサイトのサーバーを構築する際の構成にLAMP(ランプ)があります。
LAMPとはLinux(OS)、Apache(Webサーバー)、MySQL(データベース)、PHP(あるいはperlやpythonなどのプログラム言語)の頭文字で、このうちのデータベースとなるMがMySQLになります。
■ EC2+MySQLを使用する場合のメリット
AWS(Amazon Web Services)でMySQLを使用する場合、EC2(Amazon Elastic Compute Cloud)インスタンスにMySQLのシステムそのものをインストールするか、RDS(Amazon RDS)を使用するという2つの方法があります。
今回は、EC2のインスタンスを作成し、MySQLをインストールする場合のメリットについて記述していきます。EC2の場合、RDSと比べてコストが低いため小規模なシステムにて使用する場合に向いています。またRDSではDBが持つ機能で使えないものがあるため、EC2はRDSに比べ、特殊な機能や高性能を実現するために必要な場合にも向いています。
以下に、EC2にMySQLをインストールし外部接続を行う方法の概要を記述しておきます。
■ EC2とMySQLの設定
①EC2の設定
・インスタンスを作成する
無償の場合期間限定となりますので、有料になる場合の使用料金は確認しておいた方がいいです。
・ELASTIC IPの設定を行う
ELASTIC IPの設定を行わない場合、インスタンスを再起動するごとにパブリックDNS、パブリックIPが変わってしまいますので設定を行った方がいいです。
・セキュリティグループの変更を行う
MySQLにTCP通信できるよう、ポートを開けます。
・ログイン(SSH)を行う
EC2サーバにSSHログインを行います。
②MySQLの設定
・インストールを行う
ファイアウォールの設定を行います。MySQLはデフォルトポートを使用するためそこを開けます。
・CONFIGファイルの設定を行う
bind-addressの設定を行います。bind-addressが記述されているファイルを開き、任意のアドレスに編集します。
・MySQLを起動する
MqSQLWorkbenchなどでログインが可能かを確認します。
■ 最後に
基本的にはRDS(Amazon RDS)を使用されることが多いですが、コスト面や機能面の理由がある場合には、EC2(Amazon Elastic Compute Cloud)の使用を検討することをお勧めします。