LoginSignup
96
122

AWS上にVSCode対応の開発環境を簡単に構築できるOSSのCoderがすごい!

Last updated at Posted at 2023-10-09

はじめに

イベントや普段の業務などで開発環境をクラウド上に用意したいなと思うことはありませんか?
そんなときに使えるOSSであるCoderというサービスについて紹介します。
私もとあるイベントで利用しましたが、とても便利でした!!

これまで、私はAWS Cloud9を使っていましたが、VSCodeが使えないという点で非常に不便を感じていました。Coderは私が求めていたAWS上VSCodeが使える環境を作りたい!という要件にぴったりでした。

Coderは以下の特徴があります。

  • 好きなクラウドサービスを選択できる(AWS, GCP, Azureなど)
  • IDEが選べる(VS Code, JetBrainsなど)
  • Terraformでインフラを定義できる
  • 無料で利用できる(クラウド利用料のみ、一部機能は有料エンタープライズ版のみ)

ここまで聞いてGitHub Codespaces使えばいいじゃん!と思った人がいると思いますが、AWSに請求をまとめたいなるべく安く済ませたいという理由でCoderを選択しています。

CodespacesとEC2を利用した場合ではおよそ50%のコストで利用できるので複数の環境が必要な場合にはかなり節約できます。
* 性能が同じとは限りません

Cores RAM Codespaces EC2
2 4 $.18 $0.0432(t4g.medium)
4 8 $.36 $0.1712(c6g.xlarge)
8 16 $.72 $0.3424(c6g.2xlarge)
16 32 $1.44 $0.6848(c6g.4xlarge)
32 64 $2.88 $1.3696(c6g.8xlarge)

使い方

Coderは様々なクラウドサービスで利用できますが、AWSでの使い方について紹介します。
詳細は公式サイトに詳しく記載されているので簡単に紹介します。

1.Coderが提供しているAMIからインスタンス(管理サーバー)を起動する

Coderを使うためには、管理サーバーが必要になります。
ブラウザで管理サーバーに接続し、開発環境を立ち上げたりアクセスできるユーザーを管理したりすることができます。

スクリーンショット 2023-10-09 15.58.09.png

2.管理サーバーにログインする

スクリーンショット 2023-10-09 16.08.05.png

3.テンプレートを作成する

デフォルトでDocker, AWS EC2, AWS ECSなどのテンプレートが用意されています。今回はEC2を選択しました。

screencapture-vr024pd77598s-pit-1-try-coder-app-templates-2023-10-09-16_48_25.png

4.ワークスペースを起動する。

ワークスペースが実際に開発を行うための環境になります。

screencapture-vr024pd77598s-pit-1-try-coder-app-hirai-tomoki-test-1-2023-10-09-16_53_57.png

5.開発環境に接続する

起動が成功するとVSCode Desktopcoder-serverが選択できるようになります。
VSCode Desktopをクリックすると画像のようにVSCodeが起動されて開発環境に接続できます。SSHで接続されているのでセキュアに通信することができます。

スクリーンショット 2023-10-09 17.07.33.png

もちろん起動した開発用サーバーにも接続できます。

スクリーンショット 2023-10-09 17.23.41.png

coder-serverを選択するとブラウザ上でVSCodeが起動できます。一部機能制限はありますが、快適に使うことができます。
こちらはOSSの提供元が開発しているパッケージが使用されています。

スクリーンショット 2023-10-09 17.10.30.png

メリット、デメリット

冒頭でも少し触れましたが、改めてCoderのメリットとデメリットについて紹介します。

メリット

好きなクラウドサービスを選べる(オンプレも可)

AWS, GCP, Azureの主要なクラウドサービスに対応しており、公式サイトに詳しく使い方が紹介されています。
また、クラウドサービスではなくてもオンプレのサーバーを用意してDocker, Kubernetesで構築するなどいろいろな選択肢があります。

環境をterraformで自由にカスタマイズできる

今回はAWS EC2を利用するテンプレートを使いましたが、これらのテンプレートファイルはすべてterraformで記述されています。今回利用したテンプレートは以下のURLで閲覧できます。

例えば、startup_script(サーバー起動時に実行するスクリプト)を編集してライブラリのインストールを行ったり、EC2にIAMロールを追加してアクセス権限を増やしたりと自由にカスタマイズできます。

startup_script = <<-EOT
    set -e
    
    # install and start code-server
    curl -fsSL https://code-server.dev/install.sh | sh -s -- --method=standalone --prefix=/tmp/code-server --version 4.11.0
    /tmp/code-server/bin/code-server --auth none --port 13337 >/tmp/code-server.log 2>&1 &
    # ここにライブラリインストールを追加
EOT

エディタを自由に選択できる

VSCode、JetBrainsなど複数のIDEに対応しています。

管理画面が見やすくてわかりやすい

管理画面は非常に操作しやすく、かなり使い勝手が良い印象です。
管理画面にログインできるユーザーも追加、削除できるので非常に便利です。

スクリーンショット 2023-10-09 17.41.03.png

デメリット

準備、設定に手間がかかる

カスタマイズがいろいろできる反面、管理用サーバーの構築、テンプレートファイルの作成などに準備が必要です。
そこまでこだわりがない場合にはAWS Cloud9GitHub Codespacesを使うのが良いと思います。

小規模の利用には向いていない

セルフホスト型なので、管理サーバー1台、開発用サーバーn台という構成になります。
管理用サーバーにも費用がかかるので、開発用サーバーの台数が少ないと他サービスと比べてコスト面で不利になります。
料金やカスタマイズ性のメリットは規模が大きくなってくると発揮されると思うので、小規模の利用には向いていないと思います。

まとめ

クラウド上に開発環境を構築できるOSS、Coderの紹介でした。
テンプレートを一度作ってしまえば、同じ環境を複数立ち上げることができるのでイベントや普段の開発で活躍すると思います。

AWS Cloud9GitHub Codespacesはイマイチだなと思っている人は使ってみてください!

96
122
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
96
122