daisuke1141のブログ

日々のあれこれや考えなど

新機能実装に向けてあれこれ悩む楽しさ

BIKERS-QAに新たな機能として、コミュニティページを実装することに決め、勉強の合間をぬって構想を練っています♪
今までは、「あれっ?ここどうすればいいのかな?」と思ったら30~40分悩んだ後に調べていましたが(吸収率よりも効率を重視していたのかも。。。)
今回は調べずに自分で考え、仕様書を作成し、そこから答え合わせをして実装していきます。

これがすごく楽しい!!!

実は最初の頃にも試した事があったのですが、あの時は知識が皆無でしたので、全く手が進まなかったです。。。笑
今は「これは中間テーブルが必要だな」とか「管理者idはUserモデルで持つものじゃないな。Communityモデルで管理するべきだな」とか スムーズに構築していけるのがとても気持ちいいです
こうして自身の頭の中で構築することも慣れていかなければ、現場に出た時に、話し合い出来ないですし 勉強の一環として楽しんで実装していきたいと思います

あと、BIKERS-QAを公開していくにあたり、セキュリティ面の強化を図っております。 本当は作成後に多くの方々に使って欲したかったのですが、決済がないとはいえ、ユーザー様の情報を扱うので、現状どういうセキュリティ対策が出来ていて、何が足りていないのかを把握したくて延期していました

下記リンクは、僕が最初に目を通した資料です。 何かの参考になれば幸いです。


www.ipa.go.jp

railsguides.jp


HTTPとHTTPS

最初に

herokuデプロイすると決めた時に、HTTPにするのかHTTPSにするのか論争している記事を見たことがあり今更ながら備忘録を残そうと思います。
プログラミング初心者の方のお役に立てたら嬉しいです。

HTTPとHTTPSとは?

HTTP (HyperText Transfer Protocol)
HTML文書や画像、音声、動画などのコンテンツの送受信に使われるプロトコル
トランスポートプロトコルTCPを利用
クライアントがHTTPサーバー(Webサーバー)にリクエスト→サーバーがクライアントに情報を送信

HTTPS
クレジットカードの番号や暗証番号など重要な個人情報を第三者に読み取られないように暗号化する
WebではTSLを使ってHTTP通信の暗号化を行う。その通信方法をHTTPSという。

Railsではconfig/environments/production.rb内の

config.force_ssl = true

コメントアウトを外すことで、強制的にSSL接続させることが出来る(TSLとSSLは呼び方が違うだけだと把握してます)

考察

ポートフォリオアプリではherokuドメインを使用しているので何もしなくてもHTTPS通信をしてくれているが今後、独自ドメインを使う予定なので気になる部分

現在、決済システムはないけれど、無線LANを使っているユーザーが多いと思うので、セッションハイジャック対策として必要だと感じましたし

GoogleではHTTPS通信のサイトに対し検索順位の優先度を高くしているようで、SEO対策としても有効ですし、HTTP/2やHTTP/3のおかげで高速です(TSL接続されていることが条件)

デメリットで言えば、HTTPSのサイトが増え、HTTPS狙いの攻撃が増えているということくらいでしょうか?


参考文献:マスタリングTCP/IP 入門編 第6版

www.ohmsha.co.jp

参考URL:Rails セキュリティガイド - Railsガイド


OpenStackとAWS

もともと、AWS Certified Cloud Practitioner認定試験を受けようと考えていて、勉強していたクラウドコンピューティング
AWSすごいなぁとサービス毎に驚いていました。クラウドでサービスを運用する上で小さな不安も残さないぞ!という意気込みが伝わってきましたね。 クラウドに興味がなくとも一度目を通すことで環境を構築するということが把握しやすくなると思うのでおすすめです(とてもわかりやすいですよ♪)

www.aws.training

最初の方で出てくるAmazon EC2 Auto ScalingとElastic Load Balancingは ポートフォリオアプリが大規模になったと仮定した時に気になっていた部分だったので僕は衝撃を受けました。

疑問

クラウド化の勉強をしていて疑問が一つ OpenStackとAWSって同じことができるって色んな記事で見るけど 「ならどちらかで良くないか?」「両方使う理由はなんなんだろう?」と思いましたので、少しですが調べた内容を記載します

OpenStack

AWSを参考に作られた。2010年にRackspace Hosting社とNASAの共同プロジェクトとして始まった
OSSである
様々な企業が開発コミュニティに参加している
リリース頻度が高い
必要に応じて機能をカスタマイズできる
ライセンス使用料がかからないなど金銭的コストが低い
実装が簡単とはいえ、技術的に難しく、一定の知識が必要

AWS

とてもわかり易く、日本語でのサポートも充実
簡単にIaaS構築ができる
ほぼ世界中にリージョンがあり、その中に複数のデータセンター設置する(アベイラビリティーゾーン)など、災害意識が高い
使用した分金銭的コストがかかる(これは定額に比べとても画期的です)

調べていて感じたのは
適切に扱う技術力があり、独自の技術を組み込み、クラウドを他社と差別化したいなどの場合はOpenStackを
金銭的コストが掛かったとしても、専門知識をそれほど必要とせず、迅速かつ強いクラウドを構築したいのであればAWS を選ぶのかな?と思いました。

しかし、どちらを使ったとしても何らかのトラブルによりサービスが停止する事は大問題です。 そこでOpenStackとAWSをリンクさせ、どちらかにトラブルを起きた際はもう一つのIaaSが対応することで リスクヘッジをするという点で考えた時AWSはかなり強力であると思いました。

なので、技術力を持っていてIaaSの構築に人的コストを掛けられるサービスは OpenStackで独自の技術を盛り込み、AWSリスクヘッジをする というのがセオリーなのかな?と考えました。

最後に

現在、業界未経験のプログラミング学習者が執筆しております。 間違いや、おかしな箇所を見つけて頂いた場合はコメントにてご教授頂けますと幸いです。

はてなブログを選んだ理由

ご挨拶

どうも初めまして!daisuke1141と申します。
現在、約10年ほど携わった整備士業界からwebアプリケーションエンジニアになるために転職活動しております。

このブログでは日常での出来事やプログラミングに関する考えなどを発信していきたいと考えています!
技術的なアウトプットはQiitaにて行っております!サイドバーにウィジェットを用意してありますので、そこからご確認ください♪

なぜ、はてなブログを選んだか

候補はたくさんありました。
wordpressやnoteといった技術者にも大人気のブログや、アメブロ楽天などがあり迷いました
そこでなぜ "はてなブログ" に決めたかというと

1.Markdown記法が選択できる

2.Qiitaのウィジェットを表示できる(Qiita Widget

上記2点は自身の技術的なアウトプットを基本的にQiitaでやっていて、優先したい事だったので実は最初からはてなブログが優位でした
Markdown記法ができるブログって少ないんですね。。。

3.アップロード容量が指定値ではない

これでwordpressが外れました(はてなブログは月毎に300MB使える)いつか他の目的で使ってみようと思ってます

4.技術者の方々がよく利用している

5.余計なコンテンツが少なく、動作が軽い

アメブロなどが選択肢から外れました 整備士時代に、アウトプットをアメブロでやっていたのですが重くて重くて。。。(個人的な感想です)
作成中にリロードされて記事が消えたりなんかもよくありましたね

6.現状、収益化を考えていない

Markdown記法が出来ないこともあり、これでnoteが外れました
デザインもカジュアルで使いやすそうなイメージでしたが、Markdownは外せない。。。
もし自身の記事に自信が付いてきたら、記事の販売をするために利用させて頂くかもしれません♪

本当は自身でブログアプリを作成しようと考えていたのですが、やるべき事の優先度的に
かなり遅くなりそうなので、はてなブログさんを利用させて頂きました

簡単にですが、以上がはてなブログを選んだ理由です

最後に

日々、文章を書くことで語彙力や説得力のある話し方ができるようになりたいというのもブログを書き始める一つの理由です
おかしいと感じた際にはお気軽にコメント頂けますと幸いです。

プロフィール画像、何にしようかなぁ。。。笑