1. HOME
  2. テックブログ
  3. AWS Cloud9の開発環境を作ってみる

AWS Cloud9の開発環境を作ってみる

2021/03/05 テクノロジー

あ、1つ前が別のIDEの紹介ですね。まぁ気にしないで進めましょう。

AWS Cloud9って?

AWSで提供されているクラウドベースの統合開発環境(IDE)で、インターネット環境さえあればブラウザ上でコーディングからデバッグまで行うことができます。
PhpStotmやVisual Studio Codeなどのように使用するパソコンでダウンロード・インストールする必要がなく、当然WindowsやMacなどのOSによる環境依存もありません。

ということはインターネットにさえつながれば働く環境を選ばないということなので、リモートワークにもよさそうですね。

とは言いつつも必要なものが…

AWSについてのある程度の知識は必要です。
あと、AWS Cloud9自体は無料ですが、EC2インスタンス上に開発環境を構築する場合、無料枠期間を過ぎていたり無料枠対象外のインスタンスタイプを選択した場合などは別途料金が発生します。どの程度かかるかは後ほど。

前置きはここまでにして環境構築を進めましょう。
なお、AWSアカウントは既に作成済みのものとします。

IAMユーザーの作成

AWSアカウントで作業をするのはポリシーに反するので、IAMユーザーを作成します。
AWSマネジメントコンソールへのアクセスができるユーザーで、AWSCloud9AdministratorとAmazonEC2FullAccessのポリシーをアタッチしておきます。

今回はCloud9というユーザーを作成しました。
以降の作業はこのIAMユーザーで行います。

AWS Cloud9環境の作成

1. Create environmentをクリックします。

2. Name(開発環境の名前)とDescription(説明)を入力します。
今回はNameをMyWorkSpace、Descriptionは未入力としておきます。

3. EC2インスタンス上に開発環境を作成します。

とりあえず選択肢はデフォルトのままで大丈夫でしょう。
Cost-saving settingは、Cloud9を終了してからEC2インスタンスが休止されるまでの時間です。コスト削減のために設定しておきましょう。デフォルトは30分です。

ネットワーク環境は、アカウント作成時にデフォルトで用意されているものを使います。独自で構築したネットワーク環境を利用したい場合は事前に作っておきましょう。

4. Review画面で内容に問題がないことを確認してCreate environmentをクリックすると環境構築が始まります。数分後このような画面に切り替わったら完了です。

EBSボリュームの拡張

自動生成されたEC2にアタッチされているEBSボリューム10GBのうち既に8GBほど使われているため、空き容量がちょっと心許ないので拡張しておきます。

1. AWSのマネージメントコンソールからEC2へ行き、Elastic Block Store > ボリュームを開きます。

2. 対象のEBSボリュームを選択しボリュームの変更を行います。今回は30GBに変更します。

3. ターミナル(Cloud9の画面下部がターミナルです)でlsblkコマンドを打って確認します。

cloud9:~ $ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        474M     0  474M   0% /dev
tmpfs           492M     0  492M   0% /dev/shm
tmpfs           492M  480K  492M   1% /run
tmpfs           492M     0  492M   0% /sys/fs/cgroup
/dev/xvda1       10G  7.9G  2.2G  79% /
tmpfs            99M     0   99M   0% /run/user/1000
tmpfs            99M     0   99M   0% /run/user/0
cloud9:~/environment $ lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  30G  0 disk
└─xvda1 202:1    0  10G  0 part /

4. growpartコマンドでxvda1パーティションを拡張し、lsblkコマンドで確認します。

cloud9:~ $ sudo growpart /dev/xvda 1
CHANGED: partition=1 start=4096 old: size=20967391 end=20971487 new: size=62910431 end=62914527
cloud9:~ $ lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  30G  0 disk
└─xvda1 202:1    0  30G  0 part /

5. この時点ではファイルシステムの拡張はできていないので、xfs_growfsコマンドでファイルシステムを拡張します。

cloud9:~ $ sudo xfs_growfs -d /
meta-data=/dev/xvda1             isize=512    agcount=6, agsize=524159 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1 spinodes=0
data     =                       bsize=4096   blocks=2620923, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 2620923 to 7863803
cloud9:~ $ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        474M     0  474M   0% /dev
tmpfs           492M     0  492M   0% /dev/shm
tmpfs           492M  480K  492M   1% /run
tmpfs           492M     0  492M   0% /sys/fs/cgroup
/dev/xvda1       30G  7.9G   23G  27% /
tmpfs            99M     0   99M   0% /run/user/1000
tmpfs            99M     0   99M   0% /run/user/0

これで拡張完了です。
gitもインストールされているので、GitHubやBitbucketなどからcloneするなどしてソースコードをドンドン放り込みましょう。

とりあえずここまでやっておけば、それなりに開発が進められるのではないでしょうか。

で、いくらかかるの?

はい、大事なところですね。

出社したら開発環境を開き(EC2インスタンス起動)、8時間作業をして開発環境を閉じる(EC2インスタンス休止)というルーティーンを1ヶ月で22日行い、EC2からインターネットへのトラフィックが2GB/日発生するとします。

EC2のインスタンスタイプがt2.micro(0.0152USD/時間)なので、

0.0152USD * 8時間 * 22日 = 2.6752USD

アタッチしているEBSが汎用SSD(gp2、0.12USD/GB 月)なので、

0.12USD * 30GB = 3.6USD

トラフィックは、最初の1GBまでが無料で、以降9.999 TBまでは0.114USD/GBなので、

0.114USD * 11GB = 1.254USD

(※いずれも2021年2月時点での料金表に基づきます)

合計すると約7.5USD/月、この辺が最低ラインになりそうです。
動作確認などのためにEC2のインスタンスタイプを上位に変更したりRDSでデータベースを用意したりするなら、もうちょっとかかりそうです。

割と多くの言語もサポート( https://docs.aws.amazon.com/ja_jp/cloud9/latest/user-guide/language-support.html )してるようですし、同一アカウントの他のIAMユーザーと環境を共有してペアプログラミングができたりもします。端末インストール型のIDEのようにインストールする台数分だけライセンスを購入したりすることもありません。

個人的には十分にありかなと思いました。

ファブリカコミュニケーションズで働いてみませんか?

あったらいいな、をカタチに。人々を幸せにする革新的なサービスを、私たちと一緒に創っていくメンバーを募集しています。

ファブリカコミュニケーションズの社員は「全員がクリエイター」。アイデアの発信に社歴や部署の垣根はありません。

“自分から発信できる人に、どんどんチャンスが与えられる“そんな環境で活躍してみませんか?ご興味のある方は、以下の採用ページをご覧ください。

◎ 新卒採用の方はこちら
◎ キャリア採用の方はこちら

この記事を書いた人

きむら
プロダクト開発本部 インフラチーム
きむら

おすすめの記事