はじめに

サーバー基盤


本記事は、AmazonWebService(以下、AWS)が提供する統合開発環境(IDE)サービスの「Cloud9」について解説します。

これから導入を考えている方や既に活用している方などを対象に、Cloud9を知っていただくための内容をまとめていきます。

今後のIDEの中でも、システム業界でのデファクトスタンダードとなり得るCloud9について、その特徴と使い方を紹介したいと思います。

Cloud9とは

プログラミングコード


まずはCloud9の概要について説明していきます。


次世代IDE

Microsoft社のVisualStudioや、オープンソースソフトウェアのEclipseなどを筆頭に、これまでに様々なIDEが利用されてきました。

ここで取り上げるCloud9は、Cloud上に構築及び提供されWebブラウザを用いて利用します。

次世代IDEの先駆けとして、また開発現場での「環境」に関する課題解決へのデファクトスタンダードとして、今後も存在し続けるのではないでしょうか。


利用構成

前述のとおりCloud9はブラウザで利用するクラウドIDEです。

その構成としては、独自のサーバにCloud9環境を構築することも可能ですが、AWS Cloud上にEC2インスタンスを設置し、そこにCloud9を導入することで各種機能を最大限効率的に活用できるようデザインされています。

まずは、AWSサービス上でのEC2インスタンスによる構成を選択することをおすすめします。


サポート言語

下記の他、40種以上のプログラミング言語(もしくはアプリケーションタイプ)がサポートされています。

  • JavaScript
  • js
  • Python
  • PHP
  • Ruby
  • Go
  • C++
  • Java


Cloud9のメリット

PHPフレームワーク


開発環境の準備が簡単

これから開発を始めようと思った場合や、例えば開発用に利用していたパソコンなどを新調するなど、実際にコーディングが可能となる状態を準備する場合には、相応の時間と作業が必要でした。

具体的には、導入するIDEや各種開発ツールなどのインストーラをそれぞれにダウンロードし、それをインストールしたり、使用OSに依存するような各種設定や、関連する外部サービス(バージョン管理システムやストレージサービスなど)との連携を仕込んだりする必要がありました。

Cloud9は、AWSコンソールにログインし、サービス利用開始の手続きを手順に従って進めるだけで、開発用の端末からブラウザでCloud9が利用できる状態を準備することが可能です。

さらにAWSが提供する各種サービスとの連携を維持しながら、充実した開発ツールの利用も可能です。


サーバレスコンピューティングへの適合

サーバレスアプリケーション開発用のSDK、ツール、ライブラリがCloud9には含まれています。

また、Serverless Application Model (SAM) のサポートによって、SAMテンプレートが使用でき、サーバレス開発を簡単に実装できます。

AWS Lambda関数のデバッグにも特化し、Lambdaコンソールにアップロードする必要なく、直接 Lambdaコードを編集することが可能になります。


開発~デバッグ~デプロイが簡単

AWS CodeStarとの統合によって、CodeCommit/CodeBuild/CodePipeline/CodeDeployとの連結が実現され、アプリケーションのビルド、テスト、デプロイを簡略化及び自動化された手順で実施できます。

アジャイル形式での開発やリリース後のメンテナンスに至るまで、効率的な運用が可能です。


チーム開発への対応が簡単

容易というよりもCloud9の標準機能として、複数人による共同開発に対応できる機能が備わっています。

これは、開発環境そのものをCloud上に構築することで、開発者個々の環境の違いに依存する現象をなくすことができ、Cloud9特有のメリットといえます。

さらに、チャット機能も組み込まれているため、同じファイル上でコードを共有しながらチャットによるコミュニケーションが可能です。

もちろんGitHubやBitbucket、Herokuなど、ソース管理ツールとの連携が可能です。


Cloud9にかかる費用



AWS無料利用枠で利用

AWS無料利用枠」が適用される新規AWSアカウントでは、Cloud9の利用による費用は発生しません。基本的には、利用開始から1年間は無料で運用できると考えて問題ありません。

無料枠の範囲を超えて高スペックなリソースを利用した場合や、登録後1年以上経過したAWSアカウントの場合は、AWSが定める料金設定により通常の課金が発生しますので、ご注意ください。

ただし、Cloud9利用のそのものに対する課金(利用ライセンス料等)は発生しません。

詳しくはAWS公式サイトをご参照ください。


従量課金

あくまでもCloud9の構築環境におけるコンピューティングとストレージ(EC2インスタンスとEBSなど)に対する課金で、最低料金や前払いのない完全従量課金です。

したがって、AWSアカウントの利用開始から1年経過後も開発期間のみ稼働し、それ以外の期間は停止するといった運用など、自由度の高い費用コントロールが可能です。


便利な機能

スーツ 男性


豊富なテンプレート

前述の通り、Cloud9は多くのプログラミング言語をサポートしていますが、その上で主要な言語にはソースファイルを作成する際のテンプレートが準備されています。

テンプレートを利用することによって、ソースコードの記述一貫性が図れることや、共通のヘッダーコメントなどが記載しやすいなど、ソース管理面でのメリットが高まります


組み込みターミナル

アプリケーションのデバッグ時などに、サーバ側の操作が必要となる場面が多くあります。

Cloud9はIDEの機能としてターミナル(bash)が組み込まれています。

つまり、開発機にてIDEとは別にターミナルからSSHなどでサーバログイン状態を維持し、画面を切り替えながら作業をする必要がなくなります

また、開発中のアプリケーションをコマンド起動する場合にも、組み込みターミナルから直接的に起動することが可能です。

これはトライアンドエラーなどテストを繰り返す際などには、非常に便利な機能です。


built-in web serverでの起動

ソフトウェアエンジニア


Cloud9はwebサーバ機能も組み込まれています。

つまりWebアプリケーションの開発においては、IDEが開発用の実行環境そのものになります。

したがって、実行環境を個別に用意する必要がなくなり、開発リソースをいちいち開発用の実行環境にデプロイするといった作業全体が不要になります。


チーム開発

ソース管理ツールとしてGitやSubversionを用いたチーム開発管理が可能ですが、Cloud9のエディターには共同編集に特化した同時編集機能や、編集中にリアルタイムでやり取りができるチャット機能が備わっています。

さらにファイル改訂履歴なども管理されるため、チーム開発時に必要となる、同一ファイル修正時のマージ作業や開発者同士のコミュニケーションへの難度が低くなります。


AWSアカウントの登録

オフィスで働くプログラマー


Cloud9はAWSのソリューションとして提供されています。

サービス利用のためにはAWSアカウントが必要です。

利用可能なメールアドレスとクレジットカードがあれば、AWS公式サイトから無料でサインアップできます。

サインアップ後の本人確認のため、電話番号(音声通話)またはSMS受信が必要となります。

AWSアカウントの登録手順は、AWS公式サイト内の「AWS アカウント作成の流れ」を、ご参照ください。


IAMの設定

AWSアカウントの登録後、AWS利用における安全なセキュリティ確保のため最初にIAMの設定をしましょう。

AWSマネジメントコンソールのメニューから「サービス」-「IAM」と選択し、IAMダッシュボードを表示します。

「セキュリティステータス」欄がすべて良好(緑色のチェックマーク)となるように、それぞれの設定を変更されることを推奨します。

  • ルートアクセスキーの削除
  • ルートアカウントのMFAを有効化
  • 個々のIAMユーザーの作成
  • グループを使用したアクセス許可の割り当て
  • IAMパスワードポリシーの適用

またIAMグループを活用して、IAMユーザーをグルーピングすることにより、Cloud9でのチーム開発における開発者管理に直結できます。


Cloud9環境の設置

ビジネスマンが近未来のタブレットで仕事をしている


ここでは、AWS Cloud上にEC2インスタンスを設置する構成を選択する前提としています。

ですが開発そのものやその後のアプリケーション維持管理を一貫して考慮すると、Cloud9の利用メリットを最大限活用するためには、この構成を強く推奨します。


簡単な手順

  1. AWSアカウントにてAWSマネジメントコンソールにサインインします。
  2. 画面上部のメニューから「サービス」-「Cloud9」と選択し、Cloud9ダッシュボードを表示します。
  3. 画面右上のリージョン選択部分に「東京」と表示されていることを確認します。
  4. 「Create environment」をクリックします。
  5. 「Name」と「Description」を入力し「Next step」をクリックします。
  6. 「Enviromnent settings」は初期選択のまま「Next step」をクリックします。
    (ここで選択を変更すると、AWS無料利用枠の適用外となる場合があります。)
  7. 「Review」画面で内容を確認し、「Create environment」をクリックします。

以上でサインイン中のAWSアカウントのCloud上に、Cloud9環境の設置処理が自動的に開始します。

設置が完了すると、ブラウザにCloud9画面が自動的に表示されます。

これだけでCloud9が利用可能な状態になります。


コードを書いてみよう



この時点ですでにコーディングが開始できる状態となっています。

新しいファイルを作り、サンプルのコードを書いてみましょう。


ソースファイル作成と実行

  1. 「File」-「New From Template」から、テンプレートを選択するか、対象の言語がテンプレートに存在しない場合は、「File」-「New File」を選択します。
    ここでは「File」-「New From Template」-「Python File」を選択します。
  2. 「Untitled1.py」というファイルが画面に開かれます。
  3. 一旦、「File」-「Save As」を選択し、名前を付けて保存しましょう。
  4. プログラムソースを記述します。
    例)print(“Hello Cloud9 world.”)
  5. 画面上部の「Run」ボタンを押すと、Pythonソースの場合には、組み込みターミナルが画面下部に起動し、作成中のプログラムが実行されます。


まとめ

ビッグデータサーバルーム


Cloud9はお手軽かつ高機能なクラウドIDEです。

  • 簡単な画面操作で、すばやく開発環境が構築できる
  • 非常に多くのプログラミング言語を標準でサポートしている
  • チーム開発に特化したエディターやチャット機能を備えている
  • クラウドIDEのため、開発者間の環境の違いに気を取られることがない
  • ターミナルやWebサーバが組み込まれているためIDE環境そのものが実行環境として動作する
  • AWS無料利用枠の範囲内で稼働することで費用がかからない
  • サーバレスコンピューティング開発へのツールが充実している
  • AWSの各サービスとの親和性が高く、シームレスに連携および活用ができる
  • リリース時および運用フェーズでの自動デプロイへの移行もしやすい


最後に

リンククラウド技術


機能面だけでなく、導入から運用まで一貫して至れり尽くせりなIDEという感触です。そのほとんどが標準装備で、面倒なプラグインや外部連携設定が省かれています。

また特筆していませんが、各種AWSサービスでは品質向上や機能改善のためのバージョンアップが、一定以上のスピード感を保ったサイクルで繰り返されており、今後のさらなる利便性向上にも期待が持てます。

Cloud9を元にした数多あるAWSの機能も活用できるアプリケーションの開発は、単なる開発環境という枠を超えて、システム構築全体での有益性に寄与できます。

既存の開発環境から、Cloud9への移行も含めて、活用の幅はさらに広がっていくのではないでしょうか。