【新機能】AWS CodeStar が東京リージョンで利用できるようになりました!
はじめに
こんにちは佐伯です。AWS CodeStarが東京リージョンで利用できるようになりました!
AWS CodeStar is now available in Asia Pacific (Tokyo) and Canada (Central) Regions
以下のエントリで紹介されていますが、今回はRuby on Railsを全く知らない私が、Ruby on Railsウェブアプリケーションをサクっと作ってみたいと思います。(なお、やってることはほぼ一緒だったりします)
やってみた
プロジェクトの作成
CodeStarのサービス画面よりプロジェクトの作成をクリックします。
はじめてプロジェクトの作成を行う場合、CodeStarが各種AWSリソースを作成するためのIAMロールを作成するかの表示がされますので、「はい、ロールを作成します。」を選択します。
今回はElastic BeanstalkでRuby on Railsのウェブアプリケーションを作成するテンプレートを使用しました。
プロジェクト名を入力し、ソースコードのリポジトリをCodeCommitまたはGitHubから選択します。今回はCodeCommitを選択しました。
EC2の設定はデフォルトのままとし、キーペアを選択して、プロジェクトを作成します。
次にツールのセットアップを参照しながら、リポジトリへの接続設定を行います。「手順を表示」から設定手順を確認することができます。
今回はコマンドラインツールのセットアップを行いました。詳しい手順はCodeCommitのGitリポジトリへの接続方法を参照して頂ければと思います。
$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/Users/saiki.ko/.ssh/id_rsa): codecommit Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in codecommit. Your public key has been saved in codecommit.pub.
アップロードしたSSHキーIDをUserに指定して、以下の様にSSH設定ファイルに追加します。
Host git-codecommit.*.amazonaws.com IdentityFile ~/.ssh/codecommit User APKAXXXXXXXXXXXXXXXX
リポジトリをクローンできればオッケーです。
$ git clone ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/hello-codestar
プロジェクトのセットアップまでしばらく待ちます。その間にCloudFormationを確認すると色々作ってくれてるのが確認できます。
プロジェクトの作成が完了し、CodeStarのダッシュボードからCodePipelineの進捗状況が確認できます。その時点でデプロイが完了していれば、アプリケーションのエンドポイントにアクセスするとサンプルページが表示されます!
ソースの変更からデプロイ
ソースを編集して、デプロイまでどんな感じかを見てみます。ソースを変更して、リポジトリにPushします。今回はCongratulations!
をHello AWS CodeStar!
に変更しました。
$ git diff diff --git a/app/views/hello_page/hello.html.erb b/app/views/hello_page/hello.html.erb index 6936c8b..c7a1b89 100644 --- a/app/views/hello_page/hello.html.erb +++ b/app/views/hello_page/hello.html.erb @@ -46,7 +46,7 @@ <div class="message"> <a class="twitter-link" href="http://twitter.com/home/?status=I%20created%20a%20project%20with%20AWS%20CodeStar!%20%23AWS%20%23AWSCodeStar%20https%3A%2F%2Faws.amazon.com%2Fcodestar"><%= image_tag("tweet.svg", :alt => "twitter logo") %></a> <div class="text"> - <h1>Congratulations!</h1> + <h1>Hello AWS CodeStar!</h1> <h2>You just created a Ruby on Rails web application.</h2> </div> </div>
$ git add app/views/hello_page/hello.html.erb $ git commit -m "Modify app/views/hello_page/hello.html.erb" [master 223ec69] Modify app/views/hello_page/hello.html.erb 1 file changed, 1 insertion(+), 1 deletion(-) $ git push origin master Counting objects: 6, done. Delta compression using up to 4 threads. Compressing objects: 100% (5/5), done. Writing objects: 100% (6/6), 524 bytes | 524.00 KiB/s, done. Total 6 (delta 3), reused 0 (delta 0) To ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/hello-codestar 80b2f1d..223ec69 master -> master
PushされるとCodePipelineが開始され、デプロイまで行ってくれます。
アプリケーションのエンドポイントに再度アクセスすると変更が反映されていました!
まとめ
全くRuby on Railsを知らない私でも数クリックでCD環境を含めた、ウェブアプリケーションを作成できることができました!この手軽さはすごいと思います。また、私自身Codeシリーズの知見があまりないので、テンプレートを参照してCodeBuildやCodeDeployの設定を参考にしてみたいと思います。