Kubernetesハッカソンに参加してきた

初めに

みなさん、こんにちは。オンプレでKubernetesを構築して挫折した id:unimarimoです。今回MicrosoftのてらだよしおさんがAzure Kubernetes Service(以下AKS)を用いて無料の範囲内でできることを、ハッカソンとして開いていただきそれに参加したことについてのブログです。

1日目

1日目です。最初はチームで分けることになりました。私はKubernetesを何度か触れたことがあるので触ったことのあるチームで参加しました。もう一つのチームはKubernetesをあまり触ったことがないチームと別れてハッカソンを開始しました。最初に冒頭で説明した通りオンプレでのKubernetesの環境を構築して壊れました。私はこの時点で長く険しいKubernetesとの戦いが始まるのだろうと思っていました。しかし、AKSが優秀すぎて構築をGUI上でぽちぽちするだけで構築ができることに驚きました。踏み台サーバを構築して、わずか10分程度でクラスターを作成することができました。次に、クラスター内にノードを作成しました。masternodeとnode1の2台構成です。そして最初に作成したコンテナイメージはNode.jsで書いてHelloWorldをcurlで叩いて返すものでした。実際にこれをAKSでコンテナレジストリーを作ってそこにimageをpushしました。次にこれをpodという最小単位でデプロイします。最初に行ったのがDeploymentでpodを作成しました。これでCurlで叩けばHelloWorldを返してくれます。オンプレのとき環境壊れてしまってここまで行けてなかったので感動しました。次にServiceでのpodのデプロイです。今回は二つ作りそれをデプロイしました。これで興味深かったのでlavelのversionを指定しないでcurlで叩くとLoadbalncerのように別々のPodのHello World-v1,Hello World-v2が帰ってくるのが面白かったです。ちなみにlabelのversionをすればその指定したものしか帰ってこないのもこんなに手軽にできることに驚きました。ここでひとまず1日目は終了です。Kubernetesの素晴らしいところとAKSの素晴らしいところが見れました。

2日目

2日目です。この日は最初にチームですることを決めました。することとしてはlog調査について行いました。logの調査はコンテナ内のlogファイルはどうするのかと思っていましたがAKSで確認することができるようで、なんとクエリを書くだけでそのlogファイルが見えるようです。本当にAKS便利だなと実感しました。次にKubernetesのCI/CD周りについてです。私自身CircleCIなどと合わせて使うものだと思っておりましたし、KubernetesのCI/CD一体どうやるんだっと思っていました。しかし、Azure DevOpsによってその問題は解決しました。やってもらえることとしてはCIの機能とデプロイ機能の両方をやってくれます。私自身CirlclCIを使用するとき自分でyamlを書いてテストをしていましたが、Azure DevOpsはGUI上でWorkFlowを決めることができるので使用者に対してインフラ周りのことを気難しく考えなくていいのがいいですね。次にKubernetesへのデプロイです。これもほとんどGUI上で行うことができます。一部yamlを書かなければなりませんが使用者へのストレスがあまり感じられませんでした。ここまで完成されたことをAzure DevOpsは機能をほぼ無料で使えるそうで、人数も5人までなら課金する必要性がないそうです。

まとめ

以上2日間のまとめを書きました。上記以外にもやったこともありますが一部理解が足りてなくて間違えている部分もあると思いますので教えていただけると幸いです。今回初めてではないですが、こんなに深く長くクラウド技術に触れたのは初めてでした。私の知らないことだったり、すでにある知識も深められたりなどとても充実したハッカソンでありました。また、沖縄でKubernetesの詳しいお話、ハンズオンなどもなかなか見つけられず今回参加できたことは大きかったです。これを気にクラウドサービスを無料の範囲内で使用したいと思いました。最後に、一緒にチームだった方、Microsoftのてらだよしおさん、今回のハッカソンに関わった方に深くお礼を申し上げます。以上でこのブログの記事は終わろうと思います。

最後

オンプレでのKubernetesチャレンジは時間が許す限りしていこうと思うので何か進展があったらブログに残そうと思います。ありがとうございました。

#hatenatechに途中参加してきた

北海道から帰ってきた

北海道から帰ってきたらはてなのpapixさんとcohalzさんがはてなmeetupがあったので途中参加ですが参加してきました。

2部からの参加

お話をしていただけたのですがかなり疲れていたのでところどころ忘れていると思いますのでご了承ください。

お話の内容としては主に技術系のお話が2部からなので多かった印象でした。特に印象に残ったのはcohalzさんのお話でした。私自身最近(技術的な方で)成長できているのかどうかという不安がありました。そこで、高校生の頃からコードを書いているとおっしゃていたので長い期間プログラミングしててすごいとなりました。また、手をうごしてものだけが世界を変えるとおっしゃていたのは間違いないと思います。それを頭に置きながら手を動かして行きたいと思います。

終わりに

拙いブログですがここで終わりたいと思います。技術的なお話の部分を書きたいのですがその時完全に疲れていたので間違ったものを書きたくないのでここでは控えようと思います。

次回、沖縄でHatenameetupがあったら参加したいと思います。短いブログですがここで終わりたいと思います。ありがとうございました。

Hardening II SU に参加してきた

はじめに

おひさしぶりの投稿です。id:unimarimo です。Hardening II SU に参加してきました。場所は北海道で行われました。沖縄から北海道に行くのと北海道にいったことがないことに不安を抱えながら行きました。

北海道1日目

北海道1日目はほぼ移動でした。昼の2時から飛行機に乗り5時過ぎくらいに北海道の新千歳空港に着きました。その後快速に揺られながら「沖縄と植物全然ちげぇし涼しぎわろた」などと言いながらテンションアゲアゲでした。そのあとAirbnbでとった宿をとっていたので荷物を置き各々のチームのミーティングに行きました。ミーティングでは主に前日に配られる資料を読み合わせしながらHardeningの当日のための対策を練りました。ちなみに、ここで10時くらいに居酒屋に行ったのですが最高に北海道の食べ物うまかったです。カレイの丸揚げとか最高でした。

北海道2日目

北海道2日目はHardeningの当日です。まず一番目の課題は朝が早いとうことです。入場開始は8:30なので早起きチャレンジでしたが無事に起きました。そして会場について入場しました

f:id:unimarimo:20190708115428j:plain

そして会場ついてからはHardeningの実行委員会の方からの説明があって、10時くらいに競技が開催されました。最初の1時間は競技環境に入ってパスワードの変更などを行い競技環境がどのようになっているのかを観察しました。2時間目からkuromame6からの攻撃が開始しました。パスワードの変更が終わらず一つのサーバは乗っ取られてしまいました。3時間目からは基本自分のチームでは攻撃をどのようにして防ぐかよりもサービスが停止しないことに努めました。

自分たちのチームは学生がほとんど締めるチームでした。なので、現役のエンジニアの方には到底及ばないということで集中してサービスを常に稼働させるということを第一に動きました。また、最初の1時間でのパスワード変更はかなり重要です。ここで、やっていないとではサービスの稼働に支障の対応が段違いであると思います。

私は、主にサービスの再スタートや実際にサイトが改ざんされていないのかなどの調査を行なっていました。ここで思うことは自分の技術力不足と自動化することを怠ったということだと思います。

なので次回にHardeningに参加することがあれば以下のようなことができればいいなと思います。

  • パスワードの自動変更(主にシェルスクリプトやAnsible)
  • XSSなどの脆弱性などの事前に書いていた脆弱性を防ぐこと(セキュリティの勉強)
  • WordPressEC-CUBEなどの脆弱性についての知識(学内で運営しているWordPressを参考にしたり、Dockerなどで環境を作って脆弱性を知ること)
  • 幅広いレイヤー層を警戒すること(今回はIoT機器で電源を落とされることがあったから警戒すること)

ぐらいが思いつくものだと思います。これを次回のHardeningまでに埋めるのは難しいと思いますが、少しでも上記のものが埋めれて行けばいいかと思っています。

そして、今回一番重要に感じたものは「声出し」だと思います。IT系だとSlackだったりのチャットツールでやりとりしていくのかと思いますが、Hardeningは8時間連続で売り上げを伸ばしていく競技です。また、サービスなどが止まったりするなどのインシデントが常に発生している状態が続きます。つまり、声を出すことによってお互いがなにをしているかの確認も容易になります。また、Slackなどのチャットツールに書く時間も省くことができます。やはり、一人で行う競技ではなくチームで行う競技であるためコミュニケーションを大切にしていくことが重要であると思います。

次に、チーム以外の重要なこととしてはMPだと思います。MPはさまざまな攻撃ななどを防いでくれたりなどのチーム間だけではなく連合間でも役に立つことを共有していただけました。しかし、一つだけ注意するべきだとしてはMPのものを使うとクローラーがうまく回ってくれないということがあります。このようなことがあるとうまく売り上げが伸びないうことがあります。なので、MPを選択するのは自分たちのチームを見ながら選択を行なっていくものだと思います。

一旦ここで切り上げます。まだ書きたいことがありますので思い出しながら書き足していくと思います。

北海道3日目

3日目はSofteningです。簡単に言えば振り返り回と攻撃の解説、賞の授与式などを行われます。まずは、振り返り回です。これはHardeningの競技終了後に各チームでスライドを製作し発表を行い競技についてどうだったかを発表を行うものです。次に攻撃の解説です。攻撃の解説は全ての解説を行いません。重要な攻撃に対しての解説を行っていただけました。また、攻撃だと思っていたものは思い込みであることもあり実際には攻撃では自分たちの操作ミスではないのかとありました。これは、実際にすぐに攻撃だと思っていたので今後からも意識して覚えて起きたいです。 そして、興味深かったのはHardeningの環境についてのお話でした。 物理サーバ62台、インスタンス410、一チームあたり20.3と聞きました。この環境を構築してからかつ実際の競技までに不具合が起こさないようにするのは大変な作業だと思いますし高い技術力をもっているからこそできたことなんだと思いました。本当にありがとうございます。

北海道4日目

ここからはただの観光の話です。朝に車を借りて観光を行いました。行ったところでは小樽に行きました。よくテレビとかに出てる運河があったので本当にあったんだ!と少し感動しました。それと、食べ物ですが美味しかったものはザンギとソフトクリームです。ザンギは唐揚げ?みたいなものですが最高に美味しかったです。また、ソフトクリームはチーズの味がして美味しかったです。夜は居酒屋にいったのですがここのザンギも美味しかったですし、締めの味噌ラーメンも最高に美味しかったです。

f:id:unimarimo:20190708115453j:plainf:id:unimarimo:20190708115430j:plainf:id:unimarimo:20190708115417j:plain

北海道5日目

最後の日は10時の便で帰るので朝は空港について少しお土産を買って終了しました。

総括

今回はじめてHardeinigに参加しましたが本当に楽しかったです。。次回も開催されるのであれば応募したいと思います。

また、自分は人生において初めての北海道だったのですが過ごしやすくてご飯も美味しかったので個人的に旅行なども行きたいと思いました。拙いブログとなりましたがこれで終わろうと思います。見てくださったかたありがとうございました。

近況

初めてのAtCoderのコンテスト参加

初めてのAtCoderのコンテストに参加しました。参加した理由としては今日あるよとお知らせが来たので参加してみました。

結果としてはA問題しか溶けませんでした。問題文の制約の部分を条件を含めて行ってしまいました。また、問題文の出力のYes,Noが小文字だったので気づくのが遅かったです。しかし、A問題が解けていたことがよかったです。

次のB問題は途中まで解けいたのでですが時間をかけすぎたのでもっとメソッドをうまく使いこなしたいと思いました。

次にやること


次にやりたいことを書いたいと思います。 やりたいこととしては * CTFcpwnに取り組む * 8946に取り組む * atcoder problemに取り組む *codebaseの講義でやったwebapiを作ってみてもらう

です。優先順位ですがcodebaseの取り組みながらやって行こうと思います。 以上です。また書きます。

codebase-development-api

codebaseのイベントで卒業生が講師を担当していただきその受講生として受けました。

今回はWebAPIを実装するということになりました。主な機能としてはログイン、新規登録、タスクの登録、タスクの閲覧が主な機能となります。

今回思ったことは

圧倒的にrailsの能力が足りなかった。

今回の課題としてはrailsの能力が足りなかった。

本当に足りなかったのでもっと鍛えたいと思いました。

しかもトークンとかの話も出たので、セキュリティ方面の話もありました。

つまりなんの技術を触っても手広くやらないといけないと感じましたね。

とりあえずrailsやりますね。

ctfだったりa&d演習もしたいです。

時間が無限にたりないので頑張ります。

セキュリティミニキャンプ福岡行ってきた!

Webアプリケーション攻防戦演習

まず最初の一つめの講義はPHPフレームワークのLaravelで作られたWebアプリケーションを守ものでした。サイトとしてはコメント投稿ができる掲示板でありました。そして、今回の攻防戦では相手のサイトを守るだけではなく攻撃をすることも可能でした。そして、2回の実技が行われることになりましたがあまくいきませんでした。学校でhardningをやったのですが、その時はWordpressを守るものでしたので今回のWebアプリケーションの攻防戦では生かすことができませんでした。また、私はRubyを触っているのですが、初めてのPHPであり攻撃に関して発見することはできたとしてもどこのコードをいじればいいのかというのが掴めなかったです。この講義では自分の力の無さを痛感しました。周りの方はCTFに参加していたりなどしていたのでCTFの問題をといて力をつけたりできたらと感じました。

LANケーブルを自作して通信をモニタリングしてみよう

二つめはLANケーブルを自作してモニタリングしてみようです。この講義は初めてLANケーブルを物理的にいじるのは初めてでした。 感想としては最高でした。私はネットワーク層などは触ったことはあったのですが物理的に触るという体験ができ大変良かったです。 これは、研究室でもためすことができますし、作成した道具も持ち帰ることができたので試して見たいと思いました。

1日目終了

以上の二つで1日目は終了でした。1日目は最高でしたね、新しい知見や自分の足りないところなどに気づくことができました。また、チームなどでコミュ障になって無言で終わってしまわないか不安でしたがチームメイトもいい方々で楽しむことができました。

クラウドホスティングサービスのセキュリティと運用技術の研究

二日目の一つ目の講義です。正直に話すとわからないこと多すぎた…ですね。これは、自分が知らないことだらけだったのですが、少しづつスライドを読み返して行こうかなと思い少しづつ読んでいます。しかし、一つだけ得られたことは研究についてです。自分の来年から修士になるのですが、研究に対して前向きにできそうです。

Private CaaS 基盤の構築と開発

二日目の2つ目です。自分はこれが一番楽しみでした。私はDockerの技術をセキュリティミニキャンプ以前から行っていたので非常に進みが良かったです。また、自分は成長しているのかと思っていたのですがDockerに対してはあまり疑問がでることはなく進むことができました。K8sに関しては初めてのしましたがDockerとはまた違う難しさがありました。

まとめ

今回のセキュリティミニキャンプは卒業論文手前で参加することが悩みましたが参加して良かったです。また、セキュリティミニキャンプに参加した皆様のTwitterなどをフォローしたことにより様々さ情報が入ってくることがとてもありがたいです。最後に参加者の皆様、チューターの皆様、講師の皆様、セキュリティミニキャンプに携わった皆様ありがとうございました!

進捗

卒論

お久しぶりです。卒論の本稿の修正も無事に終わりました。下記の一番下に書いていることに一つが終わりました。

unimarimo.hatenablog.com

  • rubyの復習
  • tcp/ipの復習がてらに読む
  • 本稿修正

この3つの内一つが終わりました。なので次は下記をやっていこうと思います。

  • rubyの復習
  • tcp/ipの復習がてらに読む
  • docker

上3つをやって行きたいですね優先順位としては帰省するまrにtco/ipを終わらせて帰省した後にrubyをやって行きたいですね。最後にdockerはrubyに飽きたらやると思います。

あとセキュリティミニキャンプ福岡に行くので事前課題をしたいですね。

そのぐらいですね次は帰省してから進捗を書きます。