Tag gcpを表示しています。
2020.8.15 土
何かと便利なgcloudコマンドを使えるようにします。gcloudはGCPのクラウドコンピューティングができることはおよそすべてできるようになっているので大変便利。 Google Cloud SDK のドキュメント | Cloud SDK | Google Cloud まずはMac環境にPythonがインストールされているか確認してください。たいていの場合はすでにインストール済です。 $ python -V Python 2.7.16 次にgcloudでアクセスしたいプロジェクトの確認をします。すでに作成してある場合はその情報を、まだ作成していない場合はプロジェクトを作成します。 公式ページからMac用のgoogle-cloud-sdkをダウンロードします。 https://cloud.go...
2020.8.15 土
HDDがとにかく足りない。画像なんか保存しておくととにかく足りない。ということでGCPのCloud StorageをHDDのようにマウントします。 Mac上にツールをインストール osxfuseをインストール。 $ cd ~ $ brew cask install osxfuse すごい時間かかる。しばらく待つ。 途中でパスワード入力を促されるのでPCのログインパスワードを入力。 🍺 osxfuse was successfully installed! が最後に表示されればOKです。 次にgcsfuseをインストール。 $ brew install gcsfuse これもまあまあ時間がかかる。 インストールが完了したらパスが通っているか確認。 $ gcsfuse -...
2020.3.4 水
KVMのイメージなどからVMインスタンスを立ち上げた際にeth1やeth2に割り振られてしまうときがあります。イメージが元々あったデータセンターでのNICが残ってしまっていて、新しいNICに新しいVMインスタンスが割り当てられてしまうようです。ip aで見てみてると何故かeth2に割り当てられている。 $ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet 192.168.60.20/32 brd 192.16...
2020.2.12 水
ディスクの追加をしたあとにコマンドラインでマウントしないと使えません。 ゾーン永続ディスクの追加またはサイズ変更 コンソールまたはgcloudコマンドでディスクを追加した後に、該当VMインスタンスにログインしてrootユーザーにて以下のコマンドで、ディスクが正しく作られているか確認します。 # sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 10G 0 disk └─sda1 8:1 0 10G 0 part / sdb 8:16 0 500G 0 disk ←これ /devの中にもいるので確認しておくとよいです。 # ls -al /dev ... brw-rw----. 1 root disk 8, 0 12月 2...
2020.1.16 木
GCEのVMインスタンスのHDD容量を拡張する際の手順です。何かとHDDの容量が不足して、いつもこの作業やることになる。 公式ドキュメントはこちら。 ゾーン永続ディスクのサイズ変更 VMインスタンスのディスク拡張 まずはディスクを拡張したいVMインスタンスを確認しておきます。GCPのコンソール上で操作します。GCEのディスクのメニューに移動します。 ディスクに移動して、該当のディスクをクリックします。 詳細ページの上部にある編集ボタンをおして編集ページに移動。 サイズを変更の項目で現行のサイズよりも大きいサイズに変更します。変更したら保存。 コンソールの操作はここまででOK。ディスクをサイズ変更したら、VMインスタンスにログインして、オペレーティング システムが追加の容量にアクセスできるよう...
2019.12.25 水
Cloud DNSはデフォルトでは外部のDNSの機能しかもっていなくて、内部、つまりGCPでいうところのVPC内の閉じたネットワークの名前解決はできないことになっています。自分でDNSサーバーを作成する際にはExternalとInternalでロケーションを分けて記述できるので、当然Cloude DNSでもできるだろうというのがあるのでいろいろ調べると「限定公開ゾーン」というやり方があるようです。 foo.example.comに対して、内部では192.168.0.5(ローカルIP)を引けるようにして、外部では123.456.789.xxx(グローバルIP)を引けるようにするということになります。基本的な外部の名前解決はすでにできるようになっていることが前提で解説します。 foo.examp...
2019.12.24 火
既存のVMインスタンスのイメージを作成して、別のVMインスタンスとして起動するまでの手順です。 日々のバックアップだったらスナップショットを使うのがベストプラクティスです。しかしある程度カスタマイズしてすでに構築してあるサーバーを同じようにもう一台構築したいといった場合にはイメージの作成が向いています。バックアップとしてイメージを使うこともできますが、あんまりスマートではないです。イメージの作成が役にたつのは、 同じVMインスタンスをもう一台作成したいとき。 VMインスタンスの設定・データを含めた完璧なバックアップ。(バックアップできないのはネットワークだけ) 基本的なミドルウエアなどを設定して、VMインスタンスの雛形として使う場合。 などです。スナップショットは基本的には差分を抽出してバッ...
2019.12.21 土
Google Cloud StorageはTransmitでも接続ができます。Amazon S3とほぼ同じプロトコル(なのか、そこらあたりを強引に合わせているのか)はわからないけど、Transmitでも接続できます。 Transmitを利用してGoogle Cloud Storageに接続するには Cloude Storageにアカウントを紐付けます。 アドレスはこれを設定する https://storage.googleapis.com 認証情報は、 Access ID: Secret Key: Cloud Storage の認証
2019.12.19 木
VMインスタンスにCloud StorageをHDDやSSDのようにディスクとしてマウントできます。単にデータ置き場として利用する場合は、VMインスタンスに付属のストレージを使うより安上がりになりますが、内部のプログラム言語の実行や通常ディレクトリ上でできる様々な作業に制限があります。実際は、画像や動画、圧縮したデータの置き場などに使うのが一般的です。プログラムリソースもJavascriptやCSSなどのスタティックなものに限りおいて置いておくことは可能です。私は個人的に外付けHDDっみたいなものとして使ってます。 VMインスタンスの作成 普通にVMインスタンスを作成します。SSHでログインできるようにしておけば取り敢えずOKです。 GCEのアクセス権設定を設定します。Cloud APIアク...
2019.11.27 水
GCPはプロジェクト単位で支払いも権限もすべて別れているので、ぶっちゃけ別のサービスと考えた方がいいぐらいです。なので他のプロジェクト間でのやり取りは基本的にはできません。 イメージへのアクセス権の付与 1. イメージへのアクセス権の付与 現行の作業中のプロジェクト(A)へ別のプロジェクトからイメージをもってくるには、対象になる別プロジェクト(B)に属しているイメージへのアクセスができるようにしないといけません。まずは、別のプロジェクト(B)に属しているイメージへのアクセス権を付与という作業になります。この作業にはオーナー権限が必要です。このアクセス権の付与は、イメージを所有しているプロジェクト(B)のオーナーがイメージを使用するプロジェクト(A)のGoogle APIサービス アカウントに...
2019.11.19 火
クエリログを有効にする SQLの項目に移動して対象のインスタンスを選択し「インスタンスの詳細」ページを開きます。設定セクションの中で、まだ何も設定していない場合は、「データベースフラグが設定されていません」と表示されています。 そのセクションの下部に「設定を編集」という部分から入って、データベースフラグを設定します。 設定オプションの中にある「フラグ」の項目を開いて、データベースフラグを設定します。 × Close log_statement all を設定して、保存します。 ログはSlackDriverに保存されます。 ログの確認 すでに動いているDBであればロギングがはじまっています。まだ開発環境などでアクセスがない場合は確認のためにいくらかサーバーアクセスしておきます。 ク...
2019.11.18 月
VMインスタンスの詳細ページにある「同様のものを作成」するボタンは本来的なクローンではありません。サーバー構成をコピーするだけで中身のストレージデータはコピーされず空の状態になるのでご注意。いわゆる全く同じインスタンスを作成する場合は、スナップショットを利用してVMインスタンスを複製します。 Cloneする スナップショットを作成して個別にスナップショットを反映します。Compute Engienの項目からスナップショットを選択して、スナップショットメニューに入ります。(はじめての場合は「スナップショットを作成する」ボタンを押してすすみます。) Snapshottを作成する スナップショットのメニューにすすんで上部の「スナップショットの作成」をクリックします。 名前で適当なスナップショット名...
2019.11.11 月
Cloud SQLでPostgreSQLを立てた際に、外部からダンプしたデータがリストアできないっていうのがあるので、そのまとめです。ドキュメント読んだらきちんと書いてあった。 何も考えずにダンプデータをリストアすると、 [543004]: [1-1] db=postgres,user=cloudsqlsuperuser ERROR: must be member of role "ROLE_NAME" というエラーでリストアできません。なのでCloud SQLの仕様に合わせてダンプしないとダメです。(ちなみにCloud Shellから権限関連をいろいろこねくりまわしてみたけどダメでした。) 以下の仕様に従ってダンプします。 --no-owner SQL ダンプファイルに所有権の変更コマンド...
2019.11.9 土
プリエンプティブ VMというGCPの空きリスースを利用した実験的な場所を通常のVMインスタンスとは別に格安で利用することができます。おそらくGoogle側の実験的な試みの1つなんだと思います。 最大で24時間起動。(24時間後には強制的にシャットダウンされる) 勝手に停止(プリエンプト)される。 安い(同スペックの通常インスタンスの半額以下、1/3程度) というわけですが、比較的たくさんの使いようがあります。シャットダウンしたインスタンスは“また起動させればいいわけですし、TerraformやAnsibleが使えるなら即座にアプリケーションを立ち上げることもできます。個人で使っているブログ程度のものであれば十分使えるし、テストや試験的な用途ではむしろこっちを使った方が格安です。 ...
2019.11.4 月
静的外部IPアドレスの予約 リージョン指定しない場合は--globalでどこでも使える静的外部IPを指定します。 $ gcloud compute addresses create [name] --global --ip-version IPV4 リージョンが予め決まっていてリージョン指定する場合は、--regionでリージョンを指定します。Terraformで指定するときにあらかじめリージョンが決まっているときなどはこの方法で予約しないとリージョンがないと言われてエラーになります。 $ gcloud compute addresses create [name] --region asia-northeast1 静的内部IPアドレスの予約 $ gcloud compute address...
2019.10.28 月
SSHの接続はいろいろセキュリティー上面倒な部分なので、そこらの部分含めると結構テクニカルなことになってしまうので割愛。 ポートの変更 既存のsshd_configのバックアップとっておきます。 # cd /etc/ssh # cp -p sshd_config sshd_config.org ポートを変更します。コメントアウトしてある場合は、外してください。 #Port 22 ↓ Port 2222 保存してからsshd -tで構文チェックしてください。 再起動。既存ポートでは接続できなくなるので十分注意してください。 # systemctl restart sshd.service
2019.10.25 金
公式ドキュメントはこちら。 Cloud SQL にデータをインポートする
2019.10.23 水
PostgreSQLのダンプとリストアは比較的mysqlライクなので、そんなに戸惑うことはないのですが、多少違うところ含めての備忘録です。 pg_dumpコマンド pg_dumpは以下の二種類の方法でdumpができます。 スクリプト形式(デフォルト) リストアに必要なSQLをそのまま吐き出してくれるダンプ方法です。psqlコマンドでそのままリストアできます。いわゆる普通のダンプ方法なのでデバックはしやすいです。 アーカイブ形式 バイナリの形で出力されます。リストアはpsqlコマンドでなくpg_restoreコマンドで行います。アーカイブ形式のは、指定したtableのみを選択してリストアできるというのと、データベース(テーブル)自体が巨大なデータの場合は圧縮して出力できるという利点あり。ダンプ...
2019.10.20 日
Cloud SQLはVMインスタンスなどとちょっと勝手が違うので備忘録的なメモ。 TerraformのAPIのDocumentはこちら。 google_sql_database_instance 正しい書き方にも関わらず以下のようなエラーが出るときがあります。 Error: Error, failed to create instance master-instance: googleapi: Error 403: Cloud SQL Admin API has not been used in project xxxxxxxxxxxx before or it is disabled. Enable it by visiting https://console.developers.goo...
2019.10.20 日
GCPのVMインスタンスはIAMで登録したユーザーが自動的にVMインスタンスのユーザーとして登録されるようになっているのだけど、デフォルトでは誰でもsodo suできるようになっている。sudo suできるユーザーを限定するには、/etc/sudoers.d/google_sudoersを修正します。修正間違えるとログインできなくなるので注意。 #%google-sudoers ALL=(ALL:ALL) NOPASSWD:ALL username ALL=(ALL) NOPASSWD: ALL 既存のgoogle-sudoersの行をコメントアウトして、許可するユーザーを個別に書いてあげればOKです。これでsudo suとsudo自体が使えなくなります。
2019.10.19 土
AnsibleでSSHの基本的な設定をします。ホストに接続できるようになっていることを前提としています。接続シていない場合は、対象のマシンに接続しておいてください。 Ansibleのインストールと基本的な使い方 SSHの設定 SSHの設定は、 チェック (ドライラン) $ ansible-playbook --check -i inventory/hosts sshd.yml 実行 ansible-playbook -i inventory/hosts sshd.yml Ansible でSSHのセキュリティ設定
2019.10.17 木
やり方がものすごいたくさんあるので、あれなんですが、典型的な使い方のみここで紹介します。ここでは設定方法にGCP Consoleを利用します。Terraformやgcloudコマンドなどの設定方法はまた今度。 GCPの対象のプロジェクトにログインし[Strage]→[ブラウザ]とすすみます。 ACLを変更する対象のオブジェクトに移動します。公開アクセスの部分が非公開になっている場合は第三者から見ることができません。 × Close 第三者から見た場合は、401のエラーを返します。 (ただし、閲覧権限のあるオーナーなどでGoogleにログイン中は、URLにアクセスすると閲覧が可能になっています。一度ログアウトしてからURLアクセスしてみてください。) error errors 0 ...
2019.10.1 火
GCPはやれること多すぎて知見がないと、すべてただのトラブルです。 SSHが接続できない チェック項目 メタデータにそもそも公開鍵を登録していない。またそのユーザー名も確認しましょう。 「プロジェクト全体の SSH 認証鍵をブロック」という項目にチェックが入っている。(チェックを外して保存しても、また元に戻ってしまって外せないことがある)
2019.9.30 月
Compute EngineのメタデータからSSHKeyを登録する。 VMインスタンスを作成する。 FWの設定をする。
2019.9.30 月
既存のVMインスタンスの設定をterraform側に還元できるというやつです。ぶっちゃけimportの意味がよくわからなくなります。 公式ドキュメントはこちら Import Usage v0.7.0以降のterraformで可能な機能で、ここではGCPでもってTerraform v0.12.3で説明します。 公式では構成ファイルを作成するには至っておらず、状態のパラメータのみをjsonで吐き出すとのこと。手動でtfファイルを作らないといけない作業は残りますが、これはそうとう便利になったということができます。https://www.terraform.io/docs/import/index.html インポート Terraformは、既存のインフラストラクチャをインポートできます。これにより...
2019.9.24 火
Terraform for GCPの目次 Terraformを使ってみていろいろな側面が見えてきたので、Terraformとはを含めて諸々書いてゆきたいと思います。 Terrafromはクラウドサーバー構築のAPIで、いわゆる設定ファイルを読み込んで実行するだけで今までポチポチと管理コンソールで行っていた設定を一気に実行できるという利点がまずあります。とはいえインフラストラクチャーをコマンド上で実行するのは非常に抵抗があるという方は冪等性という概念を一度理解してあげるとそこそこ安心するのではないかと思います。またこの「設定ファイルを読み込んで実行する」というのは、設定ファイルをgitなどで管理できて、その変更履歴を常に保存できるという利点もあります。そしてこれはインフラ構築のパラメータ管理を...
2019.8.28 水
人物 × Close ルネサンス期を代表する芸術家であり、「飽くなき探究心」と「尽きることのない独創性」を兼ね備えた人物といい、日本の美術史では「万能の天才」といわれている[1]。史上最高の呼び声高い画家の一人であるとともに、人類史上もっとも多才の呼び声も高い人物である[2]。アメリカ人美術史家ヘレン・ガードナー(英語版)は、レオナルドが関心を持っていた領域分野の広さと深さは空前のもので「レオナルドの知性と性格は超人的、神秘的かつ隔絶的なものである」とした[1]。しかしながらマルコ・ロッシは、レオナルドに関して様々な考察がなされているが、レオナルドのものの見方は神秘的などではなく極めて論理的であり、その実証的手法が時代を遥かに先取りしていたのであるとしている[3]。 1452年4...
2019.5.23 木
実行環境の確認 python2で動くAnsibleですが、python3でもサポートしているようです。何かとアップデートが早い時代なので、新しいものにしておいた方がよいかもしれません。 Python 3 Support Ansibleの基本概念 インベントリ(inventory) インベントリは構成管理をする対象ノードへの接続情報を記載したもの。 デフォルトでは /etc/ansible/hosts だが、環境変数 ANSIBLE_HOSTS を設定したり、-i オプションでhostsファイルへのパスを指定可能です。 モジュール(module) モジュールはユーザーを作成したり、ファイルをコピーしたりするもので、多くは冪等性が保たれたものとなります。基本モジュールをそのまま利用するだけで大抵...
2019.5.8 水
GoogleアカウントとG-Suite GCPはGoogleアカウントが最低一つあれば利用することができます。フリーのGoogleアカウントを取得(またはすでに持っていたら)GCPの無料枠でもってすぐにVMインスタンスを立てて使うことができます。が、いずれにしろ大きなプロジェクトになってくると複数の人間または組織で仕事をすることになるので、アカウントの数や権限を管理しなくてはならくなります。まずGCPは「プロジェクト」という単位で管理します。これは一つのネットワークセグメント単位であり課金請求の単位であり、参加アカウントの単位となります。つまりGoogleアカウントでGCPを契約するとそのアカウントを基準に複数のプロジェクトを立てることがで、このプロジェクトはそれぞれ全く個別の契約という性格...
2019.4.19 金
ここではお名前.comで取得したexample.comというドメインであると仮定して説明しています。 まずは以下のドキュメントを読んでおきましょう。 Cloude DNS クイックスタート Cloude DNS 概要 Cloude DNSの構築手順 GCPにログインしてから、「ネットワークサービス -> CloudDNS」を開きます。以下のような初期画面が出てきます。