GoogleComputeEngineとのファイルやりとり
2017/11/24
GoogleComputeEngine(GCE)とファイルをやりとりする必要があったので方法を調べてみました。 gcloud compute scpでGCEとのファイルのアップロード/ダウンロードが行えます。 gcloud compute copy-filesでもファイルコピーが行えますが、非推奨となっているのでgcloud compute scpコマンドを使うのがいいようです。 ローカルのカレントディレクトリにあるファイルを、GCEの/tmp配下にアップロードするには以下のコマンドで行えます。 gcloud compute scp ./gokuhi.txt gce_server:/tmp/ 逆に、GCEの/tmp配下のファイルを、ローカルのカレントディレクトリにダウンロードするには以下のコマンドです。 gcloud compute scp gce_server:/tmp/gokuhi.txt ./ 公式ドキュメントにも記載されている通り、gcloud compute scpにもいろいろとオプションが用意されていますが、単純なファイルアップロード/ダウンロードであればオプションを付けなくても簡単に使うことができます
DockerコンテナでDjango
2017/11/05
はじめに Dockerコンテナ上にDjangoの開発、実行環境を作りたいなぁ、と思ったので構築メモです。 Dockerエンジン自体はGoogleComputeEngine上で動かしています。 今回は、GCPのプロジェクトが作られている前提で説明を進めていきます。 GCEの仮想マシン作成などはWebUIからも作成できるのですが、説明が面倒くさいので今回はCloudShellからGCE仮想マシンを作って行きます。 CloudShellは、GCPのリソースを管理できる仮想マシンで、GCPのプロジェクトを作成していれば無料で使用することが可能です。 CloudShellの詳細は以下公式ドキュメントを参照してください。 Google Cloud Shell ドキュメント 今回、3つの仮想マシンを操作するので、混乱しないようにプロンプトに仮想マシンを示すようにしています。 使用する仮想マシンは以下の通りです。 項目 説明 CloudShell GCPで標準で提供されている仮想マシン。 HostMachine DockerEngineが稼働する仮想マシン。OSはCentOS7です。 Container 実際にDjangoが動くDockerコンテナ。OSはCentOS7です。 全体的な流れ GCEでCentOS7を作成、SSHで接続 docker導入 Dockerfile作成 Dockerイメージとコンテナを作って接続 djangoプロジェクト作成、allowhost設定 django開発用サーバ起動 ブラウザからアクセス GCEでCentOS7を作成、SSHで接続 以下コマンドで、GCEをのインスタンスを作成します。 後半で必要になるので、作成したインスタンスのEXTERNAL_IP(外部IP)を控えておいてください。 その後、インスタンスに対してSSHで接続します。 (CloudShell)$ gcloud compute instances create example-name --tags http-server --zone asia-east1-a --image centos-7 (CloudShell)$ gcloud compute ssh example-name GCEインスタンス作成時に使用したオプションは以下の通りです。 オプション名 記事内の値 説明 INSTANCE_NAMES example-name GCEインスタンス名です。オプション名は指定する必要がありません。 zone asia-east1-a GCEインスタンスを作成するゾーンを指定します。指定しないと、対話形式でゾーンを指定することになります。 tags http-server GCEインスタンスに適用するファイアウォールを指定します。今回はHTTPでの接続を許可するファイアウォールを指定しています。 image centos-7 GCEインスタンスの元イメージです。デフォルトではdebian-9が指定されています。 docker導入 以下コマンドでDcokerをインストールし、有効化します。 (HostMachine)$ sudo yum install -y docker (HostMachine)$ sudo systemctl start docker (HostMachine)$ sudo systemctl enable docker Dockerfile作成 以下の通りDockerfileを作成します。…
CloudShellでのブログ執筆環境
2017/10/17
ブログ環境 こんにちは、ブログを再開した@foresukeです。 実は諸事情によりメインのPCをChromeBookを使っています。ChromeBookはブラウザと、Androidアプリしか使えない端末です。なので基本的にはネットワークに接続していることが前提となっており、スタンドアローンではまともに使うことができません。 本ブログは、hugoと呼ばれる静的サイトジェネレータで構築しています。静的サイトジェネレータについては以下のサイトに詳しく書かれているので、ここでは省略します。 脱WordPress!静的サイトの特徴やメリットなどのまとめ 静的サイトジェネレータの運用方法としては、ローカル上でhtml/cssファイルを生成し、webサーバにアップロードして公開する、といった流れを繰返すことになります。 僕がChromeBookを使っており、ローカル上でhtml/cssファイルを生成できないので、GoogleClougShellをローカル環境として使うことにしました。 CloudShellはDebianベースのGoogleComputeEngineに開発ツールがインストールされた状態で提供される仮想マシンで、ブラウザから手軽にアクセスできる環境です。がっつり開発するには向きませんが、手軽な開発ツールとして重宝しています。 Debianベースということもあるので、勉強がてらvimを使おうと四苦八苦していましたが、CloudShellにクラウド版エディタがベータとして提供されたので使ってみました。 クラウド版エディタでmarkdownファイルを編集したところ、画面の右側にプレビューがリアルタイムで表示されました。 これはなかなか便利で、ブログ記事を書くのはクラウド版エディタで充分な感じです。 まだ改善の余地はありますが、いい感じにブログ執筆環境ができたので、細々と書いていきます。