エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

【GCP】インスタンスグループやGCEのIPアドレスを固定【418日目】

インスタンスのIPが変わる

GCPは、インスタンスひとつひとつに外部ipアドレスが割り振られます。

GCEでインスタンス立ち上げて、apacheインストールですぐサイトが表示出来る!

でも、このインスタンス、立ち上げるたびにipアドレスが変わります・・・
インスタンスが落ちたりすると、ipアドレスが変わってしまいます・・・

これじゃ、独自ドメイン取っても、ipアドレスが固定できないから意味がない!!!

どうしよう(´;ω;`)

ipアドレスを固定しよう

ということで、インスタンスipアドレスを固定することができます。

ipアドレスの予約をしてみましょう。

やり方

  1. GCPのコンソールに入る

  2. メニューからVPCネットワークの中の外部IPアドレスを選択

f:id:willow710kut:20181206000443p:plain

  1. 上にある、静的アドレスを予約を選択

  2. 名前つけて、ipv4選んで、下のリージョン選んだり、、、

f:id:willow710kut:20181206002926p:plain

  1. 接続先に、自分が立ち上げてるインスタンスが指定出来るので、固定したいインスタンスを選択

  2. 予約を選択

これでよし!

料金

インスタンスに紐付ければ、お金はかからないです。

ただ、インスタンスに紐付けないのに、IPアドレスは予約とかはだめ。

何も使わないのにこのIPアドレス独占ーとかされたら、みんな困っちゃうよね。

おしまし

あとは、DNSIPアドレスドメイン紐付けるなどしちゃって、いい感じに扱っちゃいましょう!

【勉強会】第二回ボトムアップドメイン駆動設計【417日目】

第二回ボトムアップドメイン駆動設計

https://ddd-community-jp.connpass.com/event/107106/

行きました!

雑多な感想。

値オブジェクト、エンティティ辺りは最低限理解したい。
メモにある、不変等の定義をよく見ておこう。

それ以外は、自分の今のプロジェクトに近いものがあると思った。

レイヤードアーキテクチャ、今の私の実装と合わせて、自分のプログラムと照らし合わせよう。

あと、DDDを完璧に理解しなくても、細かなテクニックを学ぶことだけでも出来そうだった。ただ、一番は本読むことだな……あくまで、今回の話は本の入門。

てか、この実装の話知らずに本読むのやっぱりむずくない!?

Twitterまとめ

【個人サイト制作記1】GCPを使ったLaravel環境構築まで【416日目】

個人サイトを作ってみよう

http://nyamucoro.com/nyamucoro.com

ってことで、作ってます!

その過程でなにをしたかを少しずつ書いておきます!
こんな感じに作ったのかーとか、これじゃまずくね?みたいなご指摘とか。
ほっこり楽しんでもらえると嬉しいです。

私としては、これがメモ。またサーバー使うときにこの記事使う予定!

やりたいこと

Laravelでサイトを表示させる

環境構築

1.GCPのサーバーインスタンスであるGCEのインスタンス作ります

【GCP】Google Compute Engineでサーバー立ち上げ→ページを表示するまで【379日目】 - エンジニアのひよこ_level10

2.OSをdebianにしていろいろインストール

(めっちゃたくさんコマンドある。debianよりRedhat系の方が記事多いと思います)

【debian】Laravel環境構築。サーバーコマンドメモ【386日目】 - エンジニアのひよこ_level10

3.インスタンスIPアドレスを固定

【GCP】インスタンスグループやGCEのIPアドレスを固定【418日目】 - エンジニアのひよこ_level10

4.お名前.comで独自ドメイン取得して、インスタンスにIP紐づけ

【GCP】お名前.comとCloud DNSの連携【385日目】 - エンジニアのひよこ_level10

5.CloudSQLでMySQLインスタンス作る

【GCP】CloudSQLでMySQLインスタンスを立てる【411日目】 - エンジニアのひよこ_level10

6.MySQLにユーザーやテーブル作る

【MySQL】最初に設定したいDB作成とユーザー作成【413日目】 - エンジニアのひよこ_level10

7.GCEとMySQLを同一のネットワークに設定する

【GCP】GCEやCloudSQLを、共通のVPCネットワークで繋ぐ【419日目】 - エンジニアのひよこ_level10

8..envファイルにMySQLインスタンスipアドレスやユーザーを設定する

9.いい感じに表示されたー

これから?

静的にサイトを作って、そこから少しずつ動的にしてきます。

次は静的にサイトを作ったお話。

【一週間振り返り】ニコ生等いっぱいいろんな挑戦できた一週間でした【415日目】

1.今週一週間の感想(ざっくり)

いろんな挑戦ができた一週間でした!

2.良かったこと

1.自作サイトがめっちゃ更新できた

2.GCP+CloudSQLの接続ができた

3.ニコ生プログラミング大成功!いい感じ!視聴者に助けられた!

3.もっとこうしたかったこと

特になし!

どころか、思ったよりいっぱいいろんな事できたよ!いい一週間でした!

4.新しく気づいたこと

やればなんかいろいろできる。
アウトプットすると、誰かに助けてもらえる。

あと、プログラミング仲間に植えている人は、私もそうだが結構いる。

5.来週したいこと

OCRの勉強忘れてたけど、優先度低めなので、チケットは残そう。

とりあえず、サイト更新と、ニコ生更新を続けるのを目標。
最初の一週間が大切。頑張る!

6.その他

やっぱり、ネットあったかい・・・

悪意のある人もいるけど、それを耐えれば、有益なこと多いし、助けてくれた人に感謝!

そのために頑張り続けたい所存。

【バーチャルキャスト】VRプログラミングはじめました【414日目】

バーチャルキャスト内でプログラミング???

バーチャルキャストでプログラミング

何したの?

バーチャルキャストを使って、生放送をしたのですが、

その時に画面共有を使って、視聴者にも見える形でプログラミングしました。

何がいいの?

いつでもどこでもペアプロ!モブプロ!ライブコーディング!

あと、私のアバターがすみっコにいて、そこでお話できる。

もくもく会と一緒で、誰かに見られてるとやる気出るよね!

ニコ生のコミュニティ

throw new NOException('のえこみゅ');-ニコニコミュニティ

これからは?

定期的にやる予定。出来ればブログのように続けたい。

ブログもここで書けばいいしね。

ブログと違って、機材が必要なので毎日とはいかないですが、頻度高めでやっていきたいです。

よかったら、私と一緒にもくもく作業やりませんか?

【MySQL】最初に設定したいDB作成とユーザー作成【413日目】

こんなとき困るよね

最初にMySQLインスタンス作りました。

Laravelとかプロジェクトに合わせてDBスキーマ作成したい。
該当スキーマに対してだけアクセスできるユーザー作りたい。

・・・コマンドなんだっけ。

ってことで備忘録的にまとめ。

コマンド

create database `db-name`;
grant all privileges on `db-name`.* to user_name identified by password; 
flush privileges;
  1. DB作成
  2. そのDB好き勝手触れる権限を付与したユーザー作成。
  3. 設定の反映

ホストとかはワイルドカードにして、どこからでもアクセスできるように。

この2つだけひとまず。
このユーザーとパスワードを、Laravelの.envとかに書くやつですね。

お疲れ様でした。

【GCP】CloudSQLで作ったインスタンスに、ローカルからアクセスしたい【412日目】

こんなとき

Cloud SQLを使ってMySQLを作りました。

その上で、開発中等にMySQLWorkbenchなどのアプリケーションでアクセスしたい。

ドキュメント

基本的にはここを参照。

ローカルテストにプロキシを使用する場合のクイックスタート  |  Cloud SQL for MySQL  |  Google Cloud

こちらの記事は、備忘録+アプリケーション側での使い方も説明。

1. Cloud SQL API を有効にする

ヘルプページにある、ENABLE THE APIをクリックすると、以下のようなページに飛ぶ。

そして、MySQLインスタンスを作ったプロジェクトを選択。

f:id:willow710kut:20181128164308p:plain

次へを押していけば設定できます。
途中、認証がどうたらでエラーが出るかもですが、無視しても大丈夫です!

2. 必要なものをインストール

ここはヘルプページに説明をお願いしようと思います。

基本的には、gcloud、cloud_sql_proxyのインストールをしましょう。

プロキシを開始する

どのインスタンスに接続するか、インスタンスの接続名を取得しておいてください!

で、先程インストールしたcloud_sql_proxyを 実行します。

./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:3306

ここで、注意。

Listening on ~って書かれたら、今実行中ってことです。そのままにしておいてください。

ドキュメントをちゃんと読めばわかりますが、このcloud_sql_proxyがやっていることは、
127.0.0.1にアクセスしたときに、さっき設定したSQLインスタンスに接続を切り替えてくれるような仕組みです。

アプリケーションで接続

ここからは、ドキュメントにないやつですね。

さて、アプリケーションでの接続ですが。必要な情報は、

ホスト名・ユーザー名・パスワード

ですね。このホスト名ですが、先程書いたように、127.0.0.1を選択してください。

そして、ユーザーとパスワード。人によっては、ユーザーはrootかもしれないですね。

cloud_sql_proxyが動いている状態で、127.0.0.1にアクセスするとなんと!該当のSQLインスタンスに接続ができます。
満足したら、cloud_sql_proxyは、ctrl+Cとかで終わらせてあげてくださいね。

コマンド打つのが面倒

そんなあなたに。

.bash_profileにこんな感じのこと書けばいいんじゃないかな

alias gmysql='~/y/cloud_sql_proxy -instances=xxxxxx=tcp:3306'

cloud_mysql_proxyのパスや、インスタンスの接続先は自分の環境に合わせてくださいね。

これでターミナル再起動なりすれば、gmysqlのコマンド一発でプロキシ起動できますね。

お疲れ様でした!

【GCP】CloudSQLでMySQLインスタンスを立てる【411日目】

GCPMySQLを用意したい

ということで、GCP上でMySQLを使えるようにしましょう。

やり方

  1. メニューから、SQLの項目をクリック
  2. インスタンスの作成を選択
  3. データベースエンジンの選択 (今回はMySQLを選択)
  4. インスタンスタイプの選択 (MySQL第2世代を選択。料金形態や性能が違います)
  5. 基本設定。詳細は次で。

f:id:willow710kut:20181128160218p:plain

f:id:willow710kut:20181128160258p:plain

MySQLインスタンスの基本設定

  1. インスタンスID
  2. 初期にあるrootユーザーのパスワード設定。困ったら右に生成ボタンが。
  3. ロケーションの設定。極力、使うインスタンスに近いようにしましょう。私はasia-northeast1(日本はここに所属)を選択。
  4. 設定オプションを表示で、詳細な設定。スペックを下げたりもできます。私は今回はそのまま

f:id:willow710kut:20181128161451p:plain

作成で完成!

しばらくするとインスタンスの生成が行われます。

設定を変えていなければ、パブリックipが割り振られていますが、 許可するipの指定等しなければ、アクセスができないようになっています。
Cloud SQL Proxy等のプロキシ経由や、同ネットワーク内で接続しましょう。

また、rootユーザーの設定はあるので、必要に合わせてユーザーの作成をしておきましょう。

もし、MySQLWorkbench等外部アプリケーションを使ってアクセスしたいときは、次の記事を見てみてください。

お疲れ様でした。