NEXTSCAPE blog

株式会社ネクストスケープの社員による会社公式ブログです。ネスケラボでは、社員が日頃どのようなことに興味をもっているのか、仕事を通してどのような面白いことに取り組んでいるのかなど、会社や技術に関する情報をマイペースに紹介しています。

MENU

re:Invent2017で発表されたAWS Cloud9の環境構築からLambdaのデプロイまでをやってみた。

こんにちは。

時差ボケに苦しんだコンサルティング&テクノロジーの松永です。

この記事は「ネクストスケープ クラウド事業本部 Advent Calendar 2017」の8日目の記事です。

 

さて、ラスベガスで行われたAWS re:Invent2017に参加し、いまだその興奮冷めやらぬままですが、

2日目のキーノートの最後の言葉、「Go Build」の通り、日本に帰ってから新サービスを触っています。

その中で今回はAWS Cloud9についてご紹介したいと思います。

そもそも、Cloud9はブラウザから使用できる統合開発環境、いわゆるクラウドIDEと呼ばれるもので、Amazonが

2016年7月に買収をしています。

その際には、AWSもVisual Studioのような統合開発環境を出す布石だと騒がれましたが、それから1年以上

音沙汰がありませんでした。

それが、このre:Invent2017でAWS Cloud9として満を持して発表され、キーノートではデモも行われました。

Amazonが出すIDEということで、今後も注目がされるであろうAWS Cloud9。

早速試してみることにしました。

f:id:nextscape_blog:20210911011557j:plain

 


Cloud9を構築する。

 

Cloud9を使うにはまずは環境構築をする必要があります。

AWSコンソールにログインしましょう。

そして、サービス一覧から開発者用ツール>Cloud9を選択します。

f:id:nextscape_blog:20210911011643p:plain

 

現在、Cloud9は5つのリージョンで提供がされています。

  • EU (アイルランド)
  • アジアパシフィック (シンガポール)
  • 米国東部 (バージニア北部)
  • 米国東部 (オハイオ)
  • 米国西部 (オレゴン)

もしその他のリージョンを使っている場合は、下記のような画面が出てきますので、

構築したいリージョンを選択しましょう。

f:id:nextscape_blog:20210911011701p:plain

今回私はオレゴンで作りました。

リージョンを選択すると、今度はガイド画面が出てきます。

新しくCloud9環境を作りたいので、「Create enviroment」のオレンジ色のボタンを押します。

f:id:nextscape_blog:20210911011720p:plain

 

ボタンを押すとCloud9の設定画面がでてきます。

環境名と詳細を入れてNext Stepボタンを押しましょう。

ちなみにここで一つポイント。

今回は英語の画像を出していますが、英語が苦手という方は、Chromeで開いてブラウザ翻訳をONにしてみてください。

かなり精度の高い日本語が表示されるので、英語が苦手という人も内容がつかめるので、サクサク設定できると思います。

ありがとう。G**gle(笑)

f:id:nextscape_blog:20210911011740p:plain

 

名前を入力した次は、環境構築の設定画面がでてきます。

AWS Cloud9を使うには実はバックエンドサーバーが必要になります。

バックエンドサーバーは、新しくEC2を構築して使うか、既存のLinuxサーバー(オンプレミスサーバーなど)を利用するか、

どちらかを選択することができます。

今回は新たにEC2を作成します。

Create a new instance for enviroment (EC2)を選択します。

インスタンスタイプはt2.micro、t2.small、m4.large、そしてOther Instance typeの4つの選択肢があります。

Other Instance typeを選択した場合は、リストからEC2のインスタンスタイプを選択することができます。

今回はt2.mircoを選択しました。

f:id:nextscape_blog:20210911011802p:plain

ちなみにConnect and run in remote server (SSH)を選択した場合は、以下のSSH項目が出てきます。

ここでSSHのアクセス情報を設定していきます。

f:id:nextscape_blog:20210911011822p:plain

 

では、下の項目にいきましょう。

Cost-savign setingはコスト節約設定になります。

Cloud9は無料で使えますが、環境にEC2を利用する場合は、

コードの実行と保存に使用されたコンピューティングとストレージのリソース分に料金が発生します。

ここではCloud9を利用しない場合、何分たったら環境を落とすかを設定します。

デフォルトは30分後です。その他の選択肢として、1時間後、4時間後、1日後、1週間後、設定しない、が選択できます。

注意書きを見る限り推奨は30分のようですので、デフォルト設定のままとします。

次のIAM roleは、「AWSServiceRoleForAWSCloud9」固定です。

このIAMロールは、Cloud9の構築時に自動で作成され、ポリシーがEC2に適用されます。

次にNetwork settingではVPCとSubnetを指定します。

Cloud9はVPC内に環境を構築することができますので、セキュアな環境下で利用することが可能です。

もしVPC内でCloud9環境を構築した場合には、リストからVPCを選択しましょう。

もちろん新しく作成することも可能です。

作成する場合は、右側のボタンから新しく作成します。 

作成をしたら、Next Stepボタンを押しましょう。

 

f:id:nextscape_blog:20210911011842p:plain

 

最後に確認画面が表示されるので、確認をしたら「Create enviroment」をクリックします。

f:id:nextscape_blog:20210911011916p:plain

f:id:nextscape_blog:20210911011944p:plain

 

成功すれば、Cloud9のIDEが立ち上がります。

f:id:nextscape_blog:20210911012009p:plain

これで、Cloud9の開発環境が整いました。

新しくEC2を構築した場合は、コンソール上からEC2も確認してみてください。

EC2コンソールを開くと新しいEC2が一つできていると思います。

また、EBS、IAMロール、VPCも自動で作成がされているはずです。

 

Cloud9からLambdaを作成する。

 

では、環境も整いましたので、Cloud9からLambdaを作成してみましょう。

Cloud9の右ペインからAWS Resourcesを選択します。

そして、λマークのボタンをクリックします。

f:id:nextscape_blog:20210911012027p:plain

 

Lambdaの作成画面が出てきますので、設定をしていきます。

まずは名前の設定。

f:id:nextscape_blog:20210911012045p:plain

続いてruntimeの設定です。今回はempty-nodejsを選択。

f:id:nextscape_blog:20210911012103p:plain

 

次にトリガーの設定です。

今回はお試しなのでnoneにしますが、トリガーはその他にAPI Gatewayが選択できます。

f:id:nextscape_blog:20210911012121p:plain

こちらがAPI Gatewayの設定項目。

f:id:nextscape_blog:20210911012221p:plain

 

次にメモリを選択します。

f:id:nextscape_blog:20210911012241p:plain

 

最後に内容を確認してFinishボタンを押します。

f:id:nextscape_blog:20210911012258p:plain

 

すると、左ペインにLambdaフォルダとファイルが自動で作成されます。

また右ペインにはLocal Functionsと、Remote Functionsにそれぞれ作成したLambdaが表示されます。

これでLambdaが作成され、Cloud9上で操作することができるようになりました。

f:id:nextscape_blog:20210911012326p:plain

念のため、Lambdaを確認しておきましょう。

AWSコンソールからLambdaを見てみると、Cloud9上で作ったLambdaファンクションができていると思います。

f:id:nextscape_blog:20210911012344p:plain

 

中身もCloud9上と同じです。

f:id:nextscape_blog:20210911012402p:plain

 

Lambdaをデプロイしてみる。

 

では、Cloud9からLambdaをデプロイしてみます。

まずCloud9上のソースに修正を加えます。

今回つくったのはnode.jsですので、index.jsに、console.log("Hello Cloud9");と入力します。

 

f:id:nextscape_blog:20210911012421p:plain

 

Runボタンを押して、Lambdaをローカルで実行します。

f:id:nextscape_blog:20210911012506p:plain

正常に実行されました。

では、これをリモートのLambdaにデプロイします。

右ペインのLocal FunctionsからLambdaを選択し、↑ボタンを押します。

するとデプロイが始まります。

f:id:nextscape_blog:20210911012529p:plain

デプロイが完了したら、

リモートのLambdaを見てみます。

修正が反映されていると思います。

f:id:nextscape_blog:20210911012549p:plain


最後に

 

AWS Cloud9の登場で、Lambdaがより作成しやすくなりました。

またブラウザベースのIDEですので、ローカルの端末に関係なく動かせるのも非常にメリットが大きいと思います。

これからますます改良が進められていくことでしょう。

早く日本リージョンでも使えるとよいですね。