AWS EC2でCommon Lisp
関西もくもく.lispにて。
この記事では、AWS EC2インスタンスでCommon Lisp製アプリを動かす環境構築をまとめます。
AWSのアカウント作成
まず、AWSのアカウントを作成してください。
EC2インスタンスの作成
アカウントの作成後、サービスからEC2を選択肢して、Ubuntu 18.10 Serverのインスタンスを作成します。
グローバルIPの取得とEC2インスタンスへの設定
Elastic IPは、グローバルIPを取得するAWSのサービスです。
サービスからElastic IPを選択して、グローバルIPを取得します。
グローバルIPの取得後、EC2インスタンスにグローバルIPをアタッチします。
独自ドメインの取得と設定
Route 53 は独自ドメインを購入できるAWSのサービスです。
Route 53 で独自ドメインを取得します。
ここでは、t-cool.org を取得しました。
t-cool.org の Aレコードに Elastic IP で取得した固定IPを設定します。
EC2インスタンスへの接続
EC2インスタンスにSSHで接続するために、AWSのアカウントからpemファイルを作成してダウンロードします。
ローカルのPCの .bashrc にEC2インスタンスに接続するためにエイリアスを作成します。
alias ec2='ssh -i <pemファイルへのPATH> ubuntu@ec2-54-185-234-112.us-west-2.compute.amazonaws.com'
Terminal等のクライアントから、EC2インスタンスに接続します。
$ ec2 $ ubuntu@ip-172-32-17-144:~$
EC2インスタンスの環境設定
Roswellをインストール
EC2インスタンスにログインして、サーバの環境構築を行います。
$ ubuntu@ip-172-32-17-144:~$ sudo su - $ root@ip-172-32-17-144:~$
ビルドするためにrootでbuild-essential等をインストールします。その後、Roswellをインストールします。
$ root@ip-172-32-17-144:~$ apt-get update $ root@ip-172-32-17-144:~$ sudo apt-get -y install git build-essential automake libcurl4-openssl-dev $ root@ip-172-32-17-144:~$ git clone -b release https://github.com/roswell/roswell.git $ root@ip-172-32-17-144:~$ cd roswell $ root@ip-172-32-17-144:~$ sh bootstrap $ root@ip-172-32-17-144:~$ ./configure $ root@ip-172-32-17-144:~$ make $ root@ip-172-32-17-144:~$ sudo make install $ root@ip-172-32-17-144:~$ ros setup
ローカル環境に戻し、再度、Roswellをインストールします。
$ root@ip-172-32-17-144:~$ exit $ ubuntu@ip-172-32-17-144:~$ git clone -b release https://github.com/roswell/roswell.git $ ubuntu@ip-172-32-17-144:~$ cd roswell $ ubuntu@ip-172-32-17-144:~$ sh bootstrap $ ubuntu@ip-172-32-17-144:~$ ./configure $ ubuntu@ip-172-32-17-144:~$ make $ ubuntu@ip-172-32-17-144:~$ sudo make install $ ubuntu@ip-172-32-17-144:~$ ros setup *
ros scriptにPATHを通す
次にように.bashrcを編集してPATHを通します。
$ pwd /home/ubuntu $ vi .bashrc
export PATH=$PATH:/home/ubuntu/.roswell/bin/
.bashrc の変更を有効化します。
$ source .bashrc
ポートの開放
EC2のセキュリティポリシーを編集します。インバウンドにカスタムルールを追加します。
Hello, Clack
Clackのインストール
ros installでclackをインストールします。
$ ros install fukamachi/clack
スクリプトを作成する
app.lispを作成して、次のように編集する。
$ ubuntu@ip-172-32-17-144:~$ vi app.lisp
(lambda (env) '(200 (:conent-type "text/plain") ("Hello, Clack!")))
clackup でサーバを起動する
$ ubuntu@ip-172-32-17-144:~$ clackup --address 0.0.0.0 --port 80 app.lisp Hunchentoot server is going to start. Listening on 0.0.0.0:5000.
ブラウザで確認する
ブラウザからhttp://t-cool.org
にアクセスします。
Hello, Clackと確認できます。
まとめ
この記事では、Amazon EC2インスタンスにCommon Lispの開発環境を構築する方法についてまとめました。
参考になれば幸いです。