Amazon Web Services ブログ

AWS Cloud9 – クラウド開発環境

プログラミングを始める時に最初に学ぶことは、どんな職人でも同様ですが、道具についてです。メモ帳は役に立たないでしょう。強力なエディタとテスティング パイプラインがあなたの生産性に大きく貢献します。私はまだ最初にVimの使い方を学んだ時のことを覚えています。それを使ってシステムと複雑なプログラムをZip化しました。すべてのコンパイラと依存関係を新しいマシンにセットアップすることが、どれほど大変だったか覚えていますか?新しいデベロッパーをプロジェクトに参加させるためにバージョンをマッチさせ、構成ファイルを取り繕い、ドキュメントを書くのに、どれほどのサイクルを浪費したことか。

本日(11/30)コーディング、実行、デバッグを可能にする統合開発環境(IDE)をWebブラウザ上で実現するのAWS Cloud9をローンチしました。Cloud9は多くの人気のある開発言語(Javascript、Python、PHP、その他)のための主要なツールをパッケージ化しているので、様々なコンパイラやツールなどをインストールする必要はありません。Cloud9はまたサーバーレスアプリケーションとのシームレスなエクスペリエンスを提供しておりローカルとリモートの間でテストやデバッグを素早くスイッチできます。ポピュラーなオープンソースのAce Editorとc9.io IDE(昨年買収しました)をベースに、AWS Cloud9は非常にパワフルなペアプログラミング機能と共にクラウド開発におけるコラボレーションが容易になるように設計されています。Cloud9は、このBlog記事でカバーしているものよりも多くの機能を提供していますが、ここではクイックにエディタ機能、AWSとのインテグレーション、コラボレーション機能の3つのコンポーネントに分解して掘り下げていきます。

編集機能

 

Cloud9のコア機能であるAce Editorは、素早く、簡単に、美しくコードを書くことを可能にします。コードを書くこと:これは単一の仕事を行い、それをうまくやるというUNIXの哲学に従っています。

Cloud9は、あなたが期待する典型的なIDEの機能をすべて持っています:ライブシンタックスチェック、自動インデント、自動補完、コードの畳み込み、ペイン分割、バージョン管理統合、マルチカーソルと選択、さらに、注目したい、いくつかのユニークな機能を提供しています。まず第一にCloud9は(10万行以上の)大きなファイルでも素早く編集できます。タイプ中に遅れたりやその他の問題が発生することはありません。24を超えるテーマが組み込み(ここ注目です!)で提供されていて、Sublime TextやTextMateからも同様にお気に入りのテーマをすべて持ってくることができます。40以上の言語モードへの組み込みサポートとプロジェクトのためのカスタマイズ可能な実行の設定があります。最も重要なのはVimモードを持っていること(または人によってはemacs)です。さらにCloud9は、エディタをあなたの思い通りに設定できるキーバインディングエディタを持っています。

エディタはパワフルなキーボードナビゲーションと(Sublime TextやVimのctrlpプラグインのような)コマンドをサポートしています。Macでは、⌘+P でファイルをあいまい検索してオープンすることができます。⌘+. でコマンド入力ペインが表示され、コマンド名を入力することでエディタコマンドを実行することができます。
Cloud9はまた有益な情報としてコマンドのためのキーバインディグをペイン内に表示します。例えばターミナルを開くには、⌥+Tを押します。あ、今ターミナルがあると言いましたね?Cloud9は、リソースにアクセスするための事前構成されたAWS CLIと共に出荷されます。

Cloud9環境はまた多くのポピュラーな言語のためのデバッグツールをプリインストールしています。ですが、すでにインストールされているものに制限されません。新しいプログラムや実行の設定を定義するのは容易です。

エディタはあきらかに重要ではありますが、IDEのひとつのコンポーネントにすぎません。ここからはいくつかの他の魅力的な機能をお見せします。

 

AWSとの統合

 

Cloud9は、私が初めて使う本当の意味で”クラウドネイティブ”なIDEです。このサービス自体は無料で提供され、その基盤であるコンピュートとストレージのリソースにのみ課金されます。あなたがCloud9の環境を作成したときに、次のいずれかを問い合わせされます:インスタンスタイプと自動ハイバネートの時間、またはあなたが選択したマシンへのSSH接続です。

もし自動ハイバネート機能を実行している場合は、IDEの利用をやめると短時間でインスタンスが停止します。これは、より継続的に開発者のデスクトップで実行することに比べて、とても大きくコストを抑える可能性があります。またCloud9は開発リソースをセキュアにアクセスするためにVPC内で起動することもできます。もしCloud9をAWS以外で実行したい場合は、外部のマシンに環境を構築できるようにサービスに対してSSHアクセスを提供することができます。Cloud9環境は自動的に展開され、かつAWSアカウントにセキュアにアクセスするので、クレデンシャルをあちこちにコピーすることを心配する必要はありません。もう一度言いましょう:あなたはCloud9をどこででも実行できます。

 

AWS Cloud9とサーバーレス開発

 

私はTwich上でサーバーレス アプリケーションの開発に多くの時間を費やしました。多くのLambda関数とAPIを開発しました。Cloud9はこれらひとつひとつの関数で快適に働きます。

エディタの右上の端にAWS Resourceタブを見つけることができます。これを開くと現在のリージョンのすべてのLambdaファンクションを見ることができます。(AWS prefaerenceペインのRegion preferenceを調整することで、他のリージョンのLambdaファンクションも見ることができます)。
これらのリモートファンクションをダブルクリックすることで、ローカルのワークスペースにインポートすることができます。これによってサーバーレスアプリケーションをすべてローカルで編集、テスト、デバッグすることが可能になります。新しいアプリケーションやファンクションを作成することも同様に容易です。右上のペインにあるLambdaアイコンをクリックすると新しいLambdaファンクションが作成され、Cloud9が自動的にServerless Application Modelテンプレートを作成してくれます。このIDEはプリインストールされたポピュラーなSAM localツールのサポートを伴って出荷されます。これはローカルテストとサーバーレス開発のほとんどで私が利用しているものです。ターミナルがあるので追加のツールをインストールしたり他のサーバーレスフレームワークを利用することも容易です。

 

AWS CodeStarからの環境の実行

 

AWS CodeStarを利用することで、AWS上の開発におけるエンドツーエンドの継続的デリバリーのツールチェーンを容易にプロビジョンすることができます。CodeStrはAWS CodeCommit、CodeBuild、CodePipeline、CodeDeployのサービススイートを利用してビルド、テスト、デプロイおよびアプリケーションの管理に対する統一されたエクスペリエンスを提供します。シンプルな数クリックによってアプリケーションを開発するためのCloud9環境をプロビジョンできます。環境はあなたのCodeStarアプリケーションのコードがすでにチェックアウトされ、gitのクレデンシャルが構成された状態に事前設定されています。

さらに非常に便利な機能として、この環境をあなとの同僚と容易にシェアすることができるのです。

 

コラボレーション

 

AWS Cloud9を他のエディターと差別化する多数の機能の中の一つがコラボレーションツールです。数クリックでIAMユーザーをあなたの環境に招待できます。

現在作業中のファイルやカーソルの位置を見ることはもちろん、ターミナルさえ共有できます。チャットの機能も便利です。

知るべきこと

 

このサービスは背後で動作するコンピュートとストレージの料金を除いて、追加の料金は必要ありません。

c9.ioは既存ユーザーのために継続して活動します。c9.ioのすべての機能は継続して利用可能ですし、チームアカウントをお持ちであれば、新しいチームメンバーを追加できます。将来、c9のワークスペースからAWS Cloud9へ容易にマイグレーションするためのツールを提供する予定です。

AWS Cloud9は米国西部(オレゴン)、米国東部(オハイオ)、米国東部(北バージニア)、EU(アイルランド)とアジアパシフィック(シンガポール)リージョンで利用可能です。

AWS Cloud9 であなたがなにを開発するかが楽しみです!
Randall



Randall Hunt
AWS シニアテクニカルエバンジェリスト。 以前は NASA、SpaceXとMongoDBで働いていました。

 

 

日本語訳はSA 福井が担当しました。原文はこちらです。

https://thinkwithwp.com/blogs/aws/aws-cloud9-cloud-developer-environments/