プログラミング環境構築の時間節約
プログラミングをキャッチアップする上で Amazon が買収して今は EC2 の一部になっている Cloud9 がめちゃくちゃ便利であることを知った(今気づいた私は出遅れ?)。Ruby on Rails https://railstutorial.jp/ の参考書籍に書かれていたことで初めて知った(プログラミングの勉強がきっかけなのにプログラミング自体ではない気づきも多い、他にも同じようなことってありますよね?)。上流工程や運用に携わっていて開発から離れていると知る機会がないひとも多いと思う。旧態依然の知識のままだと何かするにも時間と手間がかかるものだと実感した。ちなみに EC2 とは AWS と言ったら大方の企業では EC2 を指していることが多く、Windows, Linuxなど(の従来型オンプレサーバー)をクラウドで動かす環境。他にもメジャーなAWSのクラウドサービスとしては各種データベースサーバーがすぐに作れる RDS , ファイル置き場・データレイクとしての S3, データウェアハウスとしての Redshift が有名。元々AWS上のWindows Serverの構築勉強で個人契約の管理者アカウントは持っていたので、追加して使ってみた。
Cloud9の利点:
・メジャーな言語であるGO, Ruby, JavaScript, python... などなどは既にインストール済ですぐにブラウザ経由で使える環境になっている!(go version, node -v, python -V, npm version, ruby -v などなどでバージョン表示ができる, Ruby on Rails は上記の参考資料を基に構成が必要だがかなり楽, 自分のmacにわざわざインストールした時と比べると時間は9割削減できた感じ)
・Linuxのルート権限をそのまま使えるようなので、基本的に自由にコマンド操作ができる
・アカウント登録した初期は(EC2としてサインアップ無料枠を持っていれば)無料枠を適用して使える(下記選択肢に注意)、他のEC2と合わせて無料枠超過分は課金されるので注意
・ブラウザで開発しテストできるので、Cloud9に繋がりさいすればMacやWindowsの混在、仕事とプライベートのPC混在、PCのディスクやパフォーマンススペック不足などを気にする必要がヘビーユーズでなければ大方なくなる(スマホのブラウザでも動く)
・通常のEC2なら設定しないといけないセキュリティグループやIP割当を意識することなく、マウスクリックのスイッチオンでブラウザ・URLですぐにつなげることができる(これは良い!)
・Cloud9のEC2 のインスタンスはブラウザ切断するなど活動がなくなったのを自動検知し、自動で電源ON/OFF される設定ができるので(下記Cost-saving setting)、状況により自らAWSコンソールでサーバーを停止しなくてもコスト削減ができる(ただし再度接続する際に起動に時間がかかる)、挙動の確認をした限りではブラウザを落としたら次のブラウザ再接続時には元あった状態に復帰している(これは便利)
欠点:
・AWS上で構築した開発環境(EC2, Cloud9)を容易に他のシステム(自らのPCなど)に移行するのは無理と思った方が良い(いらなくなったら完全にディスク(ボリューム)削除、AWSに何かしらいる間は電源がついていなくても最低限ストレージ費用(ボリューム費用)は払い続ける必要あり、無料枠がなくなってしまうと課金が開始される、これはCloud9ではない他のEC2でも言えることで積極的に使うにはそれなりの覚悟が必要)
・無料枠でも使える安いEC2リソース(例:t2.micro)だとパフォーマンスにそれなりに限度がある、その他の制限は下記リンク先参照
・英語のみ、日本語は期待しないこと
作り方
バージニアデータセンターで作成する場合のリンク(他のEC2と異なり、リージョンの選択肢はあまりない、基本はココにしている人が多いはず):
https://us-east-1.console.aws.amazon.com/cloud9/home?region=us-east-1
東京データセンター(2019年春から稼働)で作成する場合のリンク:
https://ap-northeast-1.console.aws.amazon.com/cloud9/home/create
t2.microで作成しないと無料枠があっても適用されない!
サーバー作成後、
https://console.aws.amazon.com/cloud9/ide/xxxxxxxxx のようなURL が発行されるので、それでつなげるだけ!
https://console.aws.amazon.com/ec2/home
で作成したEC2インスタンスの確認ができる(場合によって画面右上のリージョンを切り替えないといけない(東京で作成した場合、東京を選択しないと表示されない))
開発言語サポート状況
https://docs.aws.amazon.com/ja_jp/cloud9/latest/user-guide/language-support.html
バッチの実行(Runner)の言語切り替えとして次のような選択肢があり:
制限
料金
EC2の料金はサーバーのアップタイムとストレージ費用(ボリュームと呼ばれているもの)があります。サーバーアップしなくてもストレージ費用(ボリューム費用)はかかります。
https://aws.amazon.com/jp/cloud9/pricing/