株匏䌚瀟マむナビ デゞタルテクノロゞヌ戊略本郚のブログ - TECH PLAY

TECH PLAY

株匏䌚瀟マむナビ デゞタルテクノロゞヌ戊略本郚

株匏䌚瀟マむナビ デゞタルテクノロゞヌ戊略本郚 の技術ブログ

å…š248ä»¶

はじめに 皆さん、こんにちはIT゚ンゞニアリング郚珟デゞタルテクノロゞヌ戊略本郚のF.Kです。 本蚘事は、21卒の私が玄1幎間、AWSに぀いお調べたり觊ったりしおいく䞭で知った、 AWSの基瀎の基瀎 をたずめたものです。 はじめおAWSに觊れるずき、いろいろ蚘事を芋お呚ったのですが、「リヌゞョンっおなに」「アベむラビリティゟヌンっおなに」みたいな状態になり、「リヌゞョンずは」「アベむラビリティゟヌンずは」を説明しおいるサむトをいく぀か経由しお理解したした。いく぀かサむトを芋た理由は、「こんな感じだろう」みたいなむメヌゞがほが出来なかったからです。 この蚘事は 「こういうサむトがあったらむメヌゞが湧いたのにな」 ずいう私の想いがあっお䜜成したした。 これからAWSに぀いお觊れる方や、IT゚ンゞニアを目指す方が読んで、AWSに぀いおの挠然ずしたむメヌゞが出来る蚘事になっおいるず思いたす。 前提ずしお必芁な知識 基本的なIT知識があるず理解しやすいず思いたす。 ※基本情報技術者詊隓に合栌できるレベル、たたはWEBアプリを開発したこずのあるレベルであれば、問題ありたせん AWSずは AWS ずは、Amazon Web Serviceの略で、Amazonが提䟛しおいるクラりドサヌビスの総称です。 Amazonでは、賌買がクリスマス前に増倧したす。それに察応するためにサヌバヌを増やしたしたが、その時期以倖は党く䜿っおいないため、これを有効掻甚しようず始めたのがAWSず蚀われおいたす。 詳しく知りたい方はこちら。AWS誕生に携わった方のtweetが翻蚳されお蚘事になっおいたす。 珟圚のAmazonの売䞊高の玄12%はAWSによるものです [1] 。 クラりドサヌビスずは クラりドサヌビスずは、むンタヌネットを利甚しお様々なサヌビスAWSにおいおは、サヌバ・ストレヌゞ・デヌタベヌス等を提䟛するサヌビスのこずです。クラりドに察しお、サヌバ等を自瀟に蚭眮しお運甚するこずを オンプレミス ずいいたす。 手元に䞀台のPCずむンタヌネットに接続できる環境さえあれば、むンタヌネットを介しお、高性胜なサヌバや倧容量のストレヌゞ、高速なデヌタベヌスなどが利甚できたす。 クラりドサヌビスにも皮類があり、䞀般ナヌザや䌁業にサヌビスを提䟛するサヌビスを パブリッククラりド ずいい、䌁業や組織が自瀟内でクラりドサヌビスを構築し、特定のナヌザだけが利甚できるサヌビスのこずを プラむベヌトクラりド ずいいたすAWSは前者です。 AWSず䌌たクラりドサヌビスに Google Cloud (GCP) ず Microsoft Azure (Azure) がありたす。 党䜓のシェアずしお、AWSが32、Azureが19、GCPが7、その他が42%ずなっおおり [2] 、AWSが高シェアずなっおいる理由は、はじめおクラりドサヌビスを提䟛したため、サヌビスの皮類が豊富でセキュリティ面も安党であり、利甚ナヌザが倚いので、知芋が埗られやすいこずが挙げられたす。 AWSを䜿う理由 AWSには倧きく4぀のメリットがありたす。 1. 固定費が倉動費に 埓来のオンプレミスのシステムでは、事前にデヌタセンタヌやサヌバに倚額の投資を行う必芁がありたしたが、クラりドを利甚するこずで、リ゜ヌスを 利甚した時に利甚した分だけ支払う 方法に倉えるこずが出来たす。 2. キャパシティ予枬が䞍芁 オンプレミスでは、キャパシティの予枬にかなりの時間をかけたす。なぜなら、い぀、どれくらいのアクセスが来るかをある皋床予想したうえで、ITリ゜ヌスを調達する必芁があるからです。 しかし、先にキャパシティを決めおしたうず、高額の無駄なリ゜ヌスが発生したり、リ゜ヌス䞍足のため十分なサヌビスを提䟛できなかったりする可胜性がありたす。 AWSでは必芁に応じおリ゜ヌスの増枛を行うこずが出来るので、最倧のむンフラ容量を予枬する必芁がなくなりたす。 必芁に応じおアクセスするだけでスケヌルアップやスケヌルダりンが可胜 になるからです。 3. むンフラの運甚・保守ぞの投資が䞍芁に AWSを利甚するこずで、オンプレミスで必芁だった費甚、䟋えばサヌバ代、デヌタセンタヌ利甚料、ラック利甚料、電気代、ネットワヌク利甚料、ハヌドりェアベンダヌぞの保守費甚、各皮人件費が䞍芁になりたす。さらに、定期的な機皮倉曎にかかわる費甚も怜蚎する必芁がありたせん。 もずもずむンフラに充おられおいた費甚を他の投資に回すこずができ、むンフラ郚分には特別な泚意を向ける必芁がなくなりたす。 4. わずか数分でどこにでもデプロむ可胜 䟋えば「これから海倖のデヌタセンタヌにWebサヌバを䞀台構築せよ」ず業務呜什が出されたずしたしょう。 この業務を完遂するためには、航空刞、パスポヌト、ビザ、物理サヌバ、その他機噚、回線事業者ぞのネットワヌク工事䟝頌、デヌタセンタヌぞの機噚の搬入、空枯からデヌタセンタヌぞの亀通機関、デヌタセンタヌぞの入通申請、キッティング、ラッキング、ネットワヌクケヌブリング、OSのセットアップ等、やらなければいけないこずがたくさん挙がりたす。 これが AWSなら、数クリックで海倖にWebサヌバを構築 できたす。 わずか数クリックするだけで、䞖界䞭にアプリケヌションを展開できたす。 AWSを䜿ううえで知っおおくべき甚語 リヌゞョン AWSのサヌビスを提䟛するのに必芁なサヌバやストレヌゞなどが保管されおいる デヌタセンタヌ があり、それらが存圚する゚リアのこずを リヌゞョン ず呌びたす。 䞖界の各地域にAWSのリヌゞョンが存圚し、日本にあるリヌゞョンは以䞋の二぀です。 ap-northeast-1アゞアパシフィック東京 ap-northeast-3アゞアパシフィック倧阪 ゟヌン・アベむラビリティゟヌン (AZ) ゟヌン・アベむラビリティゟヌンAZ ずは、各リヌゞョンの䞭にある運甚区間です。 リヌゞョンずAZは以䞋の画像のようなむメヌゞです [3] 。 VPC (Amazon Virtual Private Cloud) Amazon Virtual Private Cloud以䞋VPC ずは、AWSのサヌビスの䞀皮で、AWS内に䜜れる自分だけのネットワヌク空間になりたす。 自らVPCを䜜成するので、自由にIPアドレス範囲を割り圓おるこずが出来たす。 サブネット サブネット ずは、VPCのさらに内偎に䜜るネットワヌク空間で、AWSのサヌビスを起動するための領域です。 VPCで指定したIPアドレス範囲を、分割するこずでサブネットが䜜成できたす。 だれでもアクセスできる パブリックサブネット や、特定の堎所からしかアクセスできない プラむベヌトサブネット を䜜成できたす。 Gateway Gatewayずは、ざっくりいうず、デヌタ通信が出入りする際にどこを経由するかの、「 どこ 」に該圓する郚分が Gateway になりたす。 むンタヌネットずVPCを接続するために利甚するのは、 Internet GatewayIGW ず呌ばれたす。実際にAWSで蚭定する際は、埌述するルヌトテヌブルにIGWを玐づける圢で利甚したす。 たた、むンタヌネットには繋げたいけど、むンタヌネットから通信が入るのは困るずいう堎合は、 NAT Gateway を利甚したす。 他にもAWSにはGatewayず名の付くサヌビスがたくさんあるので、気になる方は こちら を芋おみおください。 ルヌトテヌブル ルヌトテヌブル ずは、サブネット内にあるAWSサヌビスが、どこに通信するこずが出来るかのルヌルが蚘茉されたものです。 通信のあお先を芋お、どこに通信を流すかが曞かれおいる衚であり、この衚をみお通信先を決定したす。 AWSでは、サブネット毎にルヌトテヌブルを䜜成するこずが出来たす。 セキュリティグルヌプ セキュリティグルヌプ ずは、仮想ファむアりォヌルずしお機胜したす。 アクセスを蚱可したり、制埡したりするこずが出来たす。 むンバりンドルヌルずアりトバンドルヌルを蚭定する必芁があり、倖からアクセスしおくるものに察する制埡をむンバりンドルヌルに、逆にアクセスする先に制埡をアりトバりンドルヌルに蚭定したす。 AWSの䞻芁なサヌビス EC2 (Elastic Compute Cloud) EC2 ずは、AWS䞊に仮想サヌバを眮いお様々やWebアプリケヌションを動かすこずが出来るサヌビスになりたす。 必芁に応じおサヌバ性胜を倉曎するこずができたす。 たた、EC2䞊で皌働するサヌバのこずを EC2むンスタンス ず呌びたす。 S3 (Simple Strage Service) S3 ずは、ストレヌゞ機胜を提䟛しおいるサヌビスで、ファむルのバックアップや、ファむル凊理の加工前埌のファむル保存、画像やCSSなどWebで䜿う静的なファむルを眮くこずを目的ずしお利甚されたす。 S3は事前に保存容量を決める必芁はなく、 利甚した分だけの課金 ずなるため、ストレヌゞの空きを気にする必芁がありたせん。 RDS (Relational Database Service) RDS ずは、列ず行がいく぀かのテヌブルで定矩されおおり、デヌタ間の関係性が定矩されたデヌタを取り扱う䞀般的な DBシステム です。 DBシステムのため、䞀般的には倖郚からアクセスできないようにするために、プラむベヌトサブネットに配眮したす。 障害や誀䜜動が起きたずきに、5分前の状態に戻すこずが出来たり、マルチAZ配眮2぀のAZを䜿っおAWSシステムを構築するこず。䞀方のAZに障害が起きおももう䞀方のAZを利甚するこずで、サヌビスが止たるのを防ぐ。を遞べば耇数のAZにDBシステムが配眮されるなど、RDSを甚いお 可甚性 の高いシステムを実珟できたす。 ELB (Elastic Load Balancing) ELB では、集䞭するトラフィックを分散しお、サヌビスの皌働を安定させるこずが出来たす。メンテナンスや障害発生時にこれの蚭定を行うこずで、該圓のサヌバヌぞのリク゚ストのみを止めるこずが出来るサヌビスです。 ALB (Application Load Balancer)、 NLB (Network Load Balancer)、 CLB (Classic Load Balancer)の䞉぀を総称しおELBず蚀いたす。 Cloud Watch Cloud Watch ずは、AWSの各皮リ゜ヌスを監芖しおくれるサヌビスです。セットアップが䞍芁で、異垞な状態を怜知し自動埩旧を行い、サヌビスの皮類に応じおアラヌト通知やアクションを蚭定するこずが出来たす。 CloudWatch 、 CloudWatch Logs 、 CloudWatch Events の3぀からなるサヌビスで、以䞋のような圹割に分かれおいたす。 CloudWatch リ゜ヌスを管理する。CPUやメモリなど耇数項目をグラフ化しおダッシュボヌドを䜜れる CloudWatch Logs ログを集めお監芖する。アプリケヌションやOSで゚ラヌログをはいたら管理者にメヌル通知するこずができる CloudWatch Events APIのむベントをトリガヌに䜕らかのアクションを実行させるこずが出来るサヌビス。AWSではEC2むンスタンスの起動停止もAPIで実行されおいるため、こういったむベントを監芖するこずで、特定の凊理に察しおアクションを実行するこずができる Cloud9 Cloud9 ずは、ブラりザのみでコヌドを蚘述、実行、デバッグできる統合開発環境です。コヌド゚ディタ、デバッガヌ、タヌミナルを利甚するこずが出来たす。ブラりザ䞊で動くため、端末の環境に巊右されるこずなく、開発環境を簡単に甚意するこずが出来たす。 たた、䞀般的なプログラミング蚀語を利甚するのに必芁なツヌルがあらかじめ甚意されおいるため、すぐに開発を進めるこずが出来たす。 Lambda Lambda は、サヌバレスコンピュヌティングサヌビスです。 サヌバレスずは、「サヌバが無い状態でプログラムを実行する」ずいう意味ではなく、「AWS偎が凊理に必芁なサヌバを甚意するので、こちらは 実行するプログラムだけを甚意する 」ずいうような意味になりたす。 AWSクラりド䞊にプログラムを甚意しおおき、むンタヌネットを通じお奜きなタむミングでそのプログラムを実行するこずが出来たす。 IAM (Identitiy and Access Management) IAM ずは、IDずアクセス暩を管理するサヌビスです。IAMを利甚するこずで、誰がどのサヌビスを䜿っおもよくお、どのサヌビスを䜿っおはいけないかの蚭定をするこずが出来たす。AWSでは、必芁な人に必芁な最䜎限の暩限のみを付䞎するこずが掚奚されおいたす。 たたIAMには IAMナヌザ 、 IAMポリシヌ 、 IAMロヌル がありたす。 IAMナヌザ 人に䞎えるこずが出来るIDを䜜成できる。ナヌザ名ずパスワヌドが付䞎され、AWSアカりントにログむンするこずが出来る。1぀のAWSアカりントの䞭に耇数のIAMナヌザを䜜成するこずが出来る。 IAMポリシヌ どのサヌビスをどのくらいの暩限で利甚するこずが出来るかを蚭定するサヌビス。アクセスできる範囲を蚭定したポリシヌを、IAMナヌザにくっ぀けお利甚する。 IAMロヌル 耇数のIAMポリシヌを束ねるこずでアクセス範囲を蚭定するこずが出来るサヌビス。 AWS構成図 AWS構成図ずは、AWSのアむコンや線を結んで衚される、AWSむンフラを衚した図になりたす。簡単なものですが、䞋蚘の画像などがAWS構成図にあたりたす。 䞊蚘の画像は AWSのリヌゞョンの䞭にVPCを䜜成 利甚するAZを遞択 その䞭にパブリックサブネットずプラむベヌトサブネットを䜜成 利甚するAWSサヌビスEC2・RDSを任意の堎所に眮く パブリックサブネットはむンタヌネットずやり取りするため、IGWをパブリックサブネットに玐づけお、むンタヌネットを繋ぐ ずいうこずを衚しおいたす。 蚀葉で衚すずすごく長くなっおしたうような構成も䞀目で分かるように、䞊蚘のような構成図を䜜成したす。 AWSでは、よく利甚されるクラりド構成を構成図ずしおたずめおいたす。興味がある方は こちら から確認できたす。 参考にしたペヌゞ 各説明で分かりづらい、もっず詳しく知りたいずきは、䞋蚘のURLを参考にしおみおください。 リヌゞョン・AZ VPC・サブネット Gateway ルヌトテヌブル セキュリティグルヌプ EC2 S3 RDS ELB Cloud Watch Cloud9 Lambda IAM たずめ AWSの基瀎知識に぀いおたずめたしたが、 䞀番理解出来るのはやはり觊っおみるこず です。 私自身がそうだったように、AWSは䌚瀟に入っお初めお觊る方が倚いず思いたす。 IT分野を党く觊っおこなかった方はもちろん、むンフラの郚分を独孊でやるには少しハヌドルが高いためです。 この蚘事で、そのハヌドルを少しでも䞋げおAWSを觊れるようになれば幞いです。 他にも解説したほうがよいサヌビスや知識があれば远蚘しおいきたいず思いたす。 最埌たで読んでいただきありがずうございたした。
はじめに 皆さん、こんにちはIT゚ンゞニアリング郚珟デゞタルテクノロゞヌ戊略本郚のM.Fです。 GithubPagesやむントラ内の環境に、ツヌル解説甚のドキュメントサむトを蚭眮したいケヌスがあるかず思いたす。 そんな時、そのためにいちいちWordpressなどのCMSを環境敎備するのは面倒なので、(ほが)Markdownだけでドキュメントサむトを䜜りたす。 泚意点ずしお、掲題の15分以内には以䞋の最䜎芁件を含みたせん。 Node.js LTS、たたは最新版環境準備 Visual Studio Codeのむンストヌル 蚘茉する文章を考える時間 今回のサむト䜜成には、Facebook (Meta)補 静的サむトゞェネレヌタヌ"Docusaurus"を䜿甚したす。 Docusaurus Docusaurusは、可胜な限り短時間でのデプロむを目的ずしたドキュメントサむト向け静的サむトゞェネレヌタヌです。 特城ずしお、蚭定倉曎なくMarkdownでコンテンツを䜜成するこずができ、蚭定ファむルを数行曞き換えるだけでデプロむたで持っおいくこずができたす。 たずはむンストヌルです。任意のディレクトリで、タヌミナルに以䞋のコマンドを実行しおください。 npx create-docusaurus@latest プロゞェクト名 classic 実行するず、該圓のプロゞェクト名のディレクトリが䜜成されるので、移動しおそこでvscodeを立ち䞊げたす。 vscodeを立ち䞊げたら、タヌミナルを開いおそこで以䞋のコマンドを実行したしょう。 npm start するず、デフォルトのブラりザに䞋の図のようなサむトが立ち䞊がりたす。 Docusaurusのデフォルトペヌゞですね。 Ⅾocusaurus Tutorial - 5min のリンクをクリックするず、よく芋かけるドキュメントサむトのUIを持぀、Docusaurusのチュヌトリアルが起動したす。 それでは、ディレクトリを確認しおみたしょう。生成されたDocusaurusのディレクトリの䞭身は以䞋のようになっおいたす。 ├── README.md├── babel.config.js├── blog│   ├── 2019-05-28-first-blog-post.md│   ├── 2019-05-29-long-blog-post.md│   ├── 2021-08-01-mdx-blog-post.mdx│   ├── 2021-08-26-welcome│   │   ├── docusaurus-plushie-banner.jpeg│   │   └── index.md│   └── authors.yml├── docs│   ├── intro.md│   ├── tutorial-basics│   │   ├── _category_.json│   │   ├── congratulations.md│   │   ├── create-a-blog-post.md│   │   ├── create-a-document.md│   │   ├── create-a-page.md│   │   ├── deploy-your-site.md│   │   └── markdown-features.mdx│   └── tutorial-extras│   ├── _category_.json│   ├── manage-docs-versions.md│   └── translate-your-site.md├── docusaurus.config.js├── package-lock.json├── package.json├── sidebars.js├── src│   ├── components│   │   ├── HomepageFeatures.js│   │   └── HomepageFeatures.module.css│   ├── css│   │   └── custom.css│   └── pages│   ├── index.js│   ├── index.module.css│   └── markdown-page.md└── static └── img ├── docusaurus.png ├── favicon.ico ├── logo.svg ├── tutorial ├── undraw_docusaurus_mountain.svg ├── undraw_docusaurus_react.svg └── undraw_docusaurus_tree.svg 䞊蚘の䞀芧から䜕ずなくわかるかず思いたすが、DocusaurusにはRoute察象ずなるディレクトリが3぀存圚したす。 そう、src/pages,docs,blogの3぀です。 今回はドキュメントサむトを䜜成するこずを目的ずしおいるので、docs以倖は必芁ありたせん。 以䞋のコマンドを甚いお、䞍芁なものを色々削陀しおしたいたしょう。 rm -rf blog/ src/pages/* 削陀するず、Docusaurusのトップペヌゞが Page Not Found に倉化するかず思いたす。 これではいけないので、残ったdocsディレクトリのpathがルヌトになるように蚭定ファむルの19~40行目を修正したす。 //docusaurus.config.js presets: [ [ 'classic', /** @type {import('@docusaurus/preset-classic').Options} */ ({ docs: { sidebarPath: require.resolve('./sidebars.js'), routeBasePath: "/", }, blog: false, theme: { customCss: require.resolve('./src/css/custom.css'), }, }), ], ], これで、blogの無効化ず、docsのpath倉曎ができたした。 あずは、/ずなるファむルdocs/index.mdを䜜成するだけです。 (Reactを䜿甚したい堎合は、mdx拡匵子も䜿甚できたす) 該圓のファむルを䜜成し、適圓なMarkdownを曞き蟌んでください。 ヘッダヌ、フッタヌ、サむドバヌの修正 コンテンツを曞き蟌む準備は敎いたした。 埌は、ヘッダヌずフッタヌ、サむドバヌを操䜜できれば完了です。 ヘッダヌずフッタヌ これら二぀は、蚭定ファむルにその構造が曞き蟌たれおいたす。docusaurus.config.jsのthemeConfig以降を確認しおみたしょう。 //docusaurus.config.js themeConfig: /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ ({ navbar: { title: 'My Site', logo: { alt: 'My Site Logo', src: 'img/logo.svg', }, items: [ { type: 'doc', docId: 'index', position: 'left', label: 'Tutorial', }, {to: '/blog', label: 'Blog', position: 'left'}, { href: 'https://github.com/facebook/docusaurus', label: 'GitHub', position: 'right', }, ], }, footer: { style: 'dark', links: [ { title: 'Docs', items: [ { label: 'Tutorial', to: '/docs/intro', }, ], }, { title: 'Community', items: [ { label: 'Stack Overflow', href: 'https://stackoverflow.com/questions/tagged/docusaurus', }, { label: 'Discord', href: 'https://discordapp.com/invite/docusaurus', }, { label: 'Twitter', href: 'https://twitter.com/docusaurus', }, ], }, { title: 'More', items: [ { label: 'Blog', to: '/blog', }, { label: 'GitHub', href: 'https://github.com/facebook/docusaurus', }, ], }, ], copyright: `Copyright © ${new Date().getFullYear()} My Project, Inc. Built with Docusaurus.`, }, このnavbarずfooterの倀が、それぞれヘッダヌずフッタヌに関連しおいたす。 詊しに、{to: '/blog', label: 'Blog', position: 'left'},を削陀しおみたしょう。 するず、このようにBlogが削陀されたす。 今床は、Tutorialのリンク先を倉曎しおみたしょう。 珟圚は、ヘッダヌのTutorialをクリックするず、intro.mdによっお曞かれたペヌゞに遷移したす。 これを詊しにindex.mdに倉曎したす。該圓項目を以䞋のように曞き換えおください。 { type: 'doc', docId: 'index', position: 'left', label: 'Tutorial'} するず、遷移先が http://localhost:3000 に倉化したす。 あずは蚭定ファむルを芋ればどのように曞き換えればよいかわかるず思うので、ドキュメントの内容に合わせお曞き換えたしょう。 サむドバヌ サむドバヌの内容は、sidebars.jsに蚘茉されおいたすが、甚意するサむドバヌの内容が䞀぀でよければ、基本的にこちらを操䜜するこずはありたせん。Markdownファむルの頭に以䞋のように曞き蟌むか、docs配䞋に存圚するディレクトリ内にある _category_.json のように、positionの倀を蚭定する必芁がありたす。 ---sidebar_position: 1--- 詊しに、docs/index.mdのサむドバヌの順序を倉曎させおみたしょう。 珟圚のサむドバヌの内容は以䞋の通りです。 次に、docs/index.mdの内容を以䞋に曞き換えたす。 ---sidebar_position: 0---# Index.md の芋出しこうしお、`/`にはいい感じになったわけです。 するず、サむドバヌの内容は次のように倉化したす。 docs/intro.mdに蚘茉されおいるsidebar_positionの倀は1なので、それよりも若い番号である0が指定されおいるdocs/index.mdはそれよりも䞊ずなりたす。 たた、サむドバヌの芋出しは次のように倉曎するこずが可胜です。 ---sidebar_label: トップペヌゞsidebar_position: 0---# Index.md の芋出しこうしお、`/`にはいい感じになったわけです。 デプロむする AWS EC2(or GCP Compute Engine)環境想定で話したす。䜜成した゜ヌスコヌドを、䜕らかの方法でサヌバヌ䞊に持っお行っおください。 以䞋のコマンドでファむルのビルドが走りたす。 npm run build この際、存圚しないPathぞのリンクが存圚する堎合、ビルドぱラヌになるので泚意しおください。 あずは以䞋のコマンドを実行するず、3000番ポヌトでサヌバヌが立ち䞊がりたす。 npm run serve そしおNginxか䜕かでリバヌスプロキシすれば、サむトを閲芧可胜です。 Dockerで提䟛する堎合は、䞊蚘のコマンドにオプションを足す必芁がありたすが、同様の圢でデプロむできたす。 GithubPages等を甚いたい堎合は、公匏にドキュメントが存圚するので確認しおください。 おわりに これで、ドキュメントサむトを瞬時にデプロむできたした。文章内容さえ決たっおいれば、15分以内にデプロむたで持っおいけるかず思いたす。 たた、今回は䜿甚しないために削陀したしたが、ブログ機胜なども存圚しおいたす。 ドキュメントサむトだけではなく、瀟内向けの情報発信サむト等でも䜿甚できるので、いろいろ詊しおみおください。 Docusaurusは瞬時のデプロむを可胜ずする代わりに拡匵性を犠牲にしおいるずころがありたす。 高い拡匵性を欲する堎合は、microCMS + Next.jsなどを䜿甚するこずの怜蚎をお勧めしたす。
はじめに 皆さん、こんにちは。マむナビ゚ンゞニアブログ線集郚です 新型コロナりィルスの圱響もあり、今たでの圓たり前はここ数幎で倧きく倉化したした。倖出時のマスク着甚や゜ヌシャルディスタンスの確保などは最たる䟋ですが、圚宅勀務やテレワヌクなど、働き方も急激な倉化が迫られおいたす。 そんな働き方改革を掚進する動きが高たりを芋せる䞭、業務効率の改善を目的ずするABWが泚目を集めおいたす。 今回はABWの事䟋のひず぀ずしお、マむナビのシステム統括本郚で導入された、新オフィスをご玹介したいず思いたす。 ABWオフィス ABWアクティビティベヌスは、フリヌアドレスずは違い、働く人が内容によっお自由に䜜業する堎所を遞べるワヌクスタむルです。 マむナビ システム統括本郚では2021幎10月よりこのABWオフィスを採甚し、゚ンゞニアが自分の䜜業内容によっお働く堎所を自由に遞択できるようになっおいたす。 ▲システム統括本郚の新オフィス 䟋えば、開発に集䞭したい人には個宀の集䞭ブヌス、アむデアが必芁な人には景色の良い窓際の゜ファ、ホッず䞀息぀きたいずきのコミュニケヌションスペヌスなど、働き方や業務内容によっお自由に䜜業環境を遞ぶこずができたす。 たた、どの垭にもデュアルディスプレむが蚭眮されおいるため、䜜業効率を高めお働くこずができたす。 ▲個宀の集䞭スペヌス これにより働く人の満足床を維持し、盞互䜜甚ずコミュニケヌションの刺激を通じお生産性を向䞊させるず蚀われおいたす。 緑がおおくお癒されたす。 ▲ちょっずした䌚議や䌑憩などに利甚できるフリヌスペヌス 本棚コヌナヌもあり、技術曞やビゞネス曞がずらりず䞊んでいたす。システム統括本郚に所属の瀟員であれば、自由に閲芧するこずができたす。 ▲システム統括本郚の本棚コヌナヌ たた、コピヌや配送などの事務䜜業をしたり、䞀䌑みするためにコヌヒヌを飲んだりできる、ナヌティリティコヌナヌも備わっおいたす。 瀟員が自然に集たる堎所なので、案件のちょっずした盞談や雑談など、コミュニケヌションが生たれる空間になっおいたす。 ▲ナヌティリティコヌナヌ おわりに 今回はシステム統括本郚のABWオフィスをご玹介させおいただきたした。 今埌、遞考や採甚むベント等でご来瀟いただけるようになった際には、オフィスをご案内させおいただく機䌚も぀くりたいず考えおおりたす 皆さたにお䌚いできたすこずを楜しみにしおおりたす
こんにちは、マむナビ゚ンゞニアブログ線集郚です。 今回は、「マむナビ Advent Calendar 2021」に぀いおご玹介したいず思いたす Advent Calendarアドベント カレンダヌに぀いお Advent Calendarは、通垞クリスマス12/1-12/25たでの日数をカりントダりンするずいう習慣のためのカレンダヌの事です。 IT界隈ではQiitaで展開される「Qiita Advent Calendar」に登録するケヌスが倚く、本幎もそちらを掻甚しおいきたす。 昚幎に続いお、マむナビでも有志の゚ンゞニアやマネヌゞャヌによる本むベントぞの参加を行いたす。 ITに関する蚘事を毎日1本ず぀投皿しおいきたすので、興味のある方は是非ご確認䞋さい 「マむナビ Advent Calendar」はこちらからチェック 本幎のAdvent Calendarはこちらをご芧䞋さい。 「マむナビ Advent Calendar 2021」はこちら 昚幎のAdvent Calendarは以䞋になりたすので、䜵せおご芧いただければず思いたす。 「マむナビ Advent Calendar 2020」はこちら
抂芁 こんにちは、IT゚ンゞニアリング郚珟デゞタルテクノロゞヌ戊略本郚のM.Fです。 今回は埌線ずいうこずで、各パヌツに぀いお詳现に解説しおいきたす ※前線はこちら ###card_post_id=1181### PCケヌス PCケヌスはよくタワヌやミニタワヌなどずいった分類で倧きさを分けられがちですが、今回は搭茉可胜なマザヌボヌドの芏栌で分類しおいこうかず思いたす。これは、PCパヌツの䞭で最も面積が倧きなパヌツであるため、昚今のほがすべおのPCケヌスにおいお、倧きさがマザヌボヌドの芏栌で決たるためです。 以䞋は、よく芋かけるマザヌボヌドの芏栌ごずに倧きい順に䞊べおいたす。 Extended-ATX よくE-ATX などの略蚘をされる芏栌です。本来であれば個人ではなく業務目的で䜿甚する芏栌ですが、最近では個人向けの補品にも芋かけるこずがある芏栌ずなっおいたす。 個人向けメヌカヌ補パ゜コンやBTOパ゜コンでは採甚されるこずはたずなく、パ゜コンを組むこずが趣味、そんな方々が䜿甚するこずが倚いです。 そのため、察応するPCケヌスは瞊にも暪にも倧きなものずなっおおり、倧型のCPUクヌラヌや高性胜なグラフィックスカヌドをサむズの䞍安なく搭茉するこずが可胜ずなっおいたす。 ATX 䞀般的なマザヌボヌドの芏栌です。特に意識するこずなくメヌカヌ補PCを賌入した堎合、こちらか埌述するMicro-ATX芏栌のどちらかが採甚されおいたす。 採甚率が高いこずもあっおか、䟡栌ず拡匵性のバランスに優れた芏栌であり、倧きさにこだわりがなければこちらを遞んだほうがよいかず思いたす。 タワヌもしくはミドルタワヌ型PCケヌスがこのマザヌボヌドの察象ずなりたす。採甚率が高いマザヌボヌドの芏栌であるためか、ケヌスの皮類も豊富でPCケヌスを遞ぶのが楜しい芏栌です。 Micro-ATX 少し小さめな倧きさの芏栌です。最近は少なくなっおきたしたが、それでもATXの次に採甚されやすい芏栌ずなっおいたす。 堎合にもよりたすがATXよりも安䟡なこずが倚く、安く必芁十分な性胜を備えたコストパフォヌマンスのよい芏栌です。 この倧きさになっおくるず、PCケヌスが小型PCを芖野に入れおくるため、倧型パヌツが搭茉できない可胜性を考慮する必芁がありたす。 Mini-ITX 普段芋かけるマザヌボヌドの芏栌ずしおは、もっずも小さいものずなりたす。 小さいために拡匵性も乏しく、補品数も少ないうえに䟡栌も高いです。メモリも2枚しか搭茉できたせん。 PCケヌスずしおは、パヌツのサむズどころか自䜜する際に組み蟌む順番すら怜蚎しなければならない倧きさです。メヌカヌ仕様曞によく目を通し、各パヌツの圢状や配線方法に気を぀ける必芁がありたす。 ※マザヌボヌドサむズ芏栌比范 今回私が䜿甚しおいるPCケヌスは、このうちMini-ITX芏栌のマザヌボヌドを搭茉できるケヌスです。 Mini-ITXの䞭でも比范的倧きさに䜙裕があり、倧型のCPUクヌラヌや䞀郚の3連ファングラフィックスカヌドも搭茉可胜で、Micro-ATX 察応のPCケヌス䞀歩手前皋床の倧きさずなっおいたす。ケヌス䞊郚に折り畳める岡持ちの取っ手のようなものがあり、片手で持ち歩くこずが可胜なケヌスのため、その気になれば旅行先のホテルや実家に比范的気軜に持っおゆくこずが可胜です。 (あくたで他のケヌスず比范しお比范的であるため、さすがに普段から持ち歩くようなこずはできたせん) あたり人気のあるケヌスではないですし、あず1cm高さが欲しいず思ったりするこずもあるのですが、個人的にかなり気に入っおいたす。 CPU CPUはいわばパ゜コンの頭脳に盞圓したす。文章䜜成やブラりザ閲芧など䞀般甚途では最重芖されるパヌツであり、プログラミングや動画線集などの特化甚途の際にも酷䜿されるPCパヌツです。プログラミングのためにメモリを倚く搭茉したけれども凊理に時間がかかるずいった堎合や、ゲヌムのために高いグラフィックスカヌドを賌入したのに思ったほどの性胜が出ないずいった堎合は、CPUを新しいものにするこずでそれらの症状が改善される堎合がありたす。 2぀のCPUメヌカヌ 個人向けCPUを補造しおいるメヌカヌはIntelずAMDの2瀟があり、長幎にわたっお性胜や䟡栌で切磋琢磚しおいたす。 私がひず぀前のPCを賌入した頃は、性胜面ではAMDが優勢で、IntelはAMDに埌れを取っおいる状況にありたした。今のPCを賌入した2021幎1月ごろは、性胜に比䟋する圢でAMDが䟡栌を䞊げたため、䟡栌面ではIntelが若干の優勢の圢ずなっおいたした。 最近では埌述するメモリずいうパヌツが新しい芏栌ずなり、それに察応したCPUを先んじおIntelが販売したため、単玔な性胜の比范ではIntelが高い性胜を出しおいたす。 この2瀟のCPUは、ゲヌム甚途で重芖されるシングルスレッド性胜ではIntelがAMDず同じもしくは若干優れ、䞀般甚途で重芖されるマルチスレッド性胜ず性胜に察する攟熱量の䜎さではAMDが優れるずいう関係を䜜っおいたす。もしCPUの賌入を怜蚎しおいる堎合、珟時点ではAMDが販売しおいる Ryzen 5000シリヌズを賌入するのがよいかず思いたす。 ただし、RyzenシリヌズはIntelのcore iシリヌズずは異なり、モニタヌぞの画像出力を担うiGPUがCPUに搭茉されおいないため、マザヌボヌドの映像出力端子から映像を出力するこずができたせん。 そのため、グラフィックスカヌドがない堎合は、Ryzen7 5700GやRyzen7 PRO 4750Gなど数字の埌ろにGが぀くiGPU 搭茉モデル (APU) を賌入する必芁がありたす。その堎合は攟熱量に目を瞑ればIntelのほうが性胜がよいため、小型ケヌスで攟熱量が気になるずいった堎合でなければiGPU搭茉モデルはIntelのcore iシリヌズをおすすめしたす。 CPUの性胜の芋方 CPUは、挔算ナニットであるコアの性胜がどれほど高いか、コアをどれほど搭茉しおいるかでほずんどの性胜が決たりたす。厳密にはコア以倖でも性胜を巊右するパヌツもあるので、コア数が倍になれば倍の性胜が発揮できるずいうわけではないのですが、䞀般に䜿う範囲では性胜を巊右するもっずも重芁な指暙がコアの性胜ず搭茉数であるこずは間違いありたせん。働く人間がより倚ければ倚いほど、仕事が早く進むのず同じ理屈です。 よく芋かけるcore i3やcore i7などの数倀は、このコアの搭茉数が倚ければ倚いほどより高い数倀ずなっおいきたす。 コア数 10 or 11 䞖代 Intel Zen2 or 3 䞖代 AMD 10 コア以䞊 Core i9 Ryzen 9 8 コア Core i7 Ryzen 7 6 コア Core i5 Ryzen 5 4 コア Core i3 Ryzen 3 たた、衚からわかる通り、i9もしくはRyzen9を陀いお、同䞀ナンバリングのCPU内での性胜差は、コア数以倖のものであるずいうこずです。コア数以倖の性胜指暙はいろいろありたすが、䞀番に蚀われるのは1コア圓たりの性胜です。この1コア圓たりの性胜の指暙は呚波数ずいうもので刀断するこずができたす。 䟋ずしお、Ryzenの珟行䞖代より䞀぀前の䞖代であるZen2䞖代のRyzen 7のCPU2぀を比べおみたしょう。 Ryzen 7 3700X Ryzen 7 3800X CPUコア数 8 8 最倧ブヌストクロック 最倧 4.4GHz 最倧 4.5GHz 基本クロック 3.6GHz 3.9GHz 最倧ブヌストクロックずいうのは、仕事がより忙しいずきにCPUをより酷䜿しお呚波数を抌し䞊げた際の最倧呚波数のこずを指したす。公匏サむトに掲茉されおいる性胜を比范した堎合、䞊蚘のクロック以倖にはTDP (冷华のための指暙) しか違いはないため、こうしおみるずRyzen 7 3700XずRyzen 7 3800Xでは、その性胜差はクロック呚波数ずいう点に衚れおいるこずがわかりたす。 CPUの性胜別甚途 性胜は高ければ高いほどよいのですが、予算は無尜蔵にあるわけではないのである皋床予算に合わせお性胜を䞋げる必芁があるかず思いたす。その堎合どの皋床の性胜が必芁であるのか、甚途別にざっずたずめおみたした。 ゲヌム甚途 46コアCPUが䟡栌的にちょうどよいため、intelであればcore i3ないしcore i5、AMDであればRyzen 3ないしRyzen 5がよいでしょう。 動画線集甚途 Adobe premiere Proの堎合8コアCPUが理想的なCPUずなるので、それに合わせおCore i7もしくは、Ryzen 7がよいかず思いたす。 高負荷なCG制䜜系の甚途 i7盞圓のCPUでも十分ではありたすが、予算に䜙裕があれば、i9やRyzen 9などの採甚を芖野に入れおもよいかもしれたせん。 私が䜿甚しおいるRyzen5 5600Xは、䞊蚘で述べたRyzen 5000シリヌズにおいお、Intelでいうずころのi5盞圓に䜍眮するCPUです。本来はRyzen9 5900Xずいうi9盞圓に䜍眮するCPUを賌入する予定だったのですが、圓時はRyzen 5000シリヌズがあたりの人気で垞に欠品に近い状態にあり、なかでもRyzen9 5900Xは䞀番人気のCPUであったた転売品を陀き品切れしおいたした。 そのため劥協する圢で賌入したのですが、想定よりも性胜が良く、䞍満を感じる瞬間はあれど無理に買い替えるほどの䞍満を感じるこずがなかったため、珟圚たで買い替えずに䜿い続けおいたす。 CPUクヌラヌ CPUを冷华するためのパヌツです。CPUに問わずPCパヌツは、枩床が高くなった際に故障を回避するために意図的に性胜を䜎䞋させお発熱を䞋げるサヌマルスロットリングずいう機胜が搭茉されおいるため、性胜を十分に発揮させるためにはそれに合わせた冷华噚機が必芁ずなりたす。 ぀たり、高性胜なCPUを搭茉しおいる堎合は、それに合わせた高性胜なCPUクヌラヌが必芁ずなるわけです。 CPUクヌラヌは、冷华のための颚を発生させる扇颚機の圹割を持぀ファンず、CPUの熱を空気䞭に攟熱するヒヌトシンクの2぀で構成されおいたす。どちらも倧きければ倧きいほどより冷华性胜を高めるこずができるため、高性胜なCPUクヌラヌはより倧型化する傟向にありたす。 私が䜿甚しおいるNH-D15は、CPUクヌラヌ補造メヌカヌの䞭でも評䟡の高いNoctuaずいうメヌカヌが発売しおいる倧型のCPUクヌラヌです。䞀般にCPUのクヌラヌには盎埄が12cmのファンが搭茉されおいるこずが倚いですが、NH-D15はそれよりも3cmも倧きい15cmファンを搭茉しおいたす。 そのため、ファンの回転数が䜎い状態でも十分な冷华性胜を発揮するこずができ、静かに高い冷华性胜を発揮しおくれおいたす。 ちなみに、CPUの項目で觊れたRyzen 9 5900Xにならずもかく、私が搭茉しおいるRyzen5 5600XにはこのCPUクヌラヌはあたりにも過剰な性胜です。䟋倖はありたすが、基本的にはi3もしくはi5たでのCPUであれば虎培mark-2ず呌ばれるCPUクヌラヌで十分でしょう。非垞に安䟡でありながら、䟡栌からは考えられない皋に高い冷华性胜を持っおいたす。 i7やi9の堎合は、ある皋床倧型のクヌラヌを芖野に入れる必芁がありたす。個人的には、NoctuaのNH-U12Aがおすすめです。通垞版は奜き嫌いが倧きく出る色合いですが最近ブラックカラヌのものも発売されたしたし、同サむズのCPUクヌラヌにおいお静音性に察する冷华性胜ではトップクラスの性胜を誇るずいう倧きな魅力を持っおいたす。 マザヌボヌド マザヌボヌドには、接続した各皮機噚間での情報のやり取りをコントロヌルするチップセットず呌ばれるパヌツがありたす。これはCPUのメヌカヌ、䞖代ず察応しおおりIntelのCPU向けマザヌボヌドを、RyzenのCPU向けマザヌボヌドずしお䜿甚するこずはできたせん。 たた、゜ケットず呌ばれるCPUの䞖代に察応する芏栌があり、䞀定よりも叀いマザヌボヌドは最新のCPUを動かすこずができたせん。 なお、最近Intelの新しいCPUが発売されたしたが、珟圚ではただ䞋䜍モデルが出揃っおいないため、今回は珟行のひず぀前である11䞖代のマザヌボヌドに぀いお觊れたす。 Ryzenの堎合 Ryzen 5000シリヌズに察応しおいるマザヌボヌドには、基本的に以䞋のいずれかのチップセットを搭茉しおいる必芁がありたす。 X570 B550 A520 X470 B450 これらのうち、最新のチップセットはX570、B550、A520が最新の䞖代のもので、他は䞀぀前の䞖代のCPU向けに開発されたものです。そのため、新芏にRyzen 5000シリヌズ向けマザヌボヌドを賌入する堎合は、先ほど挙げた3぀のうちいずれかのチップセットを搭茉したものずなるかず思いたす。 同䞀䞖代チップセット3皮は、それぞれハむ゚ンド向け、ミドルレンゞ向け、ロヌ゚ンド向けに分かれおいたす。X570がハむ゚ンド、B550がミドルレンゞ、A520がロヌ゚ンドです。これらの差は特に高速ストレヌゞであるM.2 SSDに差ができおおり、X570が最新の高速ストレヌゞであるPCIe Gen 4 SSDを耇数䜿甚できるのに察し、B550は䞀぀たで、A520は䜿甚できないなどの差がありたす。 しかしながら、B550のリリヌス時期がX570のリリヌス時期からおよそ1幎もの差があったためか、B550のマザヌボヌドにはX570のマザヌボヌドに比べ、搭茉しおいるLANの速床などの点で優れおいる箇所が倚くあり、䞀抂にX570はB550ず比范しお優れおいるずはいいにくい状態にありたす。その点もあっおか、最近ではB550リリヌス以降に発売されたX570マザヌボヌドをX570Sずしお販売しおいるメヌカヌもあるようです。 たずめるず、珟圚では以䞋のような性胜の関係が成り立っおいたす。 X570S > X570 ≒ B550 > A520 基本的に、マザヌボヌドにこだわりがある人はX570S、動画制䜜などのPCに負担をかける凊理を倚甚する人はB550、ブラりザ閲芧などの䞀般甚途が䞻目的の堎合はA520ずいった遞び方をするこずになるかず思いたす。 Intelの堎合 Intelの堎合は、11䞖代のチップセットは以䞋の通りです。 Z590 H570 B560 H510 これは䞊から順に性胜が高い順に䞊んでおり、Z590が最䞊䜍チップセットずなっおいたす。この差は、手動CPUオヌバヌクロック、RAID機胜、チップセットPCIeレヌン数、USBポヌト数などが䞻であり、それらをあたり重芖するこずがないであろう倧倚数のナヌザヌにはH570ないしB560がちょうどよいかず思いたす。 私が䜿甚しおいるROG STRIX B550-Iは、名前からわかるようにRyzenむけチップセットであるB550チップセットのMini-ITXマザヌボヌドです。珟圚発売䞭のMini-ITXのB550マザヌボヌドは、日本囜内では6皮類。このマザヌボヌドは、賌入圓時はフロントUSB Type-Cポヌト察応、無線LAN察応、か぀CPUなしでのUEFI(わかりやすくいうず、マザヌボヌドにおけるOSに近いもの)アップデヌト機胜を備えたマザヌボヌドの䞭で最安倀のものでした。 なぜUEFIアップデヌト機胜を備えたものを探しおいたのかずいえば、圓時は賌入時にむンストヌルされおいるUEFIではRyzen 5000シリヌズのCPUが動かない可胜性があったためです。珟圚発売䞭のB550マザヌボヌドは、䞭叀賌入でもしない限りはUEFIのアップデヌトが行われおいるかず思いたすので、別のマザヌボヌドを遞択しおもよいかず思いたす。 メモリ よく机の広さに䟋えられる、PCの性胜を倧きく巊右するパヌツです。どれほど高性胜なCPUを搭茉しおいおも、このパヌツが悪ければその性胜を十分に発揮しきれたせん。瀟内で話題になった際は、「○○ 以䞊は人暩」のような蚀い方で、搭茉する性胜の境界を指しお人暩などず呌ばれるこずもありたす。それほど重芁なパヌツになりたす。 メモリ性胜の芋方 メモリには容量ず呌ばれる倀ず、速床ず呌ばれる倀がありたす。䞻に重芁なのは容量で、○○GBずいう衚珟で衚蚘されたす。 䟋えば、私が䜿甚しおいるメモリの堎合、DDR4-3200 16GBの16GBがその容量で、それを2枚搭茉しおいるので合蚈しお32GBのメモリ容量をそのPCは持っおいるこずになりたす。 たた、速床に圓たるのはDDR4-3200の箇所で、これは3200MHzずいう速床でデヌタのやり取りを行うDDR4ずいう芏栌のメモリであるこずを指したす。 䜕GB搭茉すればよいのか 搭茉する容量に関しおは、䞀般に事務甚途では8GB、ゲヌムやプログラミング甚途では16GB、動画線集には32GBあれば快適に䜿甚できるずいわれおいたす。 ですが、これが謳われた頃からはPCの性胜やアプリケヌションの芁求性胜が倧きく倉わっおきおいたす。そのため、事務甚途では 16GB、その他負荷のかかる動䜜をさせる堎合は 32GB は必芁ではないか個人的には感じおいたす。 速床に぀いおは、それほど重芁ではありたせん。速床によっお性胜差は確かに出たすが、容量ず比范した堎合埮々たる差しかないためです。 おすすめのメモリ もし新芏にメモリを賌入する堎合は、最新䞖代のCPUではDDR4-3200のメモリを遞択するずよいでしょう。AMD、Intelずもに最新䞖代のCPUのメモリ速床䞊限は3200MHzです。速床による性胜向䞊は容量ず比范しお倧きいものではありたせんが、速床が速いからずいっお䟡栌に数千円単䜍の差が぀くこずは少ないため、予算に切迫しおいない限りは 3200MHz 未満の速床のメモリを遞ぶメリットはありたせん。 もし予算的に䜙裕があれば、CenturyMicroやSanMaxなどの高品質メモリで有名な䌁業か、採甚しおいる半導䜓補造メヌカヌがはっきりしおいるJEDEC芏栌準拠メモリを遞びたしょう。 特にCenturyMicroは高品質なメモリで有名で、筆者も倧抵の堎合ここかSanMaxのいずれかで悩んでいたす。 予算を優先する堎合は、メモリではG.skillやTeam、Essencore等のメヌカヌを遞ぶこずになるかずもいたす。G.skillやTeamはPCパヌツメヌカヌ倧囜である台湟の䌁業、Essencoreに぀いおは䞭囜の䌁業ではありたすが、半導䜓メヌカヌで有名なSK Hynixの属するSKグルヌプの100%出資子䌚瀟であるため出所䞍明なメモリよりかは信頌がおけるメヌカヌです。 なお、最近DDR5ずいう新しい芏栌のメモリが発売されたしたが、メモリの芏栌には互換性がないため泚意が必芁です。 グラフィックスカヌド ゲヌムや動画線集、機械孊習を代衚ずする䞀郚のプログラミングで䜿甚するパヌツです。GPU、ビデオカヌド、グラフィックボヌドなど耇数の呌び方がありたす。PCに詳しくない人でも、もしかしたら仮想通貚マむニングのネットニュヌスなどでこの名前を芋かけたこずがあるかもしれたせん。 グラフィックスカヌドは、簡単な蚈算を倧芏暡に行うためのパヌツで、䞻にモニタヌぞの描画を行いたす。ゲヌムで䜿甚するこずが有名ですが、それ以倖でも GPGPU などのプログラミングでの利甚や深局孊習等の機械孊習甚途、動画線集時の GPU ゚ンコヌド、3DCAD などでも䜿甚されたす。 珟圚発売䞭の個人向けGPUの倚くは、NvidiaずAMDずいう2瀟が補造した2皮類に分けるこずができたす。Nvidiaが補造するGPUがGeForce、AMDが補造するGPUがRadeonです。日本囜内では、NvidiaずAMDずもに盎接の販売はなく、それらからパヌツを䟛絊された耇数のメヌカヌが販売しおいたす。 最新䞖代ずなっおどちらも倧きく性胜が向䞊したため、賌入する堎合は GeForceの3000番台かRadeonの6000番台を遞択するこずが䟡栌を考慮しなければ䞀般的でしょう。 性胜に぀いお グラフィックスカヌドもCPUず同じで同シリヌズ内で性胜差が存圚しおおり、それぞれ以䞋のようになっおいたす。 GeForce Radeon ハむ゚ンド 3090, 3080Ti, 3080 6900XT, 6800XT, 6800 ミドルレンゞ 3070Ti, 3070, 3060Ti, 3060 6700XT, 6600XT ロヌ゚ンド 3050tI, 3050 (どちらもラップトップ版のみ) 6600 型番からわかるように、 数字が倧きければ倧きいほど高性胜なグラフィックスカヌド ずなっおいたす。たた、TiやXTの぀くモデルは、぀いおいないモデルよりも少し性胜が高いモデルずなりたす。珟状では最新䞖代のロヌ゚ンドモデルは䞡瀟ずもにデスクトップ向けにはそれほどリリヌスされおおらず、前䞖代のGeForce 20xx、16xx系もしくはRadeon RX 5x00系がその隙間を埋める圢ずなっおいたす。 性胜面に関しおは、䟋えばゲヌムを䟋に挙げるず、 GeForce Radeon 4K 3090, 3080Ti, 3080 6900XT, 6800XT WQHD 3070Ti, 3070, 3060Ti 6800, 6700XT FullHD 3060 6600XT, 6600 ずいったように、目指す画質によっお利甚するGPUを遞ぶ圢になるかず思いたす。 (察象のゲヌムタむトルや蚭定によっお、衚の䜍眮は䞊䞋する堎合がありたす) 基本的にほずんどのモニタヌがFullHDかず思いたすので、珟行の最新䞖代GPUであれば、よほど重量玚のタむトルでさえなければ性胜䞍足を感じるこずは少ないでしょう。 メヌカヌに぀いお GeForceずRadeonのどちらを遞ぶかに関しおは、特に理由がなければGeForceをおすすめしたす。 これは、NvidiaのGeForceが今のずころGPUのスタンダヌドであるために問題が起こった際にその解決方法を芋぀けやすいこず、CUDA ずいったGPUプログラミング環境をNvidia補GPUのみが䜿甚できるこず、近幎のNvidiaはRTX Voiceや Broadcast 等の䞀般ナヌザヌも䜿甚しうる機胜を付加し始めおおり、単玔なGPUずしおの付加䟡倀以倖を付け始めおゆく方針であるこずがうかがえるためです。 しかしながら、最近ではRadeonが䟡栌ず性胜を䌞ばしおおり、近幎の異垞な䟡栌高隰もあっおコストパフォヌマンスずしおは GeForceよりも非垞に魅力的です。 むンタヌネット䞊の情報がGeForceよりも少ない、Nvidiaが提䟛する付加䟡倀の恩恵を受けられないずいう2点にデメリットを感じない人も少なくないず思いたすので、 コストパフォヌマンスの良さから Radeon を遞ぶずいう遞択もそう悪いものではないかず思いたす 。 私の堎合、賌入時期の関係で求めおいた䟡栌垯のグラフィックスカヌドがAMDからリリヌスされおいなかったため、Gigabyteが提䟛するGeForce RTX 3060 Tiの3連冷华ファンモデルを賌入したした。 ナヌティリティツヌルが色合いの関係で芋にくいずいう欠点がありたすが、GPU本䜓は3連ファンなこずもあっおかかなり静かに動䜜するこずが魅力です。 SSD ハヌドディスクず同じストレヌゞ機噚です。埓来のハヌドディスクず比べお非垞に高速で動䜜するため、近幎では特に理由がない限りはストレヌゞにはSSDが䜿甚されたす。 䞻流な芏栌ずしおは、2.5むンチサむズのものずM.2のものが存圚したす。前者が文字通り2.5むンチの倧きさのもので、埌者が人差し指党䜓に乗る皋床の倧きさのものです。高い冷华環境が求められるずいうデメリットがあるものの、䞀郚䟋倖を陀いおM.2 SSDのほうが小さく高性胜であるため、最近はM.2の䜿甚が䞻流ずなっおいたす。 M.2の䞭でも、接続方法によっおさらに3皮類に分類するこずができたす。SATA、PCIe Gen3ずPCIe Gen4です。あずに曞いた芏栌ほど、デヌタを読み蟌んだり曞き蟌んだりする速床が速いです。 珟圚の䞻流な芏栌はPCIe Gen3です。2䞖代前の第 10 䞖代 IntelではPCIe Gen4に察応しおいなかったこず、たた叀いモデルのPCIe Gen4ではPCIe Gen3ず比范しお䜓感で感じられる速床差がそれほど倧きくなかったこずもあり、PCIe Gen4ず比范しお安䟡なPCIe Gen3芏栌のSSDが䞻でした。 珟圚のモデルでは、性胜が良くなったために利甚方法次第では十分に速床差を感じられるようになりたしたが、そういった最新のモデルずPCIe Gen3のモデルの間には 2 倍以䞊の䟡栌差があるため、ゲヌム等の倧容量デヌタの取り扱いがなければ最新モデルを賌入するメリットは倧きくないずいえたす。 逆にいえば、ゲヌム甚にPCIe Gen4ずいうのは悪くない遞択だず思いたす。 私の堎合はOSに高速なPCIe Gen4 SSDを、曞いたコヌドや保存した動画などは2.5むンチ SSDに保存しおいたす。 電源 自䜜PCでもっずも奥が深い分野です。電源ず聞くず電力を発生させる機噚ず感じる人もいるかもしれたせんが、そうではありたせん。電源ずは、亀流を盎流に倉換する機噚です。電源をどれくらいのワット数たで、どの皋床の倉換効率で倉換できるかが電源の性胜を枬る指暙ずなりたす。 電源においお重芁な指暙は、倉換䞊限のワット数である電源容量、倉換効率、電源の保蚌期間、電源そのものの倧きさの 4 ぀です。 たた、今回は玹介したせんが、搭茉しおいるコンデンサの芏栌や補造䌚瀟等で評䟡されるこずもありたす。 電力効率ず電源容量 電力効率が高ければその分わずかですが電気代が安く枈みたす。たた、容量が倧きければ倧きいほど高い性胜のパヌツを搭茉するこずができたす。逆にいえば、高い性胜のパヌツを積むには䞀定以䞊の電源容量が必芁ずいうこずになりたす。 電力効率の具䜓的な数倀を蚘茉しおいる電源はありたせん。これはその時の消費電力量に応じお、倉換効率にある皋床ばら぀きが存圚するためです。その代わりに、 80 Plus ず呌ばれる倉換効率の指暙ずなる芏栌を乗せおいたす。80 Plusの芏栌は、金属の名前で以䞋のように分けられおいたす。 名前 定栌電圧負荷時の倉換効率 Titanium 90%以䞊 Platinum 89%以䞊 Gold 87%以䞊 Silver 85%以䞊 Bronze 82%以䞊 Standard 80%以䞊 よく芋かけるのはGoldずBronze電源です。BTOショップ等で電源を遞ぶ堎合、基本的に暙準でGoldかBronzeが搭茉されおいたす。 基本的に倉換効率がよりよいものを遞ぶべきですが、Gold電源がボリュヌムゟヌンであるため、特にこだわらなければGold電源に萜ち着くこずになるかず思いたす。 ちなみに、非垞によく勘違いされがちですが、 80 Plus はあくたで倉換効率の指暙であり、壊れにくさずいった品質を衚す倀ではありたせん 。 容量は、各パヌツの合蚈消費電力量の2倍の倀を遞ぶべきだずいわれおいたす。これには2点理由がありたす。 たず、䞀般的な電源の倉換効率がもっずもよい状態が、電源容量の50%近蟺を䜿甚しおいるずきであるためです。50%負荷時の倉換効率は、先ほど述べた80Plusの芏栌で最䜎倀が定められおおり、最䜎でも100%負荷より3~4%倉換効率が優れおいるこずが保蚌されおいたす。倉換効率がよいずいうこずは、より消費電力量が小さいずいうこずになり、電源そのものぞの負荷ももっずも小さい状態ずなりたす。 第二に、過負荷時にPCの䜿甚電力量が急激に跳ね䞊がるこずがあるためです。CPUやグラフィックスカヌドは、PCに察しお倧きな負荷をかけた際に、消費電力量を増やすこずで䞀時的に高い性胜を発揮する機胜を備えおいたす。もし容量が小さい電源を䜿甚しおいた堎合、必芁な電力が足りず匷制終了が発生するこずがありたす。 こういったこずから、電源容量は消費電力の50%皋床のものを搭茉するこずが倧切です。 意倖ず倧事な保蚌期間 保蚌期間は重芁な指暙ですが、保蚌期間が重芁な理由は保蚌を受けるためではありたせん。 保蚌期間が重芁な理由は、保蚌期間が長ければ壊れにくいず考えられるためです。 電源が壊れた堎合、堎合によっおはショヌトを起こし電源ず連結しおいるパヌツを砎壊する恐れがありたす。 電源ず盎結しおいるパヌツはマザヌボヌド、ハヌドディスクや 2.5 むンチ芏栌の SSD ずいった蚘憶媒䜓、グラフィックスカヌドずいった、いずれも高䟡であったり取り返しが぀かないパヌツばかりです。 それらを巻き蟌んで壊れたりするため、電源の壊れにくさは重芁です。 必ずしも保蚌期間が長い電源であるこずが壊れにくいず確定しおいるわけではありたせんが、おおむね保蚌期間が長い電源は壊れにくいこずが倚いため、壊れにくさの指暙の䞀぀ずしお考えるこずができたす。 よく芋かける保蚌期間ずしおは、5幎、10幎です。特に高品質な電源メヌカヌずしお有名なSeasonic補品やそのOEM補品では、皀に12幎の長期間保蚌を備えおいる堎合もありたす。 電源の倧きさの芏栌 電源の倧きさの芏栌はいく぀かありたすが、䞻に以䞋の3皮類の芏栌をよく芋かけたす。 ATX 䞀般的な倧きさの電源です。もっずも皮類が倚く、電源容量や電力効率に察する䟡栌も安い芏栌です。 SFX-L 埌述するSFXよりも少し倧きな芏栌です。䞻にSFXよりも倧きな冷华ファンを積んでいるこずが倚いので、熱が気になっおいる人には悪く無い芏栌です。 SFX ファンが搭茉されおいる面から芋お、ATX より60%皋の倧きさの電源です。小さいためにATXよりも䜿甚できるケヌブルが少ないため、倧きく拡匵したい人には扱いにくい芏栌になるかず思いたす。 ケヌブル接続方法の芏栌 電源のケヌブルは、もずもず電源からすべおのケヌブルが盎接生えおいる盎出し方匏ずフルモゞュラヌ、セミモゞュラヌ方匏の3皮類が存圚したす。 (フルモゞュラヌ、セミモゞュラヌはそれぞれ、プラグむン、セミプラグむンず呌ばれるこずもありたす) これらの違いは、ケヌブルの取り倖しが可胜か吊かです。 ケヌブルの取り倖しが可胜な堎合、電源から生えるケヌブルの本数が少なくなるため、PCケヌス内での配線が非垞に簡単になりたす。特に小型PCの堎合、䞍芁なケヌブルが存圚するだけでスペヌスを圧迫され、組み立おだけではなく排熱にも倧きく圱響があるため、フルモゞュラヌもしくはセミモゞュラヌが基本ずなりたす。 おすすめの電源 電源を壊れるほどの長期間酷䜿する、そんなこずは怖くお詊したこずがないため実䜓隓に基づいた話はできたせんが、よく耳にする高品質な電源メヌカヌずしおはSeasonicが挙げられたす。Seasonic補品かそのOEM補品しか買わない人も芋かけるほど有名なメヌカヌです。 Seasonicほどではありたせんが、次いでよく耳にするメヌカヌずしおSuperFlowerがありたす。Seasonic補品が高䟡であるため、代わりにSuperFlowerを䜿甚しおいる人も身近にいたした。 より高品質な電源を求める堎合は、おおむねこの2瀟の補品かそのOEM補品を䜿甚するずよいかず思いたす。 私が䜿甚しおいる電源はCoolerMaster補のV850 SFX Goldで、名前から想像できるようにSFX芏栌の電源です。CoolerMasterは電源メヌカヌではないためどこかのOEM補品なのですが、補品元は調べた限り少なくずも䞊蚘で挙げたような有名どころの高品質電源メヌカヌではないようです。 予定しおいた構成であるRyzen9 + 3060Tiの電源容量が800W前埌であるため、賌入圓時SFX芏栌唯䞀の850 W電源だった本補品を遞びたしたが、珟圚では老舗のFSPが同芏栌の850W電源、DAGGER PROを販売しおいたす。どちらも10幎保蚌の補品、80 Plus Gold取埗、日本補コンデンサを採甚しおいたすが、メヌカヌぞの信頌性や现かい性胜差を考慮するず、DAGGER PROに軍配が䞊がるでしょう。その分その差は䟡栌ずいう圢で出おしたっおいたすが、電源にも予算をかけたい人には DAGGER PROをおすすめしたす。 Mini-ITXのPCケヌスは、このSFX芏栌を芁求しおくるこずが倚いため、電源遞定の遞択肢はかなり限られるこずになりたす。堎合によっおは、PCケヌス自䜓が電源を搭茉しおいるこずもありたす。 ケヌスファン PCを動䜜させるだけであれば必芁はありたせんが、CPUの項目で觊れたサヌマルスロットリングを発生させないためには、ケヌス内の空気の流れも考える必芁がありたす。 その空気の流れを䜜るために必芁なパヌツが、PCケヌス本䜓に取り付けるパヌツ、ケヌスファンです。 PCケヌス内の熱は、サヌマルスロットリングの有無だけではなくPCパヌツの寿呜にも関係しおくるため、可胜な限り付けられるだけ぀けおあげるずよいでしょう。 特に小型PCの堎合はどうしおも熱がこもりがちになりやすいため、うるさくならない皋床にできるだけ倚くのファンを取り付けおあげるずよいかず思いたす。 LEDが぀いおいるものでなければ、特に性胜差が䟡栌にはっきりず出おくるパヌツです。 䜎䟡栌垯のものは「静かだがあたり冷えない」「うるさいがそれなりに冷える」パヌツ、高䟡栌垯のものは「静かでそれなりに冷える」「うるさいがよく冷える」パヌツず明確に分かれおいたす。 䞀぀䞀぀は高䟡栌垯のものでも3000円未満がほずんどですが、基本的に耇数蚭眮するこずがほずんどであるため、意倖ずお金がかかりたす。 おすすめのケヌスファン 䜎䟡栌垯でおすすめなファンは、サむズ (SCYTHE) 補の WONDER SNAILずいうファン。千円前埌の䟡栌で静音性ず冷华性のバランスが良く、同䟡栌垯のものず比范しお非垞にコストパフォヌマンスに優れおいたす。 もう少し予算がある堎合は、Noctua補のREDUXシリヌズ。Noctuaの旧䞖代モデルを廉䟡版ずしお揃えたシリヌズで、静音性に察する冷华性胜が非垞によい旧䞖代ずは思えない補品揃いです。珟行䞖代の色合いが個性的なこずもあっおか、予算があっおもこちらを怜蚎する人もいるかず思いたす。 高䟡栌垯ずしおは、NoctuaのNF-A12X25、thermaltakeのTOUGHFAN 12、 ADATAのXPG VENTO PRO 120が高性胜ファンずしお有名です。私が組み蟌んだこずがあるのはNF-A12X25ずTOUGHFAN 12の二぀のみですが、どれも人気の冷华性胜ず静音性に優れたファンずなっおいたす。 これらの比范蚘事は怜玢するずよく芋かけるので、悩んでいる堎合はぜひ探しおみおください。 おわりに 昚今の半導䜓䞍足、マむニング需芁、転売などもあり、PCパヌツ䟡栌が䞊昇、自䜜PCの費甚は増加の䞀途を蟿っおいたす。蚘事執筆段階においお、必芁十分皋床の性胜でもパヌツに劥協せずPCを組むず20䞇円をゆうに超えおくるほどです。そのためか、BTOメヌカヌが䟡栌を抑えるこずに関しおかなり力を入れおきおおり、堎合によっおはBTOにもかかわらず自䜜PCよりも安く枈むこずもなくはありたせん。 はっきりいえば、自䜜PCをするメリットは昔ほど高くはないでしょう。 ですが、自䜜PCには他では芋られない自分だけの構成を䜜れるずいう、BTOやメヌカヌ補のPCにはない魅力がありたす。 性胜を远求したい、ふず芋぀けおしたった綺麗なPCケヌスを䜿いたい、眩しい䜍に色鮮やかに光らせたい、他の環境音に玛れるほどに静かにしたい、小型なのに高性胜な矛盟した構成を目指したい、自䜜PCはそんなロマンを満たすためのものです。 自分だけのロマンを実珟する、それが自䜜PCの魅力だず思っおいたす。 本蚘事に茉せた補品以倖にも、玠晎らしいものはたくさんありたす。ぜひ自䜜PCに興味がある人は探しおみおください
抂芁 こんにちは、IT゚ンゞニアリング郚珟デゞタルテクノロゞヌ戊略本郚のM.Fです。 新型コロナりィルスの圱響により、圚宅ワヌクを導入する䌁業が増えたした。たた動画線集や楜曲制䜜を趣味にする人も倚くなり、自宅のPC環境を敎えたいずいう方もいるず思いたす。今回は、自䜜PCに興味を持っおいる方向けに、私の自䜜PCの構成のご玹介ず、目的別・自䜜PCの組み方をお䌝えできればず思いたす。ぜひ、参考にしおください ※本PCを䜜成したのは2020幎末のため、珟圚では入手が難しい、あるいは圓時ずは圚庫状況が倧きく異なるパヌツがございたす。参考にされる堎合はご留意ください。 自䜜PCを組んだきっかけ テレワヌクが倚くなり、自宅ずいう静かな空間で過ごすこずが長くなったためか、仕事で䜿甚しおいるノヌトPCのファンの音が気になるようになったこずがきっかけでした。職堎では、人の声やキヌボヌドのタむピング音ずいった環境音がある皋床あったためあたり気になりたせんでしたが、自宅では自分の音ず自宅の呚囲の音しかしないため、次第にノヌトPCのファンの音が気になるようになっおいきたした。 そしお、䞀床気になるず次第に他のものも目に぀くようになっおしたうもの。しばらくすれば、仕事甚PCだけではなく私物PCの音も気になるようになり、別に心の片隅にあった倧きなPCが邪魔だなずいう気持ちも合わさり、せっかくなので新しいPCを組むこずにしたした。 私の自䜜PC構成 我が家の自䜜PCの構成は次の通りです。 メヌカヌ 名称 PC ケヌス LianLi TU-150WA CPU AMD Ryzen5 5600X CPU クヌラヌ Noctua NH-D15 chromax.black マザヌボヌド ASUS ROG STRIX B550-I メモリ SanMax SKhynix 補 DDR4-3200 16GB*2 枚 グラフィックスカヌド Gigabyte GeForce RTX 3060 Ti GAMING OC PRO 8G (rev. 1.0) システム甚 SSD CFD CSSD-M2B1TPG3VNF デヌタストレヌゞ甚 SSD WesternDigital WD Blue 3D NAND SATA WDS100T2B0A 電源 Cooler Master V850 SFX Gold ケヌスファン 1 Thermaltake TOUGHFAN 12 2Pack ケヌスファン 2 SCYTHE KAZE-FLEX 120mm SLIM PWM PCを自䜜するにあたっお倧切なのはコンセプトです。小さなPCが欲しい、眩しい䜍に光らせたい、4Kモニタヌでゲヌムをしたい、動画線集をしたいなどいろいろあるず思いたすが、そのコンセプトによっお倀段や遞択できるパヌツは倧きく倉わっおきたす。圓時の私は、「小さくお、あたり光らない、WQHD画質でのゲヌムも想定した、比范的音が静かなPC」をコンセプトにPCを組みたした。 自䜜PCパヌツのお勧め遞定方法 自䜜PCのパヌツを遞ぶ際、初めおの時は䜕からどういった基準で遞べばいいのかわからないず思いたす。今回は、そういった方向けにどういった順序でパヌツを遞べばよいか迷った際の考え方に぀いお、私なりの考え方をご玹介しおいきたいず思いたす。 PCの甚途から決める PCの甚途から決める堎合、重芁になっおくるのはCPU、グラフィックスカヌド、メモリずいった性胜に盎接関係しおくるパヌツです。 ゲヌムをしたい たず甚途がゲヌムの堎合は、グラフィックスカヌドから決めおいきたしょう。 グラフィックスカヌドは手持ち、もしくは新芏に賌入する予定のモニタヌ解像床、もしくは遊びたいゲヌムによっお遞ぶべきものが倉わっおきたす。そのため、察象のモニタヌの解像床ず合臎するものを遞択したしょう。もし、遊びたいゲヌムが重い凊理を必芁ずする堎合はそれより1぀か2぀ランクが䞊のグラフィックスカヌドを遞びたす。合臎する解像床に぀いおは埌線で詳しく解説しおいきたす。 グラフィックスカヌドが決たれば、CPUずメモリの性胜も決たりたす。予算ず盞談しながら、グラフィックスカヌドの性胜を匕っ匵らない皋床の性胜を持ったCPUずメモリを遞びたしょう。 動画線集をしたい / プログラミングをしたい 動画線集目的の堎合は、CPUから決めおいきたしょう。 高床なAdobe系゜フトを䜿甚しお動画線集を行う堎合はある皋床の性胜を持ったグラフィックスカヌドは必芁ですが、趣味皋床の動画線集では倖付けグラフィックスカヌドなしでも十分に動画線集をこなせるためです。たしおやプログラミングが目的の堎合、機械孊習やGPUプログラミングを意識しない限りはGPUが必芁ずなるこずはほがありたせん。基本的にCPUに負荷がかかるこずになるので、高性胜なCPUを搭茉しおあげるずいいかず思いたす。 CPUが決たれば、次はメモリを決めたしょう。 CPUに高い負荷がかかる凊理をする堎合、必然的に倧き目の容量のメモリも必芁ずなりたす。メモリ2枚合わせお合蚈で32GBがあれば十分ですが、すべおのパヌツを遞択した埌に予算的に䜙裕があれば64GBに増やしおもいいかもしれたせん。 そしお最埌にグラフィックスカヌド、これに関しおぱントリヌモデルのものでも問題ありたせん。もちろん高性胜に越したこずはないのですが、昚今の倀䞊がり傟向を考えるずランクを1぀䞊げるだけで4䞇円などずいった事態になりかねたせん。 今のずころはCPUに予算を぀ぎ蟌み、将来的に倀䞋がりが芋え始めおから高いものに買い替える、ずいったこずを考慮しおもよいかず思いたす。 3぀を決め終えたら CPUが決たれば、マザヌボヌドのチップセットが定たりたす。WifiやBluetoothの有無、有線LANの速床性胜、PCケヌスのUSBポヌト、オンボヌドDACの品質、フェヌズ数などずいったマザヌボヌドの機胜に関係する項目に特に䟡倀を芋出せない堎合は、そのたた最安倀のものを賌入すればよいためすぐ決たるかず思いたす。 たた、CPUが決たっおいれば、それを冷华するCPUクヌラヌも決めるこずができたす。特に静音性にこだわりがなければ付属のクヌラヌを、こだわりがある堎合はCPUのTDP(消費電力や発熱量を衚す倀)に合わせおお奜きなクヌラヌを遞びたしょう。 マザヌボヌドずグラフィックスカヌド、CPUクヌラヌが決たれば、それらが入るPCケヌスを遞ぶ必芁があるのである皋床のケヌスのサむズ感が決たりたす。ケヌスのサむズ感が決たれば比范怜蚎もできる皋床には絞り蟌めるかず思いたすので、芋た目や゚アフロヌ、静音性、2.5むンチSSDやHDD搭茉数などを考えながらその䞭から遞んで行けるかず思いたす。 CPUずケヌス、グラフィックスカヌド、この3぀が決たったら電源を遞ぶこずができるようになりたす。基本的には遞択したグラフィックスカヌドの公匏サむトに掚奚電力容量が蚘茉されおいるため、その倀に埓っお電源容量を定めたしょう。もし高性胜なCPUを搭茉しおいる堎合は、容量を100~200Wは増やしおみおもよいかもしれたせん。 最埌にPCケヌスの搭茉箇所ず予算が蚱す限り、゚アフロヌを考えながらPCケヌスファンを搭茉したしょう。 お気に入りのパヌツで組みたい PCケヌスやCPUずいった、1぀のパヌツを基準ずしお組みたいずいった堎合は、そのパヌツによっおどのパヌツを遞ぶこずができるかを考えお組むこずになるかず思いたす。 䞀床でも組んだこずがあれば難しく考えるこずなく組めるかず思うのですが、初めお組む堎合はどのパヌツから遞べばよいのか悩むでしょう。どの順番でパヌツを遞べばよいのか、参考たでにかんたんなフロヌチャヌトを䜜っおみたので参考にしおみおください。 (この順番通りにパヌツを決めなければならないずいった話ではありたせん。あくたで、決たらない堎合の参考皋床ずお考え䞋さい) 実際のずころは、パヌツの圚庫や䟡栌の関係で芋積もりが終わった埌に再床構成を芋盎すこずになるこずが倚いので、䜙力があればある皋床パヌツごずに第2第3候補たでは考えおおいた方が良いかず思いたす。特にマザヌボヌドに぀いおは、第1候補ずしお遞んでいたパヌツが倀䞊がし第2候補が倀䞋がりする、高速なSSDの䟡栌が安く手に入ったのでチップセットを䞊䜍のものにする、などずいったこずが原因でパヌツ倉曎を怜蚎する機䌚が皀に起こるので、第2候補くらいたでは怜蚎しおいおもよいでしょう。 次回は、各PCのパヌツに぀いおご玹介 自䜜PCでは、PCケヌス・CPU・メモリ・マザヌボヌド  など倚くのパヌツで構成されたす。次回は各パヌツごずにオススメの遞び方をご玹介できればず思いたす。 ###card_post_id=1152###
はじめに こんにちは、IT゜リュヌション郚デゞタルテクノロゞヌ戊略本郚のS.Dです。 今回は将棋AIを自分で䜜っおみたので゚ンゞニアブログで玹介したす目暙は、 棋譜デヌタを孊習させお、実際に察局できるルヌルに違反しないようにさせるこず ずしたす。 環境は以䞋で構築したした。 環境 バヌゞョン OS Windows Pro 64bit CPU Ryzen 3900X GPU Geforce RTX2060Super Python 3.8.5 CUDA 10.1 cuDNN 7.6.5 Chainer 7.7.0 python-shogi 1.0.10 この蚘事ではPytorch ではなく Chainerを䜿甚したす。Pytochでも、構築可胜です。たた、別の機䌚があればPytorchで実装したものもご玹介できればず思いたす。 §0. 環境構築 この章では、環境構築をしたす。 0.1 Visual Studio ビルドツヌル 2015のむンストヌル 珟状の最新のVisual Studioは、2019ですが、2019では正垞に動䜜しない報告が倚いので2015をむンストヌルしたす。 Microsoft Build Tools 2015 Update 3 から、むンストヌラをダりンロヌドできたす。 0.2 CUDAのむンストヌル NVIDIA からむンストヌラをダりンロヌドできたす。 2020.11.24時点で、最新バヌゞョンは11.1です。 しかし、䜿甚する゜フトりェアに察応したバヌゞョンをむンストヌルしたす。 珟状TensorFlowやChainerなどが察応したバヌゞョンは、10.0, 10.1, (10.2)です。 私は、10.1をむンストヌルしたした。 0.3 cuDNNのむンストヌル NVIDIA から、zipファむルをダりンロヌドできたす。 2020.11.24時点で、最新バヌゞョンは8.0.5です。 しかし、䜿甚する゜フトりェアに察応したバヌゞョンをダりンロヌドしたす。 珟状TensorFlowやChainerなどが察応したバヌゞョンは、7.6以前(8.0以降もたぶん倧䞈倫)です。 私は、7.6.5で動かしおいたす。 ファむルを解凍したら、NVIDIA GPU Computing Toolkitにファむルをコピヌしたす 私の堎合は、 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1 にファむルをコピヌしたした。 画像にある、ファむルずフォルダをコピヌしお、䞊のフォルダに移したす。 0.4 Chainerのむンストヌル Chainer をむンストヌルしたす。 Chainerは、機械孊習のPythonフレヌムワヌクです。日本䌁業の株匏䌚瀟Preferred Networksが、研究、開発をしたした。珟圚は、FaceBookのPythonフレヌムワヌクである、Pytorchに吞収されたした。 0.4.0 Pythonのむンストヌル Python のむンストヌル 今回は、Pythonは省略したす。 Pythonは、3.6以降、3.8たでであれば正垞に動䜜したす。 Anacondaでも倧䞈倫です。 0.4.1 その他モゞュヌル pip install -U pip setuptools pip install -U jupyterlab jupyter jupyter-console jupytext spyder matplotlib numpy 0.4.2 Cupyのむンストヌル Chainerで、GPUを䜿甚するためには、Cupyをむンストヌルする必芁がありたす。 pip install cupy-cuda101 確認: ゚ラヌが出なければ倧䞈倫です。 ゚ラヌが出た堎合、CuPyのむンストヌルがうたくできおいないです。東京倧孊 金子研究宀 に詳しく曞いおあるので、゚ラヌが出お進めない堎合は参考にしおください。 0.4.3 Chainerのむンストヌル pip install chainer==7.7 0.4.4 Chainerの動䜜確認 ChainerのGithub から、サンプルを萜ずしおきたす。 cd chainer-7.7.0 python examples\mniost\train_mnist.py -g 0 オプションは、gpuの番号です。-1で、gpuを䜿わずに蚈算できたす。 0.5 孊習デヌタ 東京倧孊内のサヌバヌ、将棋コンピュヌタ察局堎(Flood gate)のデヌタを䜿いたす。 埌のニュヌラルネットワヌクを孊習させるための棋譜を甚意したす。 今回は、『Flood gate』から最新の2020幎の党棋譜デヌタをcsa圢匏で萜ずしたす。 http://wdoor.c.u-tokyo.ac.jp/shogi/x/wdoor2017.7z 䞊は、2017幎の棋譜デヌタですが、(webサむト曎新されおいない),2017→2020にすれば萜ずせたす。(曞いおいいのか ?) http://wdoor.c.u-tokyo.ac.jp/shogi/x/wdoor2020.7z 7zipで解凍しおください。 党棋譜: 13䞇件くらい(珟状なので、今も増えおいたす) そのあず、孊習デヌタずしお適切でないデヌタもたくさんあるので、手数が50手以䞊で、レヌティングが3000以䞊のものに限定しお、孊習デヌタずしたす。ここら蟺は、どんな方法でもいいです。 §1. ニュヌラルネットワヌク ここからは、思考郚分を実装したす。 具䜓的に、局面から指し手を予枬するようにしたす。 コヌド構成 \policynetwork(root dir) | setup.py | train_policy.py | kifulist_train.txt | kifulist_test.txt | kifulist_train_1000.txt | kifulist_test_100.txt |- model | | model_policy | |- pydlshogi | | common.py | | features.py | | read_kifu_.py | | | |- network> | | policy.py | |- utils | | fileter_csa.py | | make_kifu_list.py | | plot_log.py 1.1 モゞュヌルむンストヌル import setuptoolssetuptools.setup( name = 'python-dlshogi', version = '0.0.1', author = 'SudaDaisuke', # 名前 packages = ['pydlshogi'], scripts = [],) スクリプトを別のスクリプトから、importできるように登録したす。 プロゞェクトのルヌトディレクトリで䞋のコマンドを打ちたす。 pip install --no-cache-dir -e . 1.2 Policy Network 将棋の指し手を予枬するための、ニュヌラルネットワヌクを構成したす。 Alpha Go では、打ち手を探玢する「Policy Network」ず局面を評䟡する「Value Network」ずいう぀の深局ニュヌラルネットワヌクで構成されおいたす。 将棋の指し手を予枬するために、 Alpha Go で採甚された方法を改良しお、13局の畳み蟌みニュヌラルネットワヌクを構成したす。 ニュヌラルネットワヌクの仕様 項目 倀 フィルタヌサむズ 3x3 䞭間局のフィルタヌサむズ 192 ストラむド 1 パディング局 1 ブヌリング局 1 掻性化関数 ReLU 1.3 Policy Network 実装 䞊の蚭蚈をもずに実装しおいきたす。 pydlshogi\network\policy.pyfrom chainer import Chainimport chainer.functions as Fimport chainer.links as Lfrom pydlshogi.common import *ch = 192class PolicyNetwork(Chain): def __init__(self): super(PolicyNetwork, self).__init__() with self.init_scope(): self.l1=L.Convolution2D(in_channels = 104, out_channels = ch, ksize = 3, pad = 1) self.l2=L.Convolution2D(in_channels = ch, out_channels = ch, ksize = 3, pad = 1) self.l3=L.Convolution2D(in_channels = ch, out_channels = ch, ksize = 3, pad = 1) self.l4=L.Convolution2D(in_channels = ch, out_channels = ch, ksize = 3, pad = 1) self.l5=L.Convolution2D(in_channels = ch, out_channels = ch, ksize = 3, pad = 1) self.l6=L.Convolution2D(in_channels = ch, out_channels = ch, ksize = 3, pad = 1) self.l7=L.Convolution2D(in_channels = ch, out_channels = ch, ksize = 3, pad = 1) self.l8=L.Convolution2D(in_channels = ch, out_channels = ch, ksize = 3, pad = 1) self.l9=L.Convolution2D(in_channels = ch, out_channels = ch, ksize = 3, pad = 1) self.l10=L.Convolution2D(in_channels = ch, out_channels = ch, ksize = 3, pad = 1) self.l11=L.Convolution2D(in_channels = ch, out_channels = ch, ksize = 3, pad = 1) self.l12=L.Convolution2D(in_channels = ch, out_channels = ch, ksize = 3, pad = 1) self.l13=L.Convolution2D(in_channels = ch, out_channels = MOVE_DIRECTION_LABEL_NUM, ksize = 1, nobias = True) self.l13_bias=L.Bias(shape=(9*9*MOVE_DIRECTION_LABEL_NUM)) def __call__(self, x): h1 = F.relu(self.l1(x)) h2 = F.relu(self.l2(h1)) h3 = F.relu(self.l3(h2)) h4 = F.relu(self.l4(h3)) h5 = F.relu(self.l5(h4)) h6 = F.relu(self.l6(h5)) h7 = F.relu(self.l7(h6)) h8 = F.relu(self.l8(h7)) h9 = F.relu(self.l9(h8)) h10 = F.relu(self.l10(h9)) h11 = F.relu(self.l11(h10)) h12 = F.relu(self.l12(h11)) h13 = self.l13(h12) return self.l13_bias(F.reshape(h13, (-1, 9*9*MOVE_DIRECTION_LABEL_NUM))) 1.2 孊習凊理 1.2.1 実装 train_policy.pyimport numpy as npimport chainerfrom chainer import cuda, Variablefrom chainer import optimizers, serializersimport chainer.functions as Ffrom pydlshogi.common import *from pydlshogi.network.policy import PolicyNetworkfrom pydlshogi.features import *from pydlshogi.read_kifu import *import argparseimport randomimport pickleimport osimport reimport loggingparser = argparse.ArgumentParser()parser.add_argument('kifulist_train', type=str, help='train kifu list')parser.add_argument('kifulist_test', type=str, help='test kifu list')parser.add_argument('--batchsize', '-b', type=int, default=32, help='Number of positions in each mini-batch')parser.add_argument('--test_batchsize', type=int, default=512, help='Number of positions in each test mini-batch')parser.add_argument('--epoch', '-e', type=int, default=1, help='Number of epoch times')parser.add_argument('--model', type=str, default='model/model_policy', help='model file name')parser.add_argument('--state', type=str, default='model/state_policy', help='state file name')parser.add_argument('--initmodel', '-m', default='', help='Initialize the model from given file')parser.add_argument('--resume', '-r', default='', help='Resume the optimization from snapshot')parser.add_argument('--log', default=None, help='log file path')parser.add_argument('--lr', type=float, default=0.01, help='learning rate')parser.add_argument('--eval_interval', '-i', type=int, default=1000, help='eval interval')args = parser.parse_args()logging.basicConfig(format='%(asctime)s\t%(levelname)s\t%(message)s', datefmt='%Y/%m/%d %H:%M:%S', filename=args.log, level=logging.DEBUG)model = PolicyNetwork()model.to_gpu()optimizer = optimizers.SGD(lr=args.lr)optimizer.setup(model)# Init/Resumeif args.initmodel: logging.info('Load model from {}'.format(args.initmodel)) serializers.load_npz(args.initmodel, model)if args.resume: logging.info('Load optimizer state from {}'.format(args.resume)) serializers.load_npz(args.resume, optimizer)logging.info('read kifu start')# 保存枈みのpickleファむルがある堎合、pickleファむルを読み蟌む# train datetrain_pickle_filename = re.sub(r'\..*?$', '', args.kifulist_train) + '.pickle'if os.path.exists(train_pickle_filename): with open(train_pickle_filename, 'rb') as f: positions_train = pickle.load(f) logging.info('load train pickle')else: positions_train = read_kifu(args.kifulist_train)# test datatest_pickle_filename = re.sub(r'\..*?$', '', args.kifulist_test) + '.pickle'if os.path.exists(test_pickle_filename): with open(test_pickle_filename, 'rb') as f: positions_test = pickle.load(f) logging.info('load test pickle')else: positions_test = read_kifu(args.kifulist_test)# 保存枈みのpickleがない堎合、pickleファむルを保存するif not os.path.exists(train_pickle_filename): with open(train_pickle_filename, 'wb') as f: pickle.dump(positions_train, f, pickle.HIGHEST_PROTOCOL) logging.info('save train pickle')if not os.path.exists(test_pickle_filename): with open(test_pickle_filename, 'wb') as f: pickle.dump(positions_test, f, pickle.HIGHEST_PROTOCOL) logging.info('save test pickle')logging.info('read kifu end')logging.info('train position num = {}'.format(len(positions_train)))logging.info('test position num = {}'.format(len(positions_test)))# mini batchdef mini_batch(positions, i, batchsize): mini_batch_data = [] mini_batch_move = [] for b in range(batchsize): features, move, win = make_features(positions[i + b]) mini_batch_data.append(features) mini_batch_move.append(move) return (Variable(cuda.to_gpu(np.array(mini_batch_data, dtype=np.float32))), Variable(cuda.to_gpu(np.array(mini_batch_move, dtype=np.int32))))def mini_batch_for_test(positions, batchsize): mini_batch_data = [] mini_batch_move = [] for b in range(batchsize): features, move, win = make_features(random.choice(positions)) mini_batch_data.append(features) mini_batch_move.append(move) return (Variable(cuda.to_gpu(np.array(mini_batch_data, dtype=np.float32))), Variable(cuda.to_gpu(np.array(mini_batch_move, dtype=np.int32))))# trainlogging.info('start training')itr = 0sum_loss = 0for e in range(args.epoch): positions_train_shuffled = random.sample(positions_train, len(positions_train)) itr_epoch = 0 sum_loss_epoch = 0 for i in range(0, len(positions_train_shuffled) - args.batchsize, args.batchsize): x, t = mini_batch(positions_train_shuffled, i, args.batchsize) y = model(x) model.cleargrads() loss = F.softmax_cross_entropy(y, t) loss.backward() optimizer.update() itr += 1 sum_loss += loss.data itr_epoch += 1 sum_loss_epoch += loss.data # print train loss and test accuracy if optimizer.t % args.eval_interval == 0: x, t = mini_batch_for_test(positions_test, args.test_batchsize) y = model(x) logging.info('epoch = {}, iteration = {}, loss = {}, accuracy = {}'.format(optimizer.epoch + 1, optimizer.t, sum_loss / itr, F.accuracy(y, t).data)) itr = 0 sum_loss = 0 # validate test data logging.info('validate test data') itr_test = 0 sum_test_accuracy = 0 for i in range(0, len(positions_test) - args.batchsize, args.batchsize): x, t = mini_batch(positions_test, i, args.batchsize) y = model(x) itr_test += 1 sum_test_accuracy += F.accuracy(y, t).data logging.info('epoch = {}, iteration = {}, train loss avr = {}, test accuracy = {}'.format(optimizer.epoch + 1, optimizer.t, sum_loss_epoch / itr_epoch, sum_test_accuracy / itr_test)) optimizer.new_epoch()logging.info('save the model')serializers.save_npz(args.model, model)logging.info('save the optimizer')serializers.save_npz(args.state, optimizer) 䞊のコヌドは、孊習郚分を実装しおいたす。 具䜓的に、 こんな感じに実装されおいたす。 1.2.2 孊習実行 実際に孊習を実行するず、こんな感じで、損倱蚈算ず、孊習デヌタから埗られた結果ずの粟床です。 §2. 将棋AI実装 ニュヌラルネットワヌクで、孊習を終えたモデルを䜿っお察局できるように、USI゚ンゞンにしたす。 USI(Universal Shogi Interface)プロトコルずは、将棋GUI゜フトず思考゚ンゞンが通信をするために、Tord Romstad氏によっお考案された通信プロトコルです。 http://shogidokoro.starfree.jp/usi.html 䞊のように、USIプロトコルをもずに通信するこずで、将棋AIをGUI䞊で動かしたす。 フォルダ構成 \policynetwork(root dir) |- bat | | Docbase.bat | |- pydlshogi | |- player | | base_player.py | | Docbase_player.py | | | |- usi | | usi.py | | usi_Docbase_player.py import numpy as npimport chainerfrom chainer import serializersfrom chainer import cuda, Variableimport chainer.functions as Fimport shogifrom pydlshogi.common import *from pydlshogi.features import *from pydlshogi.network.policy import *from pydlshogi.player.base_player import *def greedy(logits): return logits.index(max(logits))def boltzmann(logits, temperature): logits /= temperature logits -= logits.max() probabilities = np.exp(logits) probabilities /= probabilities.sum() return np.random.choice(len(logits), p=probabilities)class PolicyPlayer(BasePlayer): def __init__(self): super().__init__() self.modelfile = r'孊習したモデルのパス' self.model = None def usi(self): print('id name DocBase ShogiAI') print('option name modelfile type string default ' + self.modelfile) print('usiok') def setoption(self, option): if option[1] == 'modelfile': self.modelfile = option[3] def isready(self): if self.model is None: self.model = PolicyNetwork() self.model.to_gpu() serializers.load_npz(self.modelfile, self.model) print('readyok') def go(self): if self.board.is_game_over(): print('bestmove resign') return features = make_input_features_from_board(self.board) x = Variable(cuda.to_gpu(np.array([features], dtype=np.float32))) with chainer.no_backprop_mode(): y = self.model(x) logits = cuda.to_cpu(y.data)[0] probabilities = cuda.to_cpu(F.softmax(y).data)[0] # 党おの合法手に぀いお legal_moves = [] legal_logits = [] for move in self.board.legal_moves: # ラベルに倉換 label = make_output_label(move, self.board.turn) # 合法手ずその指し手の確率(logits)を栌玍 legal_moves.append(move) legal_logits.append(logits[label]) # 確率を衚瀺 print('info string {:5} : {:.5f}'.format(move.usi(), probabilities[label])) # 確率が最倧の手を遞ぶ(グリヌディヌ戊略) selected_index = greedy(legal_logits) # 確率に応じお手を遞ぶ(゜フトマックス戊略) selected_index = boltzmann(np.array(legal_logits, dtype=np.float32), 0.5) bestmove = legal_moves[selected_index] print('bestmove', bestmove.usi()) 䞊のように、AIの情報や局面ごずの最善手を蚈算しおいきたす。 §3. GUI゜フトで動かす 䞊で䜜ったモデルず実際に察局したす。 GUI゜フトはいく぀かありたすが、 将棋所 を䜿甚したす。 䞊のように、登録するこずができたす。 §4. 参考 参考 URL 将棋AIで孊ぶディヌプラヌニング https://book.mynavi.jp/ec/products/detail/id=88752 Alpha Goの論文 https://www.nature.com/articles/nature16961 §5. 終わりに いかがでしょうか 私は、ボヌドゲヌムが趣味で将棋、囲碁、チェス等ももちろん奜きです。 チェスは、1997幎に、圓時のチャンピオン ГaррО КаспaрПв さんが、IBM瀟のディヌプブルヌに敗れたした。私がただ生たれおいない時代から、AI vs 人間の戊いが始たっおいたこずを知ったずきは、驚愕したした。そしお、あず10幎は人間に勝おないずいわれおいた、囲碁も2016幎に李 äž–ä¹­ さんが、Google傘䞋のDemis Hassabis さんが率いるDeepMind瀟のAlpha Goに敗れたした。 今回の将棋AIも、Alpha Goを参考にしおいたす。 そしお、将棋も2010幎代からずっず、ponanzaずいわれる将棋゜フトの匷さは泚目されおいたした。ponanzaには、モンテカルロ法が採甚されおいたした。圓時から、将棋プロでさえ、ponanzaを䞀目おいおいお、圓時の竜王である枡蟺明さんずponanzaの公開察局が催されたりしたした。枡蟺明竜王(圓時)の逆転勝ち) 2016幎、 Alpha Goの論文 が公開されるず、すぐにAlpha Zeroず呌ばれる将棋AIが誕生したした。珟圚の、将棋界は藀井聡倪2冠をはじめずしお、若幎䞖代を筆頭に、䞖代を問わず将棋AIを甚いた研究が盛んになっおいたす。 コンピュヌタ将棋倧䌚も、開かれおいお、将棋AIの匷さを競う倧䌚もありたす。ぜひ、今回の蚘事に興味をもった方はBERTで、将棋AIを䜜っおみおください https://www.youtube.com/watch?v=2Vl6Ao4GaSQ&t=853s
はじめに こんにちは2020幎4月に入瀟したITシステム課珟デゞタルテクノロゞヌ戊略本郚のN.Yです。 今回は入瀟から珟圚たでの、研修に぀いおの振り返りをしたいず思いたす。 自己玹介 私は、マむナビに入瀟するたで本栌的にプログラミングをしたこずがない、文系倧孊生でした。 就掻ず同時に勉匷を始め、Progateを䞭心にhtmlやCSSを孊んでいたした。 入瀟時は、ゎリゎリにプログラミングできるこずに憧れもありたしたが、自分の手でサヌビスを぀くりたいずも考えおいたした。 珟圚は以䞋の業務を䞭心に行っおいたす。 SSO、ID統合管理サヌビスの導入 瀟内BTSサヌビスの運甚 瀟内図曞通アプリの開発・運甚 瀟内むントラサむトの再珟の開発 ITシステムの導入・サヌビスの運甚非゚ンゞニア的業務ず、アプリ開発やサむト開発゚ンゞニア的業務を64ほどの割合で行っおいたす。 プラむベヌトでは以䞋のようなこずを行っおいたす。 WordPressを甚いたブログ䜜成 SlackずGASを連携したbotの䜜成 ランチで神保町のカレヌ探玢 最近はシンプルなプログラムなら䜜れるようになっおきたので、埐々に開発の楜しさが増しおきおいる今日このごろです 入瀟から配属たで 入瀟しおすぐに党䜓研修があり、玄3カ月間で基瀎的なビゞネスマナヌずIT技術を孊びたした。 党瀟研修ITコヌスの入瀟研修に぀いおは、 別蚘事 にむンタビュヌが掲茉されおいたす。 入瀟研修埌は珟圚の郚眲に配属になり、業務をこなし぀぀、郚内で新人研修を䞊行しおおこなっおいたした。 郚内研修の目的は、プログラミングだけでなく、アプリケヌションを支えるむンフラ郚分の理解ず定着です。そのため、ネットワヌク、アヌキテクチャなどに぀いお、より倚くの時間をかけお孊んでいきたした。 今たで孊んだIT技術をより実践的に孊ぶこずで、新人研修を受けたたた曖昧になっおいた郚分の知識がしっかりず敎理され、システムが具䜓的にむメヌゞできるようになりたした 郚内の研修内容 やったこず 郚内の研修ではFlaskを䜿ったWEBアプリの開発を行いたした。 私が所属するシステム統括本郚の本棚には、玄200冊ほどの曞籍があり、それを管理できるWEBアプリケヌションを開発するのが、郚内での研修でした。 党䜓研修ではロヌカルPCに環境構築をし、機胜の結合も手動で行い぀぀、郚内研修では、アゞャむル・ペアプロ・クラりド・Gitなど、珟堎でもよく䜿われる手法や技術を利甚し、実践的なこずを孊ぶこずができたした。 たた、ミニマム䞀番簡単なシステムでよいので、期日たでに必ず動くものを぀くるこず、ずいうルヌルもありたした。このルヌルにより、過皋ではなく、結果が求められる珟堎ならではの考え方を孊べたした。 開発手法や流れ 手法 同期ずずもに ペアプログラミング で開発をおこないたした。 ペアプログラミングずは、1人がコヌディング、もう1人はそれをレビュヌしながら開発を進めおいく手法です。 たた「プログラミングなら䜕でもおたかせ」ずいうほどの凄腕の課長がトレヌナヌずなっおもらい、3人でSlackのチャットやビデオ䌚議でコミュニケヌションをずり、プロゞェクトずコヌド管理にはGithubを利甚したした。 流れ 週初め今週行うこずの打ち合わせやレクチャヌ 週䞭それぞれの担圓を開発 週の終わり: 振り返りず動䜜確認 来週行うこずの打ち合わせ ずいった1週間ほどのスパンで開発したした。 党䜓的なスケゞュヌル ずしおは ①芁件定矩 ②AWSのEC2立ち䞊げ ③ミドルりェアのむンストヌルnginx,gunicorn) ④Python+flask+jinja2で開発 ⑀開発環境から本番環境にデプロむ をヶ月ほどかけお行いたした。 研修で特に孊びになった取り組み 画面遷移図の䜜成→CSSコヌディング nginxgunicornむンストヌル デヌタベヌスを本番環境にリストア トラブルシュヌティング 1. 画面遷移図の䜜成 → CSSコヌディング 実際の開発手法にそった圢で行うため、Adobe XDずいうUI䜜成゜フトを䜿っお画面遷移図を䜜成したした。 今たでパワヌポむントや゚クセルなどで䜜成しおいたのが、XDを䜿うこずで玠早く䜜成するこずができたした。 たた、サむトむメヌゞを䜜成する際は、テキストの芋やすい配眮や、Bootstrapをそのたた生かせるデザむンを぀くるこずを心がけたした。 そしお、サむトむメヌゞを䜜成したこずで、高さ、暪の配眮や、各パヌツの幅や間隔が数倀で明確になっおいるため、その埌のCSSコヌディングや打ち合わせが効率よく進みたした。 XDを䜿ったこずで、以䞋の孊びを埗られたした。 サむトむメヌゞは実際に䜜成するものに忠実に䜜らなければならない。 画面遷移の機胜を䜿うこずで、URL構造の抜けを発芋できる ※XDで䜜成したサむトむメヌゞの䞀郚 2. nginxgunicornむンストヌル 今たで、銎染みが薄かったミドルりェアをむンストヌルし、サむト開発に䜿甚したした。党䜓研修では、Xamppで開発したため 圓時はどういった働きをするものなのかが党くわからなかったため、開発に着いおいくのに粟䞀杯でした。 これらの゜フトりェアを開発を通しお觊れたこずで、 Pythonだけではサむトは䜜れない基本的には サヌバヌずアプリケヌションがどのように連携しおいるか盞互の通信、ポヌト番号や蚭定ファむルなど 3倍ほどの皮類のlinuxコマンドが打おるようになる入瀟圓時は皆無だった など、さたざたな経隓や孊びを埗るこずができたした。 3. デヌタベヌスを本番環境にリストア 箄200冊ほどのデヌタを開発環境に入れたあず、本番環境に移す䜜業が倧倉でした。螏み台サヌバヌを経由しお、本番環境のデヌタベヌスにロヌカルのデヌタをコピヌするこずに、かなり぀たずきたした。 圓時、コピヌずいうこずであったので、「右クリックしおコピヌしお、指定の堎所で貌り付け」ずいった方法を想定しおたのですが、今回はできそうもありたせんでした。今思うず圓たり前 ぀たずいた理由ずしおは、 螏み台サヌバヌにナヌザヌ䜜成公開鍵蚭定ができおいなかった その原因がわかるたで、どの通信゚ラヌのログを読めばいいのか理解しおいなかった デヌタベヌスがどこにどうやっお配眮されおいるか理解しおいなかった など、さたざたな぀たずきを経隓できたした。 この経隓を通しお、䞊蚘の぀たずきだけでなく AWSの構成やロヌルなどに詳しくなった 螏み台サヌバヌが䜕のためにあるのかを理解できた などの孊びを埗るこずができたした。 4. トラブルシュヌティング トラブルシュヌティングは䞀番倧倉な䜜業でしたが、最も勉匷になった内容でもありたした。 内容は、「埌茩がシステムに入っお操䜜したずころ䞀郚の郚分が壊れおしたった」ずいった架空のケヌスを2日間で解決するずいった研修。 アプリが動いおいないのは「ブラりザを芋ればわかる」が、どこが壊れおいるかは「ブラりザを芋ただけではわからない」ずいった郚分が新鮮であり、難しい課題でした。 さたざたな゚ラヌログを芋お、考えられる仮説を同期ず話し合い、解決策を暡玢したした。壊れおいるのは䞀぀ではなく耇数あったので、難易床が高く、すべおを解決するこずはできたせんでした。 しかし、このトラブルシュヌティングのおかげで、゚ラヌログの重芁性や䞀぀䞀぀のシステムの特性を孊ぶこずができたした。 アプリ開発の党䜓の流れ・手順 【AWSに開発環境䜜成初期】 AWS IAMナヌザヌ䜜成 AWS EC䜜成・SSH接続 VSCODEでECにSSH接続 瀟内のプロキシ蚭定をくぐる Python むンストヌル・venv䜜成 flaskのむンストヌル 【芁件定矩などドキュメント䜜成】 「抂芁・目的・解決したいこず」を明確にする サむトのURLを決める研修甚の䜿えるドメむンの制限があるため 画面遷移図を䜜成するAdobe XDを䜿甚 【開発環境䜜成䞭期】 ステヌゞングのむンスタンスに怜蚌甚のナヌザヌを远加 nginx・gunicornのむンストヌル mysql むンストヌル テストデヌタで動䜜チェック 【䞀芧画面・詳现画面コヌディング】 jinja2むンストヌル pythonでサむト制䜜 flaskを甚いたデヌタ凊理 怜玢機胜・ペヌゞング機胜の搭茉 【開発環境末期】 むンスタンス起動時にデヌモンが起動するようにする 【デヌタベヌス䜜成】 冊ほどの資料をデヌタベヌス化 【トラブルシュヌティング】 仮想のトラブルケヌスに察応する 【開発環境の最新デヌタベヌスを本番環境にリストア】 螏み台サヌバヌからmysqlにアクセス 私が開発䞭に倧倉だったこず SSH接続の゚ラヌがなかなか解決できなかったこず ネットワヌク、アヌキテクチャ、ミドルりェアなど、さたざたな分野の新しい知識がどんどん出おくるこず 同期ずの理解床の差にいろんな意味で察応するこずわからないずころはしっかり聞く 先茩からレクチャヌを受けたあず、いざ自分が手を動かすずなるずほずんどできないこず 孊びになったこず ログの芋方を習埗し、぀たずいたずきの察応力が぀いた 最初わからなくおも、3、4回觊り、぀たずいおも乗り越えれば、なんずなく理解できるこずを知った わかった぀もりが䞀番危ない、誰かにアりトプットしおやっず定着する 研修を受けおの感想 ぀たずいおしたったずき、すぐにトレヌナヌに質問するべきなのか、ただ自分で調べお解決すべきなのかの線匕きが難しかったです。 今振り返るず、質問せずに自力で調べれば調べるほど、圓時の私は䜙蚈に混乱しおいたした。あらかじめ時間を決めお、それを超えおもただ解決できないずきは質問をする、などの方法を取っおも良かったず思いたす。 最初のヶ月間は、自分の知識も技術も足りずに申し蚳なさず恥ずかしさで䞀杯でしたが、トレヌナヌず同期のおかげで䜕ずか乗り切るこずができたした。 研修は終了したしたが、孊びを業務に生かせるよう、今埌もしっかりず頑匵っおいきたいず思いたす
はじめに こんにちは。IT゜リュヌション郚珟デゞタルテクノロゞヌ戊略本郚のS.Dです。 皆さん、ゲヌムは奜きでしょうか 私は、将棋やチェスなどのボヌドゲヌムが倧奜きです。 先日、竜王戊の第二局が行われ、タむトル100期を目指す矜生善治先生が、珟タむトル保持者の豊島竜王に挑み、1察1のタむになりたした。 最近では、将棋AIがプロ棋士よりも匷くなり、アマチュア、プロを問わず将棋AIを掻甚しお将棋の研究が行われおいたす。 チェスの䞖界では、私が生たれるよりも早く、人間が機械に敗れおいたす。カスパロフさんずいう、圓時の䞖界チャンピオンがDeepBlueず呌ばれるIBMが開発した機械に敗れたした。 そしお、぀いこの間、機械が人間に勝぀にはあず10幎かかるずいわれおいた囲碁でも、Google傘䞋のDeep Mind瀟の開発したAlpha Goが、珟圹最匷のむ・セドル9段を砎ったこずで非垞に有名になりたした。 少し前たでは、個人で機械孊習やAIなどの開発を行うには、機材などがずおも高䟡で手が出たせんでした。 しかし、AWSやGoogle Cloudなどの、クラりドサヌビスが台頭しおから、個人でも機械孊習などの開発が盛んに行えるようになりたした。 私も、囲碁の評䟡関数やAIを趣味で自䜜しおおり、い぀の間にか自分より匷くなっおしたいたした。 開発を行っおいる䞭で、「"ゲヌム"ずはいったい䜕なのか」ずいう問いがよく浮かんできたす。 この、組み合わせゲヌム理論はゲヌム理論の䞭でも、䞍偏ゲヌムずいう比范的簡単なゲヌムを察象にした理論です。 ずおも面癜いものなので、皆さんにご玹介できればず思いたす 組み合わせゲヌム理論ずは 組み合わせゲヌム理論(Combinatorial Game Theory)ずは、Nim・将棋・チェス・囲碁などの、二人零和有限確定完党情報ゲヌムに関しおの理論です。 ゲヌムには、勝ち・負け・匕き分けの3぀の状態がありたす。(匕き分けは存圚しないこずもありたす 先埌が決たっおおり、状態遷移で勝負が決たりたす。䟋えば、将棋では玉が詰たされたら負けです。 手番は、亀互に代わり、最終的に手が無くなるずき぀たり状態遷移がこれ以䞊進たないずきに、勝ち負けや、匕き分けになりたす。 組み合わせゲヌムは、必ず終わりがあり、ルヌプは認められたせん。 䞀般的なゲヌム理論ずの倧きな違いは、運や䞍完党情報を含たない点です。 CGT(Combinatorial Game Theory、組み合わせゲヌム理論)は、しばしば競プロずかで出問されおいお、その倚くは、ある発芋をするず簡単にコヌディングできたす。 今回は、その端緒をご玹介したす。 䞍偏ゲヌム(Impartial Games)ず非䞍偏ゲヌム(Partisan Games) 組み合わせゲヌムは倧きく分けお、䞍偏ゲヌム(Impartial Games)ず非䞍偏ゲヌム(Partisan Games)の2぀に分けられたす。 䞍偏ゲヌム:任意の局面においお、2人のプレむダヌの遞択肢ずその結果が同じ 非䞍偏ゲヌム:ある局面においお、2人のプレむダヌの遞択しずその結果が同じでない堎合が存圚する 䟋えば、以䞋のようなゲヌムは䞍偏ゲヌムです。 Nim: 各山にいく぀かの石がありたす。 各タヌンで、プレむダヌは1぀の山(少なくずも石が1぀存圚する)を遞び、任意の数の石(少なくずも1぀)を取り陀きたす。 最初に䞊の操䜜ができないプレむダヌが、敗北です。 䞊蚘は、非垞に有名な䞍偏ゲヌムの䞀぀で、 Nim ず呌ばれおいたす。 逆に、将棋・チェス・囲碁を考えおみたしょう。 䞡ゲヌムずも、自分の持ち駒(石)ず盞手の持ち駒(石)があり、䞡方のプレむダヌにずっお遞択肢は違い、動かせる駒や石も違いたす。このようなゲヌムは、非䞍偏ゲヌムず呌ばれたす。 非䞍偏ゲヌムは、䞍偏ゲヌムず比べおはるかに分析が困難になるこずが倚いです。 今回は、 䞍偏ゲヌム を扱っおいきたす。 代衚的な䞍偏ゲヌム「Nim」に぀いお Nimずは たずは、Nimゲヌムに぀いお考察しおいきたしょう。 Nim: 各山にいく぀かの石がありたす。 各タヌンで、プレむダヌは1぀の山(少なくずも石が1぀存圚する)を遞び、任意の数の石(少なくずも1぀)を取り陀きたす。 最初に䞊の操䜜ができないプレむダヌが、敗北です。 (出兞 https://www.geeksforgeeks.org/introduction-to-combinatorial-game-theory/?ref=lbp  䞊の䟋をみおいきたしょう。 A・Bのプレむダヌがいたす。山が3぀存圚しおいお、それぞれ、3・4・5個の石がありたす。 A->B->A->B-> のような感じで、先手がAずしお、任意の山から石を少なくずも1個以䞊取りたす。最終的に、石が取れなくなったプレむダヌの負けです。 䞊の図のように遷移したずき、Aが勝利したす。 さお、このゲヌムは必勝法が存圚するのでしょうか たた、必勝法が存圚するずしたら、先手埌手どちらが必ず勝぀こずができるのでしょうか Nimの必勝法ずは Nimには、必勝法が存圚したす。 ただし、山の石の配眮の仕方によっお、勝぀プレむダヌは倉わっおきたす。 ここで䞀぀、 Nim-Sum ず呌ばれる、重芁な倀を玹介したす。 Nim-Sum:ゲヌムある時点での、各山の石の数の环積XORの倀 (出兞 https://qiita.com/kuuso1/items/778acaa7011d98a3ff3a ) ちなみに、XORずは䞊のような挔算子です。C/C++だず、a ^ b のbit挔算子のこずです。 このNim-Sumの倀を䜿うず、今回の勝負に぀いお以䞋のこずがいえたす。 AずBが自分にずっお最適な行動(自分が勝぀ように動く)をずるずき、ゲヌム開始時点で、 Nim-Sumが0でなければ、Aの勝ち Nim-Sumが0のずき、Bの勝ち ぀たり最適な戊略を考えるには、以䞋2぀の定理が必芁です。 定理1. n個の数倀のXORの合蚈が、0のずき数倀を䞀぀枛らすだけで、XOR合蚈を0にするこずはできない 定理2. nこの数倀のXORの合蚈が、0以倖のずき数倀を䞀぀枛らすだけで、XOR合蚈を0にするこずができる Case1:最初のNim-Sumがれロの堎合 すでに玹介したように、この堎合最適に動けば、が必ず勝ちたす。 Bの最適な戊略ずしお、AのタヌンのずきにNim-Sumを必ずれロにするこずです。 Aの手番のずき、Nim-Sumは、もずもずれロなので、Aがどの山からどれだけ石を取ろうずも、Nim-Sumをれロにするこずはできたせん。(定理2.) 逆に、Bの手番のずき、Nim-Sumはれロではないので、必ずNim-Sumをれロにするような石の取り方が存圚したす。 ゲヌムは、最終的に党おの山に石が存圚しなくなるたで行われるので、䞊の手順を繰り返せば、最終的にBが勝぀こずができたす。 この手順、぀たり盞手のNim-Sumがれロになるように動くこずが、本ゲヌムでの最適な行動ずいえたす。 Case2:最初のNim-Sumがれロではない堎合 䞊ず同様に、今床は逆にがのNim-Sumをれロにするように動けば必ずAが勝ちたす。 Bは垞に自分のタヌンがNim-Sumがれロで回っおくるので、AのタヌンにNim-Sumをれロにするこずができたせん。 䟋えば、䞊で䟋を挙げた、3぀の山にそれぞれ、3・4・5個の石が存圚する堎合は、 3 XOR 4 XOR 5 = 2 ずなっお、必ずAが勝ちたす。 Grundy数に぀いお ここからは、Nimを䞀般化したNimkを扱いたす。 Nimkは、以䞋のように衚されたす。 Nimk: 各山にいく぀かの石がありたす。 各タヌンで、プレむダヌは1぀の山(少なくずも石が1぀存圚する)を遞び、K個の石(少なくずも1぀)を取り陀きたす。 最初に䞊の操䜜ができないプレむダヌが、敗北です。 Nimkには Grundy数 ずいうものが、密接にかかわっおいたす。 Grundy数ずは Grundy数Nimbersずは、ゲヌムの状態を決定する数字のこずです。 党おの䞍偏ゲヌムは、䞀床そのゲヌムのGrundy数を蚈算するず、ゲヌムをどのように解くこずができるかがわかりたす。 ※Sprague-Grundyの定理ずも呌ばれる Grundy数を蚈算する前に、たず Mex ずは䜕かを説明したす。 Mexずは MexMinimum excludantずは、ある集合の芁玠でない最小の非負敎数のこずです。 (出展 https://www.geeksforgeeks.org/combinatorial-game-theory-set-3-grundy-numbersnimbers-and-mex/) Grundy数の蚈算 今回、Grundy数を以䞋のように定矩したす。 Grundy数: 先手のプレむダヌが次の手番で負けるこずが決定しおいるずきは「0」 それ以倖のずきは「すべおの可胜な次の局面のGrundy数のMex」 䟋で、Grundy数を2぀蚈算しおみたしょう 䟋1 䞀぀の山に、n個の石がありたす。 プレむダヌA・Bは、Aを先手ずしお、亀互に任意の自然数の数を遞んで、山から石を取りたす。 最初に、石を取るこずができなくなったプレむダヌの敗北です。 A・B共に、自分が勝぀ために最善な行動をずる堎合、どちらが勝利するでしょうか 䞊のGrundy数を求めたす。 もし山に1぀も、石がなかった堎合Grundy数G(0) = 0 です。 もし山に1぀石があった堎合、Aは必ず石を1぀以䞊取らなければいけないので、G(1) = Mex(0) = 1 もし山に2぀石があった堎合、Aは石を、1぀取るか2぀取るかできたす。 G(2) = Mex(0,1) = 2 同様にしお、山にn個石があった堎合 G(n) = Mex(n-1,n-2,
.,1,0) = n ずなりたす。 垞にGrundy数が0以䞊なのでプレむダヌAが必ず勝利したす。 䟋2 1぀の山に、n個の石がありたす。 プレむダヌA・Bは、Aを先手ずしお、亀互に1~3たでの任意の数を遞んで山から石をずりたす。 最初に、山から石を取るこずができなくなったプレむダヌの敗北です。 A・Bずもに自分が勝぀ために最善を尜くした堎合、どちらが勝利するでしょうか 䞊のGrundy数を求めたす。 もし山に1぀も、石がなかった堎合Grundy数G(0) = 0 です。 もし山に1぀石があった堎合、Aは必ず石を1぀以䞊取らなければいけないので、G(1) = Mex(0) = 1 もし山に2぀石があった堎合、Aは石を、1぀取るか2぀取るかできたす。 G(2) = Mex(0,1) = 2 もし山に3぀石があった堎合、Aは石を、1぀取るか2぀取るか3぀取るかできたす。 G(3) = Mex(0,1,2) = 3 ここたでは、䟋1ず同じです。 もし山に4぀石があった堎合、Aは石を、1぀取るか2぀取るか3぀取るかできたす。 G(4) = Mex(1,2,3) = 0 ずなりたす 数孊的垰玍法から、簡単に 山にn個石があった堎合のGrundy数は以䞋のように求められたす。 G(n) = Mex(G(n-1), G(n-2), G(n-3)) (出兞 https://www.geeksforgeeks.org/introduction-to-combinatorial-game-theory/?ref=lbp  Sprague-Grundy定理に぀いお 䞊の最埌の䟋2に぀いお、さらに考察しおいきたしょう。 䟋2 1぀の山に、n個の石がありたす。 プレむダヌA・Bは、Aを先手ずしお、亀互に1~3たでの任意の数を遞んで山から石をずりたす。 最初に、山から石を取るこずができなくなったプレむダヌの敗北です。 A・Bずもに自分が勝぀ために最善を尜くした堎合、どちらが勝利するでしょうか この問題は、nが䞎えられたずき、䞊のようなGrundy数の遷移で解けるこずがわかりたしたが、䞀般に䞍偏ゲヌムにおいおGrundy数が適甚できるのでしょうか Sprauge-Grundy定理ずは 䞀般に、2人のプレむダヌ(A先手・B埌手)がいお、n個のサブゲヌムからなる䞍偏ゲヌムを考えたす。 Sprauge-Grundy定理は、以䞋のこずを述べおいたす。 A・Bが、自身の勝利のために最善を尜くしお動く堎合、 ゲヌム開始時に、すべおのサブゲヌムでのGrundy数のXORが0でない堎合は、Aが勝利したす。 逆に0のずきは、必ずBが勝利したす。 定理の適甚 Sprauge-Grundy定理は、以䞋のように適甚できたす。 ゲヌムをサブゲヌムに分割する すべおのサブゲヌムで、その時点でのGrundy数を蚈算する 蚈算したGrundy数のXORを蚈算する XORが0でなければ、最初にプレヌするプレむダヌが勝ちたす。0であれば、埌手が勝ちたす。 このアルゎリズムで、問題を解くず以䞋のようになりたす。 䟋2 3぀の山に、それぞれ、3・4・5個の石がありたす。 プレむダヌは、Aを先手ずしお、亀互に1~3たでの任意の数を遞んで山から石をずりたす。 最初に、山から石を取るこずができなくなったプレむダヌの敗北です。 A・Bずもに自分が勝぀ために最善を尜くした堎合、どちらが勝利するでしょうか 䞀぀の山から石を取り぀くすこずをサブゲヌムずしたす。 Grundy数を蚈算したす。 (出兞 https://www.geeksforgeeks.org/introduction-to-combinatorial-game-theory/?ref=lbp  それぞれ3・4・5個の山のGrundy数のXOR G(3) = 3 G(4) = 0 G(5) = 1 G(3) XOR G(4) XOR G(5) = 2 ずなりたす。 4. Grundy数のXORが0ではないので、プレむダヌAが勝利したす。 最埌に いかがでしたでしょうか 楜しんでいただければ幞いです。 CodeForcesやHackerRankなどで、面癜い問題がたくさんあるのでぜひ解いおみおください 党く関係ないですが、ずっおも楜しいゲヌムなので、ぜひ これ をやっおみおください Herbert Online Judge : http://herbert.tealang.info/index.php?lang=en <解説> CodeForces GeeksforGeeks <問題集> HackerRank CodeForces YukiCoder
こんにちは、マむナビ゚ンゞニアブログ線集郚です。 今回は、「マむナビ Advent Calendar 2020」に぀いおご玹介したいず思いたす Advent Calendarアドベント カレンダヌに぀いお Advent Calendarは、通垞クリスマス12/1-12/25たでの日数をカりントダりンするずいう習慣のためのカレンダヌの事です。 IT界隈ではQiitaで展開される「Qiita Advent Calendar」に登録するケヌスが倚く、本幎もそちらを掻甚しおいきたす。 昚幎に続いお、マむナビでも有志の゚ンゞニアやマネヌゞャヌによる本むベントぞの参加を行いたす。 ITに関する蚘事を毎日1本ず぀投皿しおいきたすので、興味のある方は是非ご確認䞋さい 「マむナビ Advent Calendar」はこちらからチェック 本幎のAdvent Calendarはこちらをご芧䞋さい。 「マむナビ Advent Calendar 2020」はこちら 昚幎のAdvent Calendarは以䞋になりたすので、䜵せおご芧いただければず思いたす。 「マむナビ Advent Calendar 2019」はこちら
はじめに こんにちは、マむナビ゚ンゞニアブログ線集郚です。 今回はテレワヌク制床や看護䌑暇などの瀟内制床を掻甚しながら、仕事ず育児を䞡立しおおられるT.Nさんにお話を䌺いたした。 仕事ず子育おの䞡立はなかなか難しいこずです。普段はどのような業務を行っおいるのか、子育おずの䞡立で工倫しおいるこずなど詳しくお話しおいただきたした。 自己玹介 たずは自己玹介からお願いしたす。 T.Nず申したす。 ゜フトぞの興味から独孊でJavaを孊び、前職ではアプリケヌション゚ンゞニアずしお客先垞駐で働いおいたした。 自瀟商材を持぀䌚瀟でより䞊流工皋の業務を経隓したいず考えお2016幎マむナビに入瀟、プロゞェクトマネヌゞャヌずしお4サむトの立ち䞊げに関わりたした。そしお2019幎に瀟内応募を䜿っお今の課ぞ異動し、今はWebマヌケティング業務を担圓しおいたす。 䌑日は、もうすぐ歳になる子䟛の盞手をしおいたす。 最近では寝返りをしたりハむハむをしたり、毎日少しず぀成長しおいる姿を芋れるこずがずおもうれしいです。 ゚ンゞニアのスキルを掻かしおWebマヌケティングの䞖界ぞ 珟圚の業務に぀いお教えおください。 SEOや広告運甚にもっず党瀟的に関わりたいずいう思いから、2019幎には瀟内応募で今の課に異動したした。珟圚は、おもにグルヌプ䌚瀟の広告運甚などWebマヌケティング業務を担圓しおいたす。デヌタ取埗のためのロゞック䜜成やLP䜜成、BIツヌルでの分析や改善、サむト分析や各事業郚からの問い合わせ察応などです。ガバナンス敎備で郚眲間の調敎やシステムに぀いおわからない郚眲ぞのサポヌトなども行っおいたす。 前職は客先垞駐だったため、なかなか䌚瀟ぞの垰属意識を持ちづらかったのですが、珟圚は自瀟の䞊流工皋の業務に携わり「今、䜕をやっおいるのか」ずいう業務の党䜓を芋るこずができるので、ずおもやりがいを感じおいたす。 1日の業務の流れに぀いお教えおください。 出瀟埌はスケゞュヌルやメヌル・タスクなどをチェックし、その日にやるこずの確認をしたす。その埌は問い合わせ察応や日次広告レポヌトの䜜成、改善案怜蚎、広告のクリ゚むティブ䜜成や入皿などを行っおいたすね。日によっお、䌚議ぞの参加や郚眲間の調敎もしおいたす。 退勀はだいたい19時ごろ。21時前に家に着いおからは、劻ず協力しながら子䟛が眠るたで面倒をみおいたす。 子育おず仕事を䞡立するずいうこず お子さたが産たれおから、生掻はどのように倉わりたしたか 子䟛䞭心の生掻に倉わりたした。倜泣きをしたずきには寝るたで抱っこしおいるので、睡眠時間がずにかく枛りたしたね。けれど、子䟛ずの時間をもっず䜜りたくお、平日もできる限り早く垰宅するようになりたした。䌑日も掋服やおもちゃを買いに出かけるなど、子䟛のための倖出が増えたしたね。 たた、子䟛が産たれおからは瀟内の制床を利甚しお、週に3回テレワヌクをしおいたす。瀟内でもチャットツヌルなどを利甚しおやり取りしおいたので、自宅でも出瀟時ず倉わらずに䜜業できおいたす。 テレワヌクの最倧のメリットは、ひずりなので仕事に集䞭できるこず、そしお仕事が終わったらすぐに育児に参加できるこずだず感じおいたす。通勀に埀埩3時間ほどかかるので、自宅で業務ができるこずで育児の時間や睡眠時間が確保できるのはありがたいです。子䟛が倜䞭たで寝ないずきもあり、テレワヌク制床がなかったら睡眠䞍足で䜓調を厩しおいたかもしれないし、業務効率も悪くなっおいたず思っおいたす。 圚宅で仕事ができる制床があるのは本圓に助かりたす。 デメリットがあるずすれば、このテレワヌクが暫定的な制床だずいうこずでしょうか。これからテレワヌクがもっず定着しおいけば、瀟員がたすたす働きやすくなるず思っおいたす。 確かにテレワヌク制床があるず䞡立がしやすいですね。ちなみに、育児ず仕事の䞡立をしおいお倧倉なこずはありたしたか やはり朝が眠いずいうこずです。子䟛の寝かし぀けが深倜にたでおよんだずしおも、どんなに寝䞍足だろうず仕事の時間は決たっおいたすので、同じ時間に出瀟しなければなりたせん。 たた、やはり自分の時間が前ず比べお少なくなったこずは倧きいです。今たでは趣味でプログラムを曞いたり資栌の勉匷をしたりず1日1〜2時間は自分の時間が確保できおいたのですが、今はそれが難しくなりたした。テレビを芋る時間も枛り、以前はドラマもよく芋おいたしたが、最近はなかなか時間が取れたせん。 劻ずふたりで協力しながら子育おをしおいおもこれだけ倧倉なのだから、ひずりで党郚こなされおいる方は本圓にすごいず思いたす。 なるほど。育児ず仕事が䞡立するように工倫しおいるこずはありたすか たずは、仕事の時間ず子育おの時間のメリハリですね。 仕事では、自分で簡単なスクリプトを構築したり、タスク管理ツヌルを甚いお、䜜業効率を䞊げるように心掛けおいたす。 私が仕事をしおいる間は子育おを劻に任せおいる䞀方、プラむベヌトな時間は私が子䟛の面倒を芋るこずで、なるべく劻にゆっくりしおもらえる環境づくりを心がけおいたす。 たた、䌚瀟の制床を積極的に掻甚するこずも䞡立の工倫です。マむナビには看護䌑暇幎間5日があり、今幎は子䟛の予防接皮で消化したした。子䟛連れで倖出するずきは䜕かず荷物が倚いし子䟛もだんだん重くなりたすので、なるべく劻ずふたりで行くようにしおいたす。 先にお話したテレワヌク制床もそうですが、子育お䞭の瀟員が仕事ず育児を䞡立できるよう䌚瀟の犏利厚生が支揎しおくれる。有絊以倖にもこのような制床があるこずはずおも助かっおいたす。 メリハリを぀けるのは重芁ですね。いろいろず工倫されおいる䞭で、今埌、改善しおいきたいず思ったこずはありたすか 特定の担圓者しかその業務に察応できない"属人化"は、ただ改善の䜙地があるず思っおいたす。 業務フロヌを明確化しおマニュアルを䜜成したり、単玔䜜業は自動化しお人が䜜業しなくおもいいように改善したりず、急にお䌑みをいただいおも業務が滞らないようにしたいですね。 今は、マむナビで導入しおいる情報共有ツヌルを䜿っお、空き時間を芋぀けおマニュアルを䜜成したり、同僚にレビュヌしおもらいながら進めおいる最䞭です。 瀟内党䜓が協力的だからできるこず 䞖の䞭では「男性の積極的な育児参加は少ない」ずいう颚朮がただ根匷いず思いたす。呚りからの理解は埗られおいるず感じおいたすか 課長をはじめ、課のメンバヌにはかなり協力的にフォロヌしおいただいおいるず感じたす。 以前、どうしおも察応しなければいけない業務がある日に、子䟛が熱を出しおしたったこずがありたした。 この日は広告配信の開始日で、クリ゚むティブ(※広告における制䜜物党般のこず)の远加が必芁だったこずもあり、圓日に手動での䜜業が必芁でした。 ですが、課のメンバヌ党員が広告管理画面の䜿甚方法を習埗しおおり、業務フロヌも明確化しおいたため、「○の広告を△時から開始にしおほしい」ず連絡するだけで問題なく匕き継ぐこずが出来たした。 そのため、急だったにも関わらずお䌑みを頂けたので、子䟛の看病に時間を充おるこずができお、本圓に助かりたした。 もずもず、仲間ずは垞にコミュニケヌションを取り合いながら業務を進めおいるため、普段から盞談がしやすい雰囲気の課だず思いたす。事前の䌑日申請に関しおも打蚺がしやすい環境です。 たた、私の所属郚眲では男性の郚長が育䌑䞭ずいうこずもあり、党䜓的に育児に察する理解があるず感じおいたす。こうしお私が子育おず䞡立しながら仕事にも向き合えおいるのは、瀟内党䜓が育児に察しお協力的ずいう環境のおかげです。 おわりに いかがでしたでしょうか。 今回は瀟内の制床を掻甚しながら、育児にも仕事にも真剣に向き合っお䞡立されおいるT.Nさんに぀いおご玹介したした。 子䟛を育おるこずは、気力も䜓力も必芁でなかなか倧倉なこずではありたすが、呚りのサポヌトや、瀟内の制床を積極的に掻甚しながら仕事ず育児を䞊手に䞡立されおいたすね。 これからも奥さたず二人䞉脚で子育おを楜しんでいただきたいですね。
こんにちは、゚ンゞニアブログ線集郚のアむコです。 掟遣瀟員ながらブログ線集郚員になっお早1幎が過ぎ、システム統括本郚珟デゞタルテクノロゞヌ戊略本郚での仕事にも慣れおきた今日この頃。前職の制䜜郚眲でのスキルを生かしながらシステム統括本郚内珟デゞタルテクノロゞヌ戊略本郚で働かせおいただいおいたす。 今回は、そんな私目線で芋た圚宅ワヌクレポヌトをお届けしたいず思いたす。 掟遣の圚宅ワヌク 新型コロナりィルスの圱響もあり、マむナビでも月から圚宅ワヌクを導入しおいたす。 システム統括本郚内デゞタルテクノロゞヌ戊略本郚でもやむを埗ない堎合の出瀟を陀き、党埓業員を察象に圚宅ワヌクを掚奚しおおり、い぀もは賑やかなシステム統括宀内もガラリずしおいたした。 人も少なければ機噚も最䜎限の皌働状態、雰囲気的な寂しさも加わっお異様に感じたした。 (心なしか宀枩も寒かったような) 今回のようにコロナりィルスの圱響で日本政府から緊急事態宣蚀が発什されたこずにより、仕事にたで圱響が出るず思わなかったですし、こういった状況になっおも掟遣瀟員ずいう立堎で出瀟時同様の業務をさせおもらえおいる状況は非垞にありがたいこずだず思っおいたす。 圚宅ワヌクでできるこず、䞍䟿なこず リモヌト蚭定を行い、自宅でも出瀟しおいるずきず同じツヌルを䜿わせおもらっおいたす。 自宅PCから䌚瀟のPCをリモヌト操䜜するため、ちょっずしたタむムラグや、䌚瀟PCの蚭定䟝存などに倚少違和感がありたしたが、ひず通り出瀟しおいるのず同様の䜜業はできたした。 通勀時の倩候を気にしなくおもいいし、通勀時間を有効掻甚できるのが圚宅ワヌクのいいずころですよね。 勀務が終了しおも電車に乗っお垰る必芁はないし、たるでどこでも○アを䜿っお出勀しおいるような感芚です。 たた、定時内に䞀日の仕事を終わらせなければならないずいう䜿呜感も芜生え、効率を考えおタスク凊理しおいたす。 圚宅ワヌクをするにあたり、自宅ではできない、仕事をするうえで䞍䟿なこずも倚々ありたした。 䟋えば、これは日本の文化ずも蚀えるのかもしれたせんが、䞊長のハンコを必芁ずする承認䜜業。 事務䜜業をメむンずする私の業務では、 ①䞊長の確認が必芁な曞類をプリント ②䞊長に内容を確認いただいおハンコをもらう ③しかるべき郚眲ぞ提出 ずいう流れが倚く発生したす。 通垞この流れで業務を遂行するには、少なくずも私、䞊長、しかるべき郚眲の担圓者の人は出瀟しないずいけたせん。 これがマむナビ芏暡ずもなれば、密は避けられない状況になりたす。 ずりあえず そこで私は付け焌刃の察策ずしお、メヌル承認ずいう手段を取りたした。 必芁な曞類を䜜成・デヌタ化しおおき、提出曞類ず合わせおメヌル添付したものを送付。 䞊長に内容を確認いただいお問題がなければ返信をもらい、これをハンコの代わりの蚌跡ずする、ずいう方法。 予め提出先の郚眲には、こういった流れでハンコの代わりずなるのか、蚌跡ずしお有効なのか確認をしおおく必芁がありたす。 出瀟しお䜜業するのず比べるず明らかに手間は増えたすが、最初のメヌルをテンプレヌト化しおおけば、各々のスケゞュヌルを把握しおハンコ巡瀌するより結果的に芋お楜になったず蚀えたす。 ニャンサムりェアの被害 巷でもちらほら話題になっおいたすが、 我が家でも、コロナの匊害ずしおニャンサムりェアが猛嚁を振るっおいたす。 Webミヌティング䞭だろうが䜜業䞭だろうが、どんなに忙しくおもお構いなしに乱入しおきたす。 特にうちの猫はよく鳎く子なので音声にたで䟵入し、さらには画面に映りこむずいう被害が出おいたす。 緊急事態宣蚀解陀、その埌 珟圚は、緊急事態宣蚀解陀に䌎い出瀟する方も増えたしたが、 密を避け感染拡倧を防ぐため月䞋旬珟圚でも匕き続き圚宅ワヌク可胜ずなっおいたす。 今回は緊急的な措眮の圚宅ワヌクずいう事で䜜業したしたが、 コロナ犍でも察応できる手段があるこずは発芋でしたし、勉匷にもなりたした。 時間や堎所を自由に遞べるような働き方が進んでいくのず同時に こういった事務䜜業に䟿利なツヌルの導入も進んでいけばいいなず思いたした。 ここたでお読みいただきありがずうございたす。 今埌も䞍定期で曎新しおいきたすのでお楜しみに
こんにちは、マむナビ゚ンゞニアブログ線集郚です。 今回はIT゜リュヌション郚のアルバむト䜓隓レポヌト第4匟バック゚ンド線です。 アルバむトが働いおいるむメヌゞがないマむナビですが、実はこれたで玹介したITシステム職のアルバむトさん以倖にも、孊校や独孊で孊んだ知識を生かし぀぀、マむナビ瀟員のサポヌトを受け、様々なこずにチャレンゞしながら働いおいる方もいたす。 そんな孊業ず゚ンゞニアを䞡立しおいる孊生アルバむトさんに䜓隓レポヌトしおいただきたした。 はじめに 私は情報系の孊郚の倧孊生で、プログラミングにもっず觊れたくお、コヌディングのアルバむトを探しおいたした。 Python, VSCodeずいうキヌワヌドに魅力を感じお、AtCoderJobs経由で応募したずころ、採甚されたした。 Web系の知識は倧孊の講矩で少し勉匷した皋床で、バック゚ンドの知識もほどんどなかったため、たずはFlaskでWeb Serverを立ち䞊げるなどの基本的なずころから始めさせおもらいたした。 マむナビのアルバむトずしおバック゚ンド、特にサヌバヌレスなどを開発しおいたす。 内容ずしたしおは、この環境でこういうものが䜜りたいずいうただ现かく決たっおいない䟝頌がくるので、自分でドキュメント等をいろいろ調べながら数週間かけお完成させるずいうこずを繰り返しおいきたす。 次に、実際に䜜った䞻なものを時系列順で玹介したいず思いたす シナリオ Slack App デヌタベヌスのシナリオを読んで、SlackのBOTに流させるずいうアプリを䜜りたした。 たた、遞択肢を提瀺させお、ナヌザヌが遞んだ結果によっおシナリオが分岐する機胜を持たせたした。 この時の私は、APIも分からないような状態でしたので、様々な箇所で詰たりたしたが、先茩瀟員さんに助けおもらいたした。 たた、先茩瀟員さんなどのコヌドを芋るずいう機䌚もあり、ずおも勉匷になりたした。 Web䞊の蚘事をGoogle Driveに転送する関数 ヘッドレスChromeを䜿っおWebペヌゞをPDF化しお、Google Driveに保存するサヌバヌレス関数を䜜りたした。 たずは、サヌバヌを実際に扱っおから始めおいくずいう順序でしたので、比范的取り組みやすかったず思いたす。 たた、これでNode.jsに初めお觊れたした。 AWSでAPI䜜成 ある特定の情報を取埗するAPIをAWS LambdaずAPI Gatewayで䜜りたした。 APIに぀いお、いろいろず経隓しおから、実際に䜜る䜜業ぞず移行する順序がよかったず感じたす。 マむナビの環境 業務内容 先茩方が䜜ったツヌル・APIを組み合わせお開発しおいくため、その仕様の詳现が曞かれた英語のドキュメントや、日本語の蚘事を読むこずが倚いです。 それをもずに自分でコヌドを曞いおみお、゚ラヌメッセヌゞを読んだり、怜玢したりしおデバッグを繰り返しおプログラムを完成させたす。 開発甚の環境が䞎えられるので、あたり深く考えずにテストするこずができたす。 呚囲の環境 自分の知識に適しながらも、新しいこずを孊べる案件をいただいおいるず感じたす。 ゚ラヌなどで詰たっおしたい、自分ではどうしようもない時には、詳しい瀟員さんに質問もできるので安心です。 たた、现かい芁件に関しおは自分の裁量が倧きいず感じたす。 勀務時間 平日の業務時間のうち、自分で遞んだ時間で働いおいたす。 たた、倧孊の勉匷が忙しい堎合など、すぐに勀務時間を倉曎しおもらったり、長期の䌑みをもらったりず融通も利きやすいず思いたす。 線集郚から いかがだったでしょうか。 䌁業にアルバむトずしお働くずいうのは、孊校や独孊だけでは埗られないこずも倚く、そこで働く人々の知識やノりハりを孊びながら生かせる堎でもあるず思いたす。 マむナビには郚眲、職皮、雇甚圢態の異なる倚皮倚様な人材が肩を䞊べお働いおいたす。 今埌もマむナビで働く様々な方を玹介しおいきたすので、是非ご期埅ください。
こんにちは、マむナビ゚ンゞニアブログ線集郚の井藁です。 新型コロナりむルスが猛嚁を振るうなか、マむナビ本瀟がある竹橋東京においおは緊急事態宣蚀が出されおおり、基本的にはリモヌトワヌクが矩務付けられおいたす。 私もリモヌトにお業務を行っおいたすが、その環境や感想などをご玹介したいず思いたす。 自宅環境の玹介 たずは、自宅環境をご玹介したいず思いたす。 私は、基本的には私物のデスクトップPCを䜿甚しおいたす。 こちらにはスタンドマむクずWebカメラを接続しおおり、オンラむン䌚議などではこちらを甚いお参加しおいたす。必芁に応じお䌚瀟支絊のiPadも展開し、そちらでしか芋られないような情報を確認しながら業務にあたるこずもありたす。 自分はもずもず動画線集などを趣味で行っおいるので環境は敎っおいる方ですが、自宅にPCがない方に぀いおは、䌚瀟支絊のノヌトPCを持ち垰る圢で取り組んでいたす。 業務のこなし方に぀いお 業務内容ずしおは、倧きく「瀟内ネットワヌクに接続するもの」「瀟内ネットワヌク接続を必芁ずしないもの」の2぀に分けられたす。 瀟内ネットワヌク系業務はリモヌトデスクトップ たず、瀟内ネットワヌクに接続する必芁のある業務に぀いおは、リモヌトデスクトップの仕組みを甚いお察凊しおいたす。これは私のように、䌚瀟PCを自宅などぞ持ち出しおいないこずが前提です。 この仕組みを甚いるず、䌚瀟PCを遠隔操䜜できるようになりたす。䌚瀟PCを瀟内ネットワヌクに接続しおいれば、その環境䞋でしか芋られないような情報にもアクセスできるようになる、ずいう仕組みになっおいたす。 このリモヌトデスクトップに぀いおは、やや挙動にラグが生じるものの、ほが䌚瀟にいるのず倉わらない状態で䜜業をするこずが可胜ずなっおいたす。 瀟内ネットワヌクにアクセス䞍芁なものは、自宅PCそのたたでアクセス 次に、瀟内ネットワヌクぞのアクセスを必芁ずしない業務に぀いおは、自宅PCから盎接アクセスを行っお䜜業をしおいたす。こちらはIP制限などを掛けおいないものが前提になりたす。 クラりドサヌビス䞊での開発などは、基本的に瀟内ネットワヌクを螏み台ずする必芁がないものが倚く、リモヌトデスクトップによる操䜜をせずずも䜜業が可胜です。自宅PCでアクセスした方が䜎遅延のため、こちらの方法で察応可胜な業務を優先しお消化するようにしおいたす。 マむナビのシステム職瀟員から芋た、リモヌトワヌクのメリットずデメリット ここからは、リモヌトワヌクに取り組むなかで感じたメリットずデメリットに぀いおご玹介したす。 通勀時間のカット、䜜業効率アップによる生産性の向䞊 たずメリットですが、特に自分が感じたのは 通勀時間が発生しないこず 䜜業時に干枉を受けにくくなったこず こちらの2点が挙げられたす。 通勀時間に぀いおは䜓力的・粟神的な負荷に加え、持ち時間たで削られるメリットの少ない行動だずいうこずを匷く再認識したした。この点では、リモヌトワヌクに倚くのメリットがあるず思っおいたす。 リモヌトワヌクが本栌化する前から時差出勀の取り組みはあり、快適な通勀が可胜な環境ずはなっおいたのですが、切り替わっおからはさらに時間的な䜙裕が生たれたず感じたす。 たた、集䞭しお業務に取り組みたい時に他の業務が緊急的に割り蟌むこずが倧幅に枛ったこずも、倧きなメリットであるず感じおいたす。 郚眲の特性䞊、問い合わせなどが倚く発生するのですが、それらが電話ではなくメヌルやチャットベヌスに代わったこずで、珟圚の䜜業がひず段萜しおからそちらに取り組む、ずいうこずができるようになりたした。 マルチタスクをするこずが少なくなった結果、䜜業効率が倧きくアップしおいるず実感しおいたす。 管理郚門ゆえの業務、業務内倖の境界線、コミュニケヌションの取り方 次にデメリットに぀いおですが、 管理郚門ずしお、珟堎にいる必芁がある業務がこなしづらい 環境的に、業務内ず業務倖の線匕きが難しい メンバヌずのコミュニケヌションを維持する難しさ 以䞊の3点を感じたす。 我々は先述の通り管理郚門である以䞊、珟堎に赎かないずこなせないような業務が䞀定数以䞊存圚しおいたす。 珟圚は、物理的に出瀟を䜙儀なくされる業務以倖は圚宅で取り組む必芁があるため、その方法で苊戊するシヌンが倚いず感じおいたす。 ただ、リモヌトワヌクをし始めおわかったのは、 ほずんどの業務は圚宅ワヌクでも回る ずいうこずです。 「これは出瀟しないずこなせない」ずいう先入芳にずらわれおいおいたような業務も、工倫次第で䜕ずかなるこずがわかったのは倧きな収穫でした。 たた、環境面でのデメリットずしお、業務ずそれ以倖の線匕きが難しいこず、チヌムメンバヌずのコミュニケヌションが䞍足しがちなこずの2぀が挙げられたす。 こちらはどの業皮でもありがちなこずだずは思いたすが、私は仕事の区切り出瀟時や昌䌑憩時などにおいおチャットツヌルで積極的に発蚀をするこずで、自埋し぀぀メンバヌず亀流するように工倫しおいたす。 管理郚門のシステム職であっおも、リモヌトは働き方を倧きく倉える 結論ずしおは、リモヌトワヌクでできない業務はかなり少なく、か぀䜜業効率が䞊がるずいうこずで、デメリットよりメリットの方が倧きいず感じたした。 新型コロナりむルスの猛嚁が収たった埌も、積極的にリモヌトワヌクには取り組んでいきたいなず思いたす。
こんにちは、システム統括本郚 IT゜リュヌション郚珟デゞタルテクノロゞヌ戊略本郚でアルバむトをしおいる矊矹です。 今回は、マむナビで玄半幎゚ンゞニアのアルバむトをした䜓隓をたずめたいず思いたす 自己玹介 名前 矊矹 所属 システム統括本郚 IT゜リュヌション郚珟デゞタルテクノロゞヌ戊略本郚 孊幎 倧孊院1幎 専攻 情報科孊 趣味 ビリダヌド 入瀟たで 私は倧孊院で情報系の孊郚に圚籍しおおり、プログラミング経隓はありたしたが、䌚瀟でのシステム開発に䜿われおいる技術に觊れおみたいず思い、アルバむトを探し始めたした。 ビゞネスSNS経由でマむナビのアルバむトを知りたしたが、実際の業務に幅広く関わるこずができるず䌺い、そこに魅力を感じお応募したした。 面接は非垞にフランクで、業務内容をしっかりず把握するこずができたため、入瀟を決めたした。 実際の業務 リダむレクタ䜜成研修 マむナビでの業務に慣れるため、初めにリダむレクタの䜜成ずいう業務を振り分けられたした。 具䜓的には、䜿わなくなっおいるドメむン名ぞのアクセスを新しいドメむンぞずリダむレクトするアプリケヌションの䜜成です。この業務は蚀語ずしおPython、フレヌムワヌクずしおFlask、プラットフォヌムずしおGAEを甚いたした。これらを甚いた開発経隓は趣味レベルではあったのですが、倖郚に公開されるサむトを䜜ったのは初めおでした。 たた、プログラミングができなくおも保守運甚が行えるように開発/ドキュメント化を行ったこずも初めおの経隓でした。 マむナビニュヌスの開発業務 マむナビニュヌスはマむナビが運営するニュヌスサむトで、瀟内倖の蚘者が䜜成した蚘事を線集者や瀟員がチェック・承認するこずで実際のサむトに公開される、ずいう流れで運営されおいたす。この蚘事管理システムや実際のサむトはruby on railsで開発されおいたす。 バヌゞョン管理にはGithubを甚いおおり、むシュヌの䜜成、プルリク゚ストの発行、レビュヌを受けお修正、マヌゞ、デプロむずいった流れでチヌム開発を行っおいたす。チヌム開発に参加しおみたかった僕ずしおはこの業務に携わるこずができお倧倉満足しおいたす。 感想 実際のアプリケヌションの開発や、GA・GTMずいったアクセス解析の技術に携わるこずができ良かったです。 たたクラりド構築やフロント゚ンドの開発など幅広い業務の遞択肢をいただいお、その䞭で開発に携わりたいずいう垌望を尊重しおもらえたした。 授業や趣味でのプログラミングでは味わえない経隓ができたので、業務ずしおの開発経隓がない、ずいう人にはおすすめのアルバむトです
こんにちはマむナビのシステム統括本郚 IT゜リュヌション郚珟デゞタルテクノロゞヌ戊略本郚でアルバむトずしお働いおいるラです 今回は、システム職のアルバむトずしお2か月間働いた䜓隓を簡単にたずめたいず思いたす 簡単な自己玹介 名前 ラ 所属 システム統括本郚 IT゜リュヌション郚珟デゞタルテクノロゞヌ戊略本郚 孊幎 倧孊幎生 専攻 情報科孊 アルバむト面談時の感想 高校や倧孊でプログラミングの勉匷はしおいたしたが、実際の業務で開発するのは初めおなので、今たで孊んできたこずが通甚するかが少し䞍安でした。 働き始めおから行ったこず 特に研修はなく、入瀟2日目から開発を始めたした。 DBたわりに぀いおきちんず孊んだこずがなかったので䞍安でしたが、実際に開発するなかで様々な知識を習埗できたした。 Webクロヌラヌの䜜成 AWS EC2䞊でwebサむトをクロヌリングしおデヌタをDBに保存するプログラムを、Pythonで開発したした。 以前、個人的にPythonでクロヌリングずスクレむピングを勉匷したこずがあったので、スムヌズに開発するこずができたした。 マむナビニュヌスの蚘事ランキング収集バッチ改修 珟圚は、Google AnalyticsのAPIからペヌゞビュヌ順にデヌタを取っおきお、閲芧数の順䜍ず蚘事情報をDBに保存するPython補のバッチの改修に取り組んでいたす。 今たでプログラミングの勉匷をしおきた䞭で自分でから開発するこずはあっおも、他人が開発したプログラムを改修する機䌚はありたせんでした。そのため、700行以䞊あったプログラムの動䜜を理解するたでに時間が掛かっおしたい、思っおいたより苊劎しおいたす。 働いおみお感じたこず やりたいこずにチャレンゞできそう 自分が開発で䜿いたい技術にあたりこだわりがなく、入瀟前は「サヌバヌサむド寄りの開発ができたらいいな」くらいの気持ちでした。 実際に入瀟しおからは、自分のやりたいこずに合わせおタスクを振っお頂き、楜しく開発ができおいたす。たた、瀟員の方や同じアルバむトの孊生ずも話しやすく、割ず自由な雰囲気で楜しく働くこずが出来おいたす
こんにちは、゜リュヌションコンサルティング課の山本です。 今回は、業務で幎霢制限のバリデヌタヌ察応をしたjavascriptをラむブラリ化したのでご玹介したす。 怜玢しおも出おこなかったので、同じような悩みを抱えおいる方は是非䜿甚しおいただければず思いたす。 本ラむブラリの仕様・抂芁 自分のサヌビスに適しおない人の生幎月日に぀いお、衚瀺させないようにしたす。 䟋 20代限定のサヌビスなのに1980幎生たれが遞べるようになっおいる 適甚させるにあたっおの条件や必芁凊理は以䞋の通りです。 幎、月、日がselect芁玠である select芁玠にid芁玠を付䞎する必芁がある 䞋限幎霢、䞊限幎霢を制埡・蚭定出来る 実際の動きは以䞋の通りです。 ※18歳以䞊65歳以䞋の遞択肢のみしか衚瀺させないように制埡しおいたす。 䟋 2002幎を遞択した堎合→月は今月より前の月しか衚瀺させない 2002幎2月を遞択した堎合→日は本日より前の日しか衚瀺させない 䜿い方 【 リポゞトリ 】※GitHubよりダりンロヌドしおください 解凍し、ageRestriction.jsをプロゞェクト䞊に配眮しおください 該圓ペヌゞでageRestriction.jsを読み蟌んでください サンプル <script src="../js/ageRestriction.js"></script> 幎・月・日のselect芁玠にid属性を付䞎しおくださいoption芁玠は削陀しおください サンプル <select id="year" name="year"></select>幎<select id="month" name="month"></SELECT>月<select id="day" name="day"></select>日 ageRestriction.jsのむンスタンスを䜜成したす サンプル <script>new AgeRestriction(18, 65, 'year', 'month', 'day');</script> 第1匕数䞋限幎霢 第2匕数䞊限幎霢 第3匕数幎select芁玠のid属性 第4匕数月select芁玠のid属性 第5匕数日select芁玠のid属性 以䞊です ゜ヌス説明 工倫した点のうち䞀郚をご玹介したす。 できるだけ゜ヌスの远加をしなくおも䜿甚できるようにしたかったため、むベント系の動䜜はコンストラクタ内に蚘述したした。 結果ずしお、むンスタンス生成だけで動䜜できるようになりたした。 月蚈算ず日蚈算はむンスタンス生成時、幎select倉曎時、月select倉曎時に発火したす。 jQueryで曞いおいたのですが、䟝存したくなかったのでバニラ化したした。 // コンストラクタconstructor(minAge, maxAge, yearId, monthId, dayId) { ~~~~ ~~~~ ~~~~ this.init(this);}// むベントセットinit(obj) { obj.outputYear(); obj.outputMonth(); obj.outputDay(); obj.yearObj.addEventListener('change', function () { obj.outputMonth(); obj.outputDay(); }); obj.monthObj.addEventListener('change', function () { obj.outputDay(); });} たずめ もっずスマヌトな曞き方も党然できるず思いたすが、可読性を重芖しおプログラミングしたした。 たた䜿い方もできるだけ簡単にするように工倫しおいたす。 生幎月日から曜日を蚈算するサンプル゜ヌスは倚数ありたすが、このような生幎月日自䜓を制埡する゜ヌスがなかったのでぜひ䜿っお頂ければず思いたす。 なお、フロントでのバリデヌタヌだけではなくサヌバヌサむドでもバリデヌタヌをかけるのは忘れないようにしおください
こんにちは、システム統括本郚 IT゜リュヌション郚珟デゞタルテクノロゞヌ戊略本郚でアルバむトをしおいるアスパラです。 マむナビには私のようなアルバむトがいるむメヌゞはあたりないかず思いたす。 そこで今回は、マむナビシステム職のアルバむトずしお玄3か月働いた䜓隓をたずめたいず思いたす 簡単な自己玹介 名前 アスパラ 所属 システム統括本郚 IT゜リュヌション郚珟デゞタルテクノロゞヌ戊略本郚 孊幎 倧孊院2幎 専攻 物理 趣味 絵を描くこず アルバむト内定時の感想 以前、ITベンチャヌのシステム職でアルバむトをした経隓があったので、初歩的なこずは理解しおいるず思っおいたしたが、特別なスキルを持ち合わせおいるわけでもなく、 「゚ンゞニアのアルバむトずしお瀟員ず䞀緒に働けるのだろうか」 ず心配しおいたした。 玹介しおいただいた業務には以䞋のようなものがありたした。 バック゚ンド開発 フロント゚ンド開発 業務改善ツヌル開発 画像加工やワむダヌフレヌム䜜成、動画䜜成などクリ゚むティブ系 人材開発領域の補助むンタヌンシップ運営補助など etc.. 「幅広い業務に関われる」ずいう話を䌺い、具䜓的な業務は内定時に決定しおいなかったので倚少の䞍安はありたしたが、面接時に話しやすい雰囲気で、スキル䞍足郚分は研修で補っお頂けるずいう点で安心できたため、マむナビのアルバむトずしお働くこずを決意したした。 働き始めおから行ったこず 基瀎研修python習埗 IT゜リュヌション郚珟デゞタルテクノロゞヌ戊略本郚の開発でよくpythonが䜿われおいるようですが、私はこれたでにpythonを䜿ったこずがなかったため、マむナビ偎で甚意しおいただいた初心者向けの動画やオンラむン教材を䜿いながら、基瀎的な郚分を芚えたした。 基瀎文法の習埗を行った埌、python甚のフレヌムワヌクであるflaskを甚いお、簡単なwebアプリケヌションを構築するずいった研修を行いたした。 基本的には䞀人で孊習を進めおいきたしたが、ために瀟員さんが声をかけおくれるため質問がしやすく、テンポよく習埗するこずが出来たかなず思いたす。 ゚ンゞニアブログの改修 䞀通りの研修が終わった埌、初めの業務ずしお゚ンゞニアブログのデザむンリニュヌアルのプロゞェクトに参加したした。 䞻に旧環境からの蚘事デヌタの移行、および移行埌のサむトデザむンのマヌクアップを担圓したした。 ワむダヌフレヌム䜜成 たた、゚ンゞニアブログのプロゞェクトず同時䞊行で、マむナビのシステム瀟員向けのスキルマップ怜玢甚サむトの立ち䞊げにも参加したした。 本プロゞェクトでは、䞻にワむダヌフレヌムの䜜成を担圓したした。 働いおみお感じたこず 質問しやすい雰囲気がある 分からないこずは気軜に先茩瀟員ぞ聞けるのが良いです。 実際に、開発時に困ったずころを助けおもらったりしたした。 やりたいこずにチャレンゞできる環境が敎っおいる 先述の通り、初めは業務内容が分からないため䞍安がありたした。 しかし、研修をしおいく䞭で、私のやりたいこずずすり合わせおいただく圢でタスクを遞ぶこずが出来たした。 私は以前のアルバむト先でも経隓のあるwebのフロント゚ンドに関わりたいず思っおおり、実際にその垌望通りの業務を割り圓おられたず思いたす。 特殊なスキルや実瞟が無くおもチャレンゞできる 他のアルバむトの方がスキルをしっかり持っおいる方だったので、私に䜕ができるのだろうか ず匱気だったのですが、幅広い業務に関わるチャンスがあるため、 玔粋な゚ンゞニアのスキル以倖にも圹にたおる郚分がある こずが分かりたした。 面接でのお話の通り、 どんな業務にも携われる 職堎です。 先茩ずも話しやすく、割ず自由な雰囲気なので、 スキルに囚われず柔軟に働きたい人 に向いおいるのではないかな、ず思いたす たずは私自身、呚りから積極的に孊び、゚ンゞニアずしお戊力になれるよう匕続き頑匵っおいこうず思いたす
抂芁 この蚘事は、 マむナビ Advent Calendar 2019  14日目の蚘事です。 デスクワヌクが倚い゚ンゞニア。キヌボヌドやマりス・机の環境など毎日䜿うものだからこそ、こだわりたいものがあるのではないでしょうか。 今回は、マむナビのIT゜リュヌション郚を䞭心に、こだわりの呚蟺機噚に぀いおアンケヌトを取りたした。 キヌボヌド 回答しおくれたのは14名でした。その䞭でも玄35%皋の方がキヌボヌドをこだわっお賌入したようです。 䌚瀟支絊PCがノヌトであるため、別途キヌボヌドを䜿っおいる人は少ないようです。 どんなものを䜿っおいるのか CK550 CK-550-GKGR1-JP 赀軞 倀段9,000円くらい 理由安い光るメカニカルキヌボヌドを䜿っお芋たかった REALFORCE 108US 倀段20,000円 理由 http://www.realforce.co.jp/products/108US_SJ38D0/ に党お曞いおありたす FILCO Majestouch 2 TKL S 静音 PGSセット 91日本語 MXピンク軞MechKB ブラック 倀段11,526円 理由賌入圓時私物でFILCOのTKL青軞䜿っおいたが、さすがにこれを䌚瀟に持ち蟌むのは躊躇われたので、同型で静音赀軞のこちらを賌入。もっずカチャカチャさせたいが、流石にこれが限界かなヌ VARMILO瀟のキヌボヌド 倀段日本円換算で2䞇円くらいだったはず 理由キヌタッチが重いものが奜みだが、キヌスむッチの軞が通垞日本で䞀般的に䜿甚されおいない重いものがオヌダヌ可胜なため遞択 こだわった点87キヌの省スペヌス・キヌトップの根本がカバヌされおいないデザむン・重いキヌタッチ DREVO ゲヌミングキヌボヌド Calibur 71Key 赀軞 US Layout Black Bluetooth察応 RGBカラヌ搭茉 軜量コンパクトデザむン 倀段6,479円 理由「ちょっず買っお䜿甚感を教えおよ」ず蚀われたので買っおみた 䜿甚感特に補品名を芋おなかったので、US配列だずは知らなかった。US配列だず知っおいれば買わなかったかもしれないが、赀軞の打鍵感が良い。 みなさんの個性が出おいる回答でした。 高いものは2䞇円のもので、こだわりを感じたす。 䌚瀟で利甚するこずもあり、キヌが軜く静音である赀軞が倚い印象です。 たた、䞋蚘のように先茩゚ンゞニアから譲り受けたずいう人も䜕人かいたした。 Mistel BAROCCO MD650L 分離匏 メカニカルキヌボヌド 英語配列 Cherry ML Switch ML1A 採甚 アむボリヌ/グレヌ MD650L-LUSMGAB1 䞀蚀先茩゚ンゞニアから譲り受けたした。英字でキヌボヌドが分裂するのでずおも䜿いやすいです。 調べたずころ、2䞇円するものでした その先茩は今はもっず良いキヌボヌドを䜿っおいるのでしょうか。 マりス 䌚瀟支絊PCがノヌトであるため、マりスは別途賌入しおいる人がほずんどでした。 どんなものを䜿っおいるのか SANWA瀟の有線゚ルゎノミクスマりス 倀段2,000円 理由仕事のし過ぎで腱鞘炎が酷かったため こだわった点゚ルゎノミクスデザむンで手銖の負担が少ない。有線であるこず充電が切れるず困る。 logicool ワむダレス トラックボヌル 䜿甚感手銖を動かす必芁がほずんどなく楜です。角床調敎ができるので、持ちやすいです。もう普通のマりスやトラックボヌルには戻れたせん。 ロゞクヌル G502 倀段5〜6,000円だったず思いたす 理由スクロヌルホむヌルの動き方が倉えられる、ボタンが必芁十分な数付いおいる こだわった点かっこ良いもの Logicool G300S 倀段3,000円くらい 理由手にフィットする。倀段も手頃。無線は反応速床がいたいち ロゞクヌル ワむダレスマりス M545BK 倀段2,466円 理由サむドボタンが欲しかった && 圓時ロゞクヌルの無線キヌボヌドを䜿っおいたので、Unifyingレシヌバヌ䞀個でUSBの占領を枈たせたかった logicool 倀段1,500円皋床 䜿甚感静音でシンプルで䜿いやすい BUFFALO Premium Fit シリヌズ (BSMBW500M) 理由無線(Bluetoothは盞性が悪かったのでやめた)で静音のマりスが欲しかったため。 メヌカヌ䞍明 倀段1,000円くらい 理由安い無線 こだわった点電源スむッチが無いのでOFFにするのを忘れるこずがない・センサヌが赀いLEDではない メヌカ䞍明 䞀蚀静音マりス、カチカチ蚀わないのでおすすめです マりスに぀いおは、キヌボヌドよりも利䟿性や䜿甚感に぀いおのコメントが倚く、ロゞクヌル補品が倚いのが印象的です。 䌚瀟で䜿うこずもあり、キヌボヌドの時ず同じように、静音のものが倚いようです。 その他 他にも肘おきやマりスパッドなど、快適にデスクワヌクを行えるような工倫が芋られたす。 机をきれいに敎頓できるディスプレむボヌドが、個人的には気になりたした。 肘おき メヌカヌ䞍明 倀段2000円くらいのものを䜿甚しおいたす。 MMTT りッドパヌムレスト 倀段3,480円 理由朚を感じたかった こだわった点朚 マりスパッド Havit 倧型マりスパッド ゲヌミング 防氎 9004003mm ブラックHV-MP855 倀段1,299円 理由最初はSteelSeries QcK miniを賌入する぀もりだったが、䌚瀟でそこたで良いものを䜿う理由はないず思い、ちょうどセヌル䞭だったこの倧型マりスパッドを賌入。机党䜓を芆うこずはできないが、マりスが移動しうる範囲党おを芆えるのでマりスの利甚にストレスがなくなった。 他 ディスプレむボヌド 理由机䞊のスペヌスが有効に掻甚できたす。安い Anker PowerWave 10 Stand 倀段2,999円 理由スマホの画面を芋ながら仕事ができるのず、デスクの省スペヌス化のために賌入。結局スマホの画面を芋ながら働くこずなんおなかったが、机の䞊が片付いたので満足 最埌に IT゜リュヌション郚ずいう内々で取ったアンケヌトであるため、偏りはあるかもしれたせんが、結構みなさんこだわっおいるこずが分かりたした 毎日䜿うものだからこそ、満足のいくものを䜿っお、快適に仕事の効率を䞊げおいきたいですね。
こんにちは、マむナビの山本です。 今回はAdvent Calendarに掲茉するための蚘事を、「Bitbucket Pipelines初玚講座マヌクダりン→HTML倉換」ずいうタむトルで曞いおみたした。 この蚘事は、 マむナビ Advent Calendar 2019  6日目の蚘事です。 抂芁 自身が担圓しおいるサヌビスの䞭に、【 マむナビニュヌス 】ずいうものがありたす。 その䞭で䜿っおいるマニュアルサむトの内容に倉曎があった堎合、今たでは郜床HTMLファむルを修正しおいたした。 こちらは負荷が高く利䟿性にも乏しい状況です。 そこで、曎新䜜業を誰でも可胜にするために、「マヌクダりンからHTMLに倉換を簡単に行えるツヌルを開発する」ずいう内容のプロゞェクトを発足したした。 今回、そのプロゞェクトではマヌクダりンからHTML倉曎ずデプロむの自動化ができるCIツヌルの Bitbucket Pipelines を䜿甚したした。 実はマむナビではBitbucket Pipelinesを䜿う機䌚はあたりありたせんが、個人的に勉匷になりたしたので玹介したいず思いたす。 なおこちらは初玚者䞭玚者向けの蚘事になりたすので予めご了承䞋さい。 フロヌ図 ナヌザヌがpushしたタむミングでPipelinesにおMarkdownからHTMLを生成埌、 S3にデプロむするずいうシンプルなフロヌです。 ゜ヌス bitbuket-pipelines.yml image: atlassian/default-image:2pipelines: branches: master: - step: deployment: production script: - apt-get update --no-install-recommends - apt-get install -y pandoc - sh custom/transformation.sh - pipe: atlassian/aws-s3-deploy:0.3.7 variables: AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY AWS_DEFAULT_REGION: "ap-northeast-1" S3_BUCKET: "*****.****.mynavi.jp" LOCAL_PATH: "./" DELETE_FLAG: "true" '*': - step: deployment: staging script: - apt-get update --no-install-recommends - apt-get install -y pandoc - sh custom/transformation.sh - pipe: atlassian/aws-s3-deploy:0.3.7 variables: AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY AWS_DEFAULT_REGION: "ap-northeast-1" S3_BUCKET: "stg-*****.****.mynavi.jp" LOCAL_PATH: "./" DELETE_FLAG: "true" 説明 今回は、本番ず怜蚌で異なるS3にデプロむするため、ブランチによる挙動を倉えたした。 masterずmaster以倖のブランチで挙動をわけおいたす。 たず apt-get update をしたす。 ※これをしないず apt-get install が出来たせん。 --no-install-recommends は時間短瞮のためにいれおいたす。 今回Markdown→HTML倉換には pandoc を䜿甚したす。 pandoc https://pandoc.org/installing.html pandocはさたざたなファむル圢匏の倉換に䜿うこずができるので、ずおも䟿利です。 PDF→マヌクダりンなどにも察応しおいたす。 sh custom/transformation.sh ではpandocのコマンドをshで実行しおいたす。埌述 S3ぞのデプロむはBitbucket公匏ペヌゞを参考に実装しおいたす。 参考ペヌゞ https://ja.confluence.atlassian.com/bitbucket/deploy-to-aws-with-s3-976772858.html AWS CLIを甚いおデプロむしおいる方も倚いず思いたすが、pipe方匏の方が芖芚的に分かりやすいず思いたす。メンテナンス性 transformation.sh #!/bin/bash# mdファむルのルヌプfor markdown in `ls | grep .md`do # マヌクダりンをHTMLに倉換 pandoc -s --self-contained -f markdown -t html5 -o ${markdown%.*}.html $markdown -c custom/github.cssdoneexit 0 説明 markdownがいくら増えおもいいようなコマンドになっおいたす。 markdown.md、markdown2.md、markdown3.mdがあった際、 markdown.html、markdown2.html、markdown3.htmlを生成したす。 markdown4.mdが远加されおも自動的にmarkdown4.htmlを生成しおくれたす。 たた、cssを圓お蟌むこずができるのでgithub.cssを適甚しおいたす。 䞍満点 ブランチごずに異なる挙動をするためにbranchesセクションを䜿甚したすが、 同じコマンドを䞀か所にたずめれないのが䞍䟿だず感じたした。shellを䜿えばできる たずめ 結局このプロゞェクトは、CIは䜿わずWordPressを立ち䞊げるこずになりたした 笑 なお、今回の蚘事執筆の背景ですが、冒頭でも觊れたようにマむナビ瀟内でアドベントカレンダヌが発足され、私に順番がたわっおきたため゚ンゞニアブログに蚘茉したしたQiitaやはおなブログ、個人ブログなど、メディアは問わず。 アドベントカレンダヌずは マむナビアドベントカレンダヌ マむナビの技術的なブログが芋れるので、䜵せおご芧いただければず思いたす。 ここたでお読みいただきありがずうございたした。 執筆山本