yuichi.kotani

CiscoCisco Packet TracerGNS3

ネットワーク機器が恋しくて その2

前回でCiscoの機器をいじり放題になったので、 機器をいじりながらプロトコルの勉強をしていきたいと思います。 今回はARP(Address Resolution Protocol)です。 ARPとは、OSI参照モデルの2層目のデータリンク層の通信をする際に利用するプロトコルで、IPアドレスからMACアドレスを取得するために利用します。 通信相手の識別にIPアドレスを利用する事が多いと思います。 例)PC0(192.168.0.1)からPC1(192.168.0.2)への通信など ですが、実はIPアドレスだけではパケットを届けることはできません。同じネットワーク内にいる機器同士は「MACアドレス」を頼りに通信するからです。 そこで登場するのがARPです。 「このIPアドレスの人は、どのMACアドレスを持ってますかー!?」と聞き回る、ネットワーク界の聞き込み調査員のようなプロトコルです。 さっそく、実際の通信を見ていきましょう。ハブをおいて、PCが複数台つながっているネットワークを用意します。 Cisco Catalyst 2960には特に設定しません。 PCは以下のように設定
yuichi.kotani
yuichi.kotani
4 min read
CiscoCisco Packet TracerGNS3

ネットワーク機器が恋しくて

最近はAWSばかり使っているので、オンプレミスのネットワーク構築はしなくなってしまったのですが、たまにネットワーク機器と戯れたくなることがあります。みなさんも同じだと思います。そんな方には、Cisco Packet Tracerをおすすめします! 「ネットワーク構築と言ったらYAMAHAでしょ!」という方や、「電源をつけたときのファンの音が好きなんだ!」という方は、お楽しみいただけないのでこのブログは対象外です。すぐブラウザの閉じるボタンを押してください。 まだ閉じていない方は、こちらからCisco Packet Tracerをダウンロードしてください。 https://www.netacad.com/articles/news/download-cisco-packet-tracer ※ダウンロードにはログインが必要となるので、無料のアカウントを作成してください。 同じようなソフトウェアにGNS3もあります。こちらを利用するときは、IOS(iPhoneのOSじゃないですよ、Ciscoのネットワーク機器用のOSです)のイメージファイルが必要です。ググるとイメージファイルが転がって
yuichi.kotani
yuichi.kotani
3 min read

Transit GatewayとSite-to-Site VPNで3拠点間通信

Transit Gatewayを検証する機会があったので、記録を残したいと思います。 構成はこんな感じです。 TGW1アカウント、TGW2アカウントがアプリケーションの動作を想定したアカウントになり、TGWDCアカウントがデータセンタを想定したアカウントになります。 データセンタとはインターネットVPNで接続し、TGW1,2アカウントと、データセンタでそれぞれ通信を行う必要があるという想定です。 なので今回の記事では、Transit GatewayでTGW1アカウント、TGW2アカウントの2拠点間で通信させる所を実施して、次回の記事でSite-to-Site VPNを組み合わせた3拠点間で通信させる設定を行っていきます。 Transit Gateway まず、TGW1アカウントでTransit Gatewayを作成して、TGW1アカウントとTGW2アカウント間で通信できるようにしていきます。 TGW1アカウントの作業 VPC - Transit Gatewayを開いて、「Transit Gatewayを作成」を選択します。 特に設定項目がないので、そのまま「作成」を選択します。
yuichi.kotani
yuichi.kotani
5 min read

draw.ioでレイヤーを使ったらAWS構成図が捗ったお話

AWSを使っている方なら、dwar.ioを使って構成図を書く機会が結構あると思います。構成図を書く時のイラッとをなくすレイヤーという機能を知ったのでご紹介したいと思います。え?今更知ったの?そんなの知ってるよ。と言われちゃうかもですが、ご紹介させてくださいませ。 その前に、構成図書く時にどう書いたら良いんだろう、、、となる時ありますよね。参考にしている良い記事あるのでご紹介させてください。今まで結構雰囲気で書いていたのですが、この記事を見てから綺麗にかけるようになりました。 AWSのアーキテクチャ図を描くときに意識していること [https://zenn.dev/k_i/articles/6d76e43aa3bd84] それではレイヤーのお話に行きたいと思います。ECSコンテナを編集したい場合、まずレイヤーを使っていないときは、こうなりますよね。 邪魔なのをどかしてどかして、やっと編集できます。次回すぐ編集できるように最前面に移動することもあるかと思います。これレイヤーを使うとこんなこととはさよならです。 dwar.ioの画面で、表示 - レイヤー と選択してレイヤーウィンドウ
yuichi.kotani
yuichi.kotani
2 min read
GASdatesummertime

GASの日付処理 SummerTimeで涙

Googleフォームで申し込みフォームを作っているのですが、直前に申し込みがあると対応慌ててしまうので、2日後以降に申し込みが出来るようにしています。 GASを日次で起動して、プルダウンの日付を更新する処理を実行してます、処理は以下の感じです。 function myFunction() { const form = FormApp.getActiveForm(); var items = form.getItems(FormApp.ItemType.LIST); items.forEach(function (item) { if (item.getTitle() == '日付のプルダウン') { var listItemQuestion = item.asListItem(); var choices = []; let date = new Date(); date.setDate(date.getDate() + 2); for (i = 0; i < 30; i++) { c
yuichi.kotani
yuichi.kotani
3 min read
visual studio codeGitHubposse

Visual Studio Code de GitHub

今までGitHubはCLIで使っていて、まずはコマンドを覚えましょう!ってお話をしてたのですが、Visual Studio Codeからぽちぽちやってみたら思った以上に便利だったので、CLIあまり使わなくなっちゃいました。 Gitわかりません、コマンドわかりませんというのもあれですので、Visual Studio Codeでしか使えないという状態は良くないと思ってます。便利機能のご紹介という前提で読んでいただければ幸いです。 現在のブランチを確認 左下の赤枠部分に書いてあります -------------------------------------------------------------------------------- ブランチをチェックアウト 左下の赤枠部分をクリック、上の赤枠部分にブランチが表示されます 表示されているブランチを選択するか、テキストボックスに対象のブランチを入力すると検索できます リモートのブランチが表示されないんですけど!という場合は、 フェッチしてから確認すると表示されると思います ------------------------
yuichi.kotani
yuichi.kotani
3 min read
GraphQLLaravelJWT

GraphQL と Laravel で JWT を使おうとしたらハマったお話

何時間もハマったので共有したくてメモしました。あとから考えると、CORSを全然理解できていなかったのがハマった原因でした。 理解している自信ないけどまあ開発できてるし、、、みたいなものはちゃんと勉強しておかないですね。 利用言語とオリジンはこんな感じです フロント 利用言語:Vue(Nuxt)、GraphQL オリジン:https://xxx.posse-ap.com/ バックエンド 利用言語:PHP(Laravel) オリジン:https://api.xxx.posse-ap.com/ フロントとバックエンドのオリジンが異なるので、CORSを意識した実装が必要になりますね JWTのトークン取得からローカルストレージへの保存は問題なく実装できて、 ブラウザのローカルストレージに保管してあるJWTを、ヘッダーに詰めてバックエンドにリクエスト投げるところで問題が出ました。 実装は以下のようにしました const authMiddleware = new ApolloLink((operation, forward) => { // add the authorizatio
yuichi.kotani
yuichi.kotani
2 min read
visual studio codepluginposse

Visual Studio Codeのおすすめ拡張機能

おすすめの拡張機能教えて!と言われることがあるので、まとめてみました。基本こちらの拡張機能をインストールしてみてください!別の拡張機能使っててソッチのほうがいいんだけど。。。という場合は是非教えて下さい! -------------------------------------------------------------------------------- Code Spell Checker 英単語のスペルチェックをしてくれて、おかしいところに波線引いてくれます const firstVallue = 25; のようにValueのスペルを間違うなんてことがなくなります 残念ながら日本語はチェックしてくれないようです -------------------------------------------------------------------------------- Docker コンテナの起動・停止や、イメージ、ボリュームなどを管理出来ます コマンドラインでdocker-compose.ymlの場所に移動して、docker-compose up など
yuichi.kotani
yuichi.kotani
3 min read
dockerexecpeco

pecoでdocker exec を快適にする

Dockerを使って開発していると、docker execすることが結構あると思いますが、地味に面倒なのでpecoを使って簡単に出来るようにしてみました。 pecoを使う前はこんな感じでdocker exec していると思います。 pecoを使うとこんな感じになります。 1文字打つだけでコンテナに入れます、早くて楽で良いですよね。 それでは設定していきたいと思います。 まずpecoをインストールします。 ※今回はbrewを前提にしてますので、brewが使えない場合は別途brewをインストールしてください。(windowsの人はbrewないので手順変わります、ごめんなさい) brew install peco これだけでpecoが使えるようになります。pecoは別のコマンドの結果を受け取って選択できるようにしてくれる、そして選択した結果だけを返してくれるコマンドになります。 pecoが使えるようになったので、次のステップに行きます。 docker exec する際にコンテナIDが必要になるので、docker ps の結果からpecoで選択した行のコンテナIDを取得する。をや
yuichi.kotani
yuichi.kotani
2 min read
AWStransfer familyftp

AWS Transfer Familyで簡単FTPサーバ

FTP???と言われてしまいそうですが、とある案件でシステム間連携をする際にどうしてもFTPで接続したいんです。という要望を頂きまして構築した時のメモです。 DirectConnectで接続した先の環境からのFTP接続なので、通信経路のセキュリティ的な意味ではまあいっか?と。。。こちらで用意したFTPサーバに、システム間連携先のお客様サーバから接続してくるという構成です。 SFTP(もしくはFTPS)に変更してもそんなに工数かからないと思うのですが。SFTPにしちゃえばいいのに。。。というお話はしつつAWS Transfer Familyを使って構築していきます。 サーバを作成を押してインスタンスを作成します。 要件でFTPとなっているので、FTPにチェックを入れて次へ IDプロバイダー(FTPする際のユーザ管理)で、管理は楽にしたいのでサービスマネージドを選ぼうとすると、FTPSとFTPでは選べないと言われます。 早速イライラしながら、DirectoryServiceなんて使ってないので、カスタムを選択します。 カスタムプロバイダー(API GatewayのURL)を聞かれ
yuichi.kotani
yuichi.kotani
5 min read
PHPGASgoogle

PHPからGoogleスプレッドシートにデータを登録してみた

弊社の取り組みで、POSSEという学生プログラミングコミュニティに関わっておりますが、その中で学生に実際の案件に近い形でチーム開発を経験してもらうというカリキュラムがあります。 POSSEについてはこちら https://posse.anti-pattern.co.jp/ 学生がチームに分かれて取り組むカリキュラムになっており、モックアップを作成しながらお客様に要件ヒアリングを行います。その後は開発、テストまで行い、最後にはお客様の要件を満たしているか、プログラムはちゃんと実装できているか、チームで協力して開発できているかなどの基準で良かったチームを表彰します。お客様が実際にほしいと思っているものを作成するので、良いものを作った場合は実際にお客様の会社のサービスとして利用される可能性もあります。 私はメンターとしてチーム開発をサポートする、という立場で参加しております。 学生が要件定義をしている中で、 「作成するサイトで申込みがあった場合、申込みの情報をスプレッドシートに保存したい」という要件がありました。 本当にスプレッドシートが最適なのか、 別の形が良いのではないドか、など学生
yuichi.kotani
yuichi.kotani
4 min read
dockerMySQLjapanese

DockerのMySQLで日本語が使えない!?

Dockerで起動したMySQLで日本語が入力出来ないんです。という質問があったので、内容の確認とその対応についてまとめてみました $ docker run -e MYSQL\_ROOT\_PASSWORD='password' -d -p 33016:3306 mysql $ docker exec -it <CONTAINER ID> bash\# mysql -u root -p Enter password: password mysql> 日本語 とやると、「日本語」が消えてしまう(入力出来ない)というものでした mysql> exit # 日本語 とやっても入力出来ません、これはMySQLコンテナが使っているイメージで、日本語入力が出来る設定がされていないからです ログインしているコンテナで日本語が入力出来ないので、MySQLに接続しても日本語入力出来ません コンテナに日本語入力に必要な設定をしてみます Dockerfileを作成して以下の設定をします #使うDockerイメージ FROM mysql #日本語設定 RUN apt-get up
yuichi.kotani
yuichi.kotani
2 min read