はじめに
前回はAWSのアカウント作成まで進めました。
今回は、以下のURLから閲覧可能なチュートリアルである「Linux 仮想マシンを起動」について進めていこうと思います。
Lightsailとは
AWS公式サイト上には以下のように説明されています。
使いやすいクラウドプラットフォームLightsailは、アプリケーションやウェブサイトの構築に必要なすべてのものに加えて、コスト効率が良い月額プランを提供します。クラウドに慣れていないお客様でも、信頼しているAWSインフラストラクチャを使用してすぐにクラウドにアクセスしようとしている場合も、対応できます。
プラットフォームということは分かりましたが、詳細を知るには実際に使ってみるのが早そうです。
※Lightsailは基本有料のようですが、無料で1か月試すことができるようです。
インスタンスの作成
チュートリアルページでAWSアカウントにサインインすると、Lightsailホームページが表示されます。
「インスタンスイメージの選択」で「Linux/Unix」を、「設計図の選択」で「OSのみ」をクリックしたあとで「Amazon Linux 2」を選択します。
「インスタンスプラン」を選択します。「3.50 USD」のLightsailプランを1ヶ月無料で試すことができるようです。
Lightsailホームページの「インスタンス」タブが開き、作成したインスタンスが表示されます。
表示されているインスタンスの右上をクリックし「接続」を選択します。
ブラウザベースのターミナルウィンドウが表示され、ここにLinuxコマンドを入力することで、SSHクライアントを設定せずにインスタンスを管理できるようになります。
アプリケーションのインストール
nginxのインストール
以下のコマンドで、nginxをインストールします。
sudo amazon-linux-extras install nginx1
nginxの起動はservice
コマンドで行います。
sudo service nginx start
nginxのインストールと起動ができれば、Webサーバにアクセスできるようになります。ブラウザを開いて、該当インスタンスのEIP(例:http://xxx.xxx.xxx.xxx/)を入力して開いてみましょう。以下のようなページがブラウザで表示されれば、Webサーバのインストールは完了です。
MySQLのインストール
以下の記事を参考に、MySQLをインストール後、パスワードの変更を行います。
- AWS EC2 AmazonLinux2 MySQLをインストールする
- AWS EC2 AmazonLinux2 MySQL rootユーザの初期パスワードの確認方法
- AWS EC2 AmazonLinux2 MySQLを使えるようにする
変更後のパスワードでMySQLに接続します。
mysql -u root -p
その後、パスワードを求められるので入力すると、MySQLにアクセスできます。
次に、データベースの一覧を取得してみます。以下のコマンドを実行します。
show databases;
以下のように表示されればMySQLのインストールと起動は完了です。
Webアプリケーションの配置
最後にアプリケーションのインストールを行います。ここでは、Railsを使って、先ほど構築したMySQLと連携する簡単なCRUDアプリケーションを実行します。
Railsを使うにはビルドができる環境が必要なため、ビルドに使うパッケージをインストールします。
sudo yum -y groupinstall 'Development Tools'
RubyとMySQLのライブラリも必要になるため、インストールを実行します。
sudo yum -y install ruby-devel mysql-devel
RailsではJavaScriptランタイムとしてNode.jsが必要になります。
① コマンドラインで次のように入力して、ノードバージョンマネージャー(nvm)をインストールします。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
nvmではNode.jsの複数のバージョンをインストールすることができ、またそれらの切り替えもできるため、nvmを使用してNode.jsをインストールします。
② コマンドラインで次のように入力して、nvmを有効にします。
. ~/.nvm/nvm.sh
③ コマンドラインで次のように入力し、nvmを使用してNode.jsの最新バージョンをインストールします。
nvm install node
④ コマンドラインで次のように入力して、Node.jsが正しくインストールされ、実行されていることをテストします。
node -e "console.log('Running Node.js ' + process.version)"