BBH
-Biz Branding Hub-
投稿日 : 
2019/09/01
更新日 : 
2019/09/01

Cloud9とHerokuを連携する方法

Cloud9とHerokuを連携する方法を紹介していきます。
Cloud9とは、AWSが提供するクラウドIDEサービスです。
Herokuとは、Passとして提供されるwebアプリケーションの実行環境です。
これらを連携させることで、Cloud9上で作成したアプリを迅速にHerokuにデプロイして動作を確認することができます。

herokuのアカウント作成

HEROKUからアカウント登録を行います。

HEROKUのサイトに行くと以下のような画面になりますので、必要な項目を入力し、アカウントを作成しましょう。

Herokuアカウント作成方法

アカウント作成を実行すると、登録したメールアドレスにメールが送られます。

メールのリンクをクリックすると、パスワードの設定画面が表示されます。
任意のパスワードを設定しましょう。

以下のような画面になれば登録完了です。

Herokuアカウント作成方法

Cloud9にherokuをインストール

Cloud9上でHerokuのコマンドを使用できるようにインストールを行います。
以下のコマンドを実行します。

source <(curl -sL https://cdn.learnenough.com/heroku_install)

インストールが完了したら、以下のコマンドでherokuのバージョンを確認しましょう。
以下のようにバージョンが表示されればインストール完了です。

heroku --version
heroku-cli/6.15.5 (linux-x64) node-v9.2.1  # 結果(バージョン情報)

Cloud9からherokuにログイン

Cloud9上でのherokuのセットアップが完了したら、次はCloud9上からherokuにアクセスをしてみます。
以下のコマンドでherokuへログインを試みます。

heroku login --interactive

Emailアドレスとパスワードを聞かれるので、先ほどherokuに登録した内容を入力しましょう。

Logged in as [登録したメールアドレス]


のようなメッセージが表示されればログイン完了です。

herokuにSSHキーを設定

今の状態だと、メールアドレスとパスワードがわかってしまえばどこからでもherokuにログインが可能です。
これだとセキュリティ上あまりいい状態ではないので、SSHキーの設定を行います。
この設定を行うことで、herokuに登録したSSHキーを持っていないと接続することができなくなります。

以下のコマンドでherokuにSSHキーを登録します。

heroku keys:add

以下のように「このSSHキーでいいか?」と聞かれたら、Yを入力しましょう。

Found an SSH public key at /home/xxxxxxx/xxxxxx/id_rsa.pub
? Would you like to upload it to Heroku? (Y/n) 

herokuに新しいアプリケーションを作成する

以下のコマンドでheroku上にアプリケーションを動作させるスペースを作ります。

heroku create

コマンドが成功すると、URLが返って来るかと思います。
これが作成されたherokuのアプリケーション空間のドメイン名となります。
試しにURLに遷移してみましょう。
以下のような画面が表示されれば、herokuへのアプリケーションの作成は完了です。

herokuへデプロイを行う

herokuアプリケーションの作成が完了したので、次に実際にherokuにアプリケーションをデプロイしてみます。
デプロイとは、アプリケーションを別のサーバに動作する形で配置することです。
これを行うことで、Cloud9上で作成したアプリケーションをherokuサーバ上で動かすことができます。

herokuにデプロイをするためには、Gitでherokuにリポジトリをプッシュする必要があります。
以下のコマンドで、リポジトリをプッシュします。

git push heroku master

暫くすると、herokuへのリポジトリのプッシュが完了します。
プッシュが完了したら、herokuアプリケーションのURLに遷移してみましょう。
Cloud9上で構築しているアプリケーションが表示されればデプロイは完了です。

Profile

管理人プロフィール

都内でITエンジニアをやってます。
変遷:中規模SES→独立系SIer→Webサービス内製開発
使用技術はその時々でバラバラですが、C#、AWSが長いです。
どちらかと言うとバックエンドより開発が多かったです。
顧客との折衝や要件定義、マネジメント(10名弱程度)の経験あり。
最近はJava+SpringBootがメイン。

Recommend