TECH
中津川 篤司

CloudGarageでデスクトップのLinuxを扱う

Linuxはサーバとしての利用だけでなく、Xを使ったデスクトップOSとしての利用もできます。しかし自分のローカルコンピュータ上でGUIを利用している人はそれほど多くないのではないでしょうか。 今回はCloudGarageで立ち上げたサーバにXとRDP(Remote Desktop Protocol)をインストールしてリモート接続を行ってみます。 ベースのOSはUbuntu 今回はUbuntuを使っています。他のLinuxディストリビューションであっても大差はないはずです。 xrdpのインストール XでRDPを使えるようにするxrdpをインストールします。これはuniverseというaptのリポジトリに含まれています。 sudo add-apt-repository universe リポジトリを追加したらxrdpをインストールします。 sudo apt-get install xrdp 次にLinuxのデスクトップシステムであるXをインストールします。今回はMATEを使います。 $ sudo apt-get install mate-core mate-desktop-environment mate-notification-daemon さらにRDPで接続した時に実行する環境設定を記述します。 $ sudo sed -i.bak '/fi/a #xrdp multiple users configuration \n mate-session \n' /etc/xrdp/startwm.sh ファイアウォールの設定 RDPは3389番ポートを使いますので、これを開放します。 sudo ufw allow 3389/tcp 最後にxrdpを再起動します。 sudo /etc/init.d/xrdp restart これで準備完了です。 RDPクライアントを立ち上げる RDPクライアントは幾つかありますが、macOS用であればMicrosoft Remote Desktop 10が無料で使えてオススメです。インストールしたら起動します。 最初にサーバを追加します。これはIPアドレスを指定します。そして初回の実行時にログイン時にID、パスワードを聞かれます。これは保存しておくこともできます。 接続できるとXが立ち上がって、利用できます。 FirefoxやChromiumで日本語サイトのブラウジングも可能です。 十分なネットワーク速度が必要なので、モバイルネットワークなどでは利用が難しいでしょう。とは言え、GUI向けのアプリケーションをインストールしたり、開発したソフトウェアのLinux対応を検証したりするのに使えるでしょう。

イベント・勉強会
セッションチーム

「CloudGarageにもの申す!」リストを公開します。

皆さんこんにちは、CloudGarageセッションチームのナカエです。 一周年と三ヶ月を迎えたCloudGargeは皆さまからのお声を参考にしながら、続々とアップデートを繰り返している毎日です。先日、皆さまへの感謝の思いと、CloudGarageのこれまでと今後を、ユーザー様と直接お話しする会を開催しました。ご来場いただきました方々、改めて御礼申し上げます。お忙しいところ誠にありがとうございました。 イベントレポート:CloudGarage Developer’s Meetup そのイベントの中で「CloudGarageにもの申す!」と題してホワイトボードにご要望を付箋で貼って頂きました。 https://twitter.com/CloudGarage_PR/status/1057238997481676801 頂いた内容は貴重なご意見・ご要望として社内担当者への共有を行っておりますが、せっかくですので皆さまへも情報共有をさせて頂きます。 この中から少しでも多くの機能反映・改善に邁進していきたいと思う所存です。 「CloudGarageにもの申す!」リスト ・オフィスキレイ!!ISOイメージの件まってます♡ ・Lightsail vs CloudGarage ・DAP審査、ゆるゆるでお願いします。 ・クラガレサイコー ・DAP知らなかった。。。 ・はなちゃんの後ろ姿とスリーサイズを! ・K8sほしい ・地方に持ってきてハンズオンやりましょう! ・API期待してます! ・計算資源のプール ・いつもサポートありがとうございまーす! ・API ・LB周りのAPIも! ・テンプレート増やして(ブロックチェーン) ・お試しアカウントありがとうございます! ・BOXプランからのボーダレスな移行! ・Advent Calenderよろしく! ・オートスケール ・ISO URL ・申請通るのが遅い・・・ ・Dabianミラー作らせてください(容量が・・・) ・売りに来たんじゃない、会いに来たんだ! ・FWで詳細設定のIPアドレスの範囲指定 一見するとAPIとISO関連の要望が多いでしょうか(^^ゞ 上記要望のいくつかは現在進行中&鋭意開発中のものもありますので少々お待ち頂ければと。 またSNSでも貴重なご意見を頂戴しておりますので、直近のものをピックアップしておきますね。 https://twitter.com/kanna_1go/status/1061099834726211584 https://twitter.com/FoxBoxsnet/status/1061242380697759744 SNSで頂戴したご要望も私を含めCloudGarage社内メンバー内で拝見・共有しております。#CloudGarage をつけて頂けると見つけやすいのでぜひ。 #CloudGarage Advent Calendar 2018 さて、最後に皆さんの貴重なご意見や使用感を共有いただける場として、ユーザー様のご協力により今年もAdvent Calendarが公開されました。 (miki "Clom" nomiyamaさん、ありがとうございます!) こちらもご参加頂けると大変ありがたいです!ぜひともお願いしますです。 #CloudGarage Advent Calendar 2018 ----------- そんなわけでCloudGarageはこれからも、色々な地域、コミュニティ、ユーザーの皆様とこういったイベントを行って参ります。 もしご一緒できるイベントなどございましたら、「CloudGarageさん、イベントしない?」とFacebookやTwitterでお気軽にメッセージくださいませ。 それではまた!  

動画・自由研究
クラガレラボチーム

クラウドサーバーとは?レンタルサーバーとの違いを解説!

会社内にてシステムを構築する上で、システムの土台となるインフラの選択肢が増えてきました。昔は物理的なサーバーを購入し、会社の隅っこに設置して運用することが多かったのですが、今やサーバーを自社の手元に置く必要は無くなり、必要な時だけ借りて使うというやり方が主流になりました。 今回は、サーバーを借りる選択肢となりうるクラウドサーバーとレンタルサーバーとの違いについてご紹介していきます。双方のメリットを押さえて、利用シーンに応じて使い分けていきましょう。 クラウドサーバーとレンタルサーバーで共通すること クラウドサーバーとレンタルサーバーは、サーバー事業者が持つサーバーの一部を借りて、システム構築に利用できるサービスです。他の利用者と共有して使う共有型と、利用者を限定させる専有型がありますが、共有型の方が利用料が安く、ユーザー数もこちらの方が多くなっています。 そもそもサービス提供者であるサーバー事業者は大きなデータセンターに大量のサーバーを設置、運用しているため、自社にサーバーを設置するよりもセキュリティ性が高く、性能の良い機器を大量に購入しているため、コストパフォーマンスの高いサービス提供が可能です。 また、物理的なサーバーに障害が発生した時は、利用者がハードウェアに対して何か対処する必要はありません。障害対応はサーバー事業者が責任をもって対応してくれます。ただ、ハードウェア障害により、サーバーの上に載っているアプリケーションも停止することがあります。その場合は、アプリケーションのサービス再起動など、対応を利用者で行う必要があります。 クラウドサーバー それでは、まずクラウドサーバーの特徴を見ていきましょう。 - クラウドサーバーとは? Webからクラウドサーバー事業者のホームページにアクセスし、CPUやOS、ディスク容量、サーバーへアクセスを可能とするファイアーウォールの設定などを行うことで、クラウド上にサーバーを構築することができます。 構築したサーバーには、OSがWindowsであればRDP(リモートデスクトップ接続)、Linux系であればTeratermなどでSSH接続することでログインができます。ログイン後は、システム構築に必要なソフトウェアをインストールしながら、どんどんカスタマイズしていくことができます。 - クラウドサーバーのメリット クラウドサーバーのメリットとして大きく2点を挙げて説明します。 【1. 拡張性】 クラウドサーバー事業者が提供するサービスは、サーバーの提供だけではなく、ローカルIPのレンジを払い出し運用できるネットワークサービスやグローバルIPの払い出し、OSイメージのバックアップ、ロードバランサーなど、サーバー領域に限定されず、システム全体の観点から構築することができます。 1システムの構築だけではなく、会社全体での運用やITシステムの構築が必要な場合、アプリケーションやインフラに必要な細かな設定のハンドリングを、自社内で行うことが可能となります。 【2. 柔軟性】 ITを使ってビジネススピードを上げるためには、まずは小規模でシステムを構築、テストを行い、システムの方向性が固まったら本格的にシステム構築へ乗り出すというフェーズが必要になります。 クラウドサーバーには、インスタンスタイプという概念があります。それは、CPUなどの性能をインスタンスタイプを変更することによって上げたり下げたりすることができるものです。 そのため、小規模でシステムを構築する際は、CPU1つを使った最小限のインスタンスタイプを採用し、本格的なシステム構築の際はインスタンスタイプを上げてシステムを増強させることが可能です。 また、システムの本番リリース後、思わぬリソース不足が発生した際にも、インスタンスタイプを増強させたり、サーバーを一時的に増やしたりして対処することができます。 レンタルサーバー 次にレンタルサーバーの特徴を見ていきましょう。 - レンタルサーバーとは? レンタルサーバー事業者から提示されている料金プランから最適なものを選び、契約することでサーバーを遠隔から利用することが可能となります。 簡単なWebサイトを作りたい時は、サーバー構築後に、WordPressなどのCMSを自動インストールすることで、すぐにWordPressの実装に着手することもできます。 本来はデータベースとサーバーを連携させるための設定が必要となるのですが、代わりにレンタルサーバー事業者がやってくれるので、セットアップが簡単です。 契約は月額ではなく、3ヶ月や半年、1年など長期間の契約が一般的ですが、利用料金は安く設定されているため利用しやすくなっています。 - レンタルサーバーのメリット レンタルサーバーのメリットとして大きく2点を挙げて説明します。 【1. 簡易性】 レンタルサーバーは、クラウドサーバーよりも簡易的にサーバーを構築することが可能です。利用プランも複数に限定されており、サーバーを構築するためにプランを選ぶだけで、ほぼサーバーの構築作業は完了です。利用プランの違いも、ディスク量の多さやオプションの量などによるもので、大きな違いはありません。 クラウドサーバーのように、細かな設定が必要な場合ではなく、小規模なシステムを構築するだけで十分といった場合に利用すると効果的です。 【21 インフラ環境整備の容易性】 レンタルサーバーの事業者は、サーバーだけではなく、メールサービスやドメイン発行サービス、SSL証明書の無料発行など、クラウドサーバーだけで実現しようとすると、技術や時間が多くかかる作業を、サービスとして利用できる企業もあります。 企業のインフラとして最低限必要となるものを、レンタルサーバー経由で揃えてしまうということも可能です。 まとめ クラウドサーバーとレンタルサーバーは、双方ともクラウドのサービスですが、利用するシーンは大きく異なります。 細かな設定は求められない小規模なシステムであればレンタルサーバー、全社的にインフラを導入する場合や最初は小規模でも今後拡張を想定するシステムの場合はクラウドサーバーの利用を検討するようにしましょう。 あなたの企業に必要なサービスやサポートは何なのかを考えると、どちらを採用すべきか明確になってくるはずです。

イベント・勉強会
バナナ かじる

感謝の CloudGarage Developer's Meetup レポート!

秋も深まる今日このごろ、皆様いかがお過ごしでしょうか。 先日公開されたこちらの記事により、「バナナ」と呼ばれるようになりました。どうも、バナナです。※編集注 ページ最下部ライター情報更新済 感謝のCloudGarage15ヶ月記念 先日一周年を迎えたCloudGarge、皆さまからのお声を参考にしながら、続々とアップデートを繰り返している毎日です。ユーザー様への感謝の思いと、CloudGarageのこれまでと今後を、ユーザー様と直接お話しする会を開催しました。 CloudGarage Developer's Meetup いつもお世話になってる方々から、今回初めてCloudGarageを知っていただいた方まで、幅広くたくさんのCloudGarageユーザー様にご来場いただきました。 みなさま、いつもありがとうございます! 会場準備、着々進行中です!スタッフ一同、ご来場お待ちしております!#CloudGarage pic.twitter.com/fwxrRAGq04— CloudGarage (@CloudGarage_PR) 2018年10月30日 今回の進行は中津川が務めました。CloudGarageエヴァンジェリストとして活動中、techblogでの連載も好評を博しておりますので、ご一読ください。 TECH & SUPPORT BLOG|クラウドガレージ はじまりましたー!#CloudGarage pic.twitter.com/AeoHBNKjVL— CloudGarage (@CloudGarage_PR) 2018年10月30日 CloudGarageのこれまでの歩み Cloud garage deveopers meetup from jun oyaizu まずは運用部長 小柳津から「CloudGarageのこれまでの歩み」を。サービス構想段階から熱い想いを注ぎ続けてきた漢のセッションが炸裂していました。さすが事業部門長。アメ横で酔い潰れながらサービスを語った漢は伊達じゃない。 CloudGarageいろいろ使ってみた!LT大会! 今回のLTはCloudGarageをDeepに使い込んでいる5名の方々にご登壇いただきました。 内容が濃すぎてありがたい限りです。。。一言コメント添えつつご紹介させていただきます! ┃私のDAPの使い方 by @kanna_1go さま Cloud garage developer's meetup(私のDAPの使い方) from Hiroki Inukai なんと弱冠20歳(!)犬飼さま。在学中に先輩からCaloudGarageを勧めてもらい、様々な用途でお使いいただいてます。開発者支援制度の妙につきます、今後共よろしくおねがいします。カウボーイ◯バップ最高 あと、うちの子かわいい(自賛 ┃CloudGarageでの活用事例 by @cunomiuna さま こちらも大学在籍されていた当時のお話ですが、なんと研究室のシステム構築したお話です(´д`) 前身サービスのEX-CLOUDも絡め、無停止バックアップやDNSオプションなどをフル活用で、CloudGarageを使い倒していただいてます、ありがてえ!m(_ _)m Adventカレンダーの立ち上げも、ありがとうございます!昨年はおかげさまで満員御礼となりました、今年も皆様のCloudGarageへの想いを語っていただければm(_ _)m #CloudGarage Advent Calendar 2018 ┃ウェブサービスにDAPを使ったその理由 by @eiji_nagano さま 合同会社01waveの永野さま(@eiji_nagano) サービスリリースに際し、DAPをご利用いただきました。コストがかけづらい状況に悩めるスタートアップ企業の皆様を、CloudGarage DAPは応援します。ぜひご活用ください! URL短縮サービス「たんっ!」 サービスはもちろんスライドもおしゃれで素晴らしいなあ、と思ったらCloudGarageもおしゃれに作っていただいてました。感無量。。。 !!??#CloudGarage pic.twitter.com/qUINTU8aFO— CloudGarage (@CloudGarage_PR) 2018年10月30日 ┃DAP+Dockerで簡単環境構築 by @koda3t さま DAP+Dockerで情報共有サービスを開発した話。 「「「欲しかったので作った」」」っていつか言ってみたいセリフBest3ですけど、自分はバナナ咀嚼するくらいしかできません。 総DL数20,000超えってすごい… オープンソースとして公開されてるので、ぜひお試しください! Knouledge ┃@FoxBoxsnet さま GitPitch Presents: github/FoxBoxsnet/slides/1810_CloudGarageDevelopersMeetupThe Markdown Presentation Service on Git. サービスリリースから今日にいたるまで、数々のCloudGarageドキュメントを残していただいている@FoxBoxsnetさま。いつも貴重な検証データを掲載いただき、公式を超えてる説あります。 アドベントカレンダーの告知もありがとうございます!昨年に続くご執筆お待ちしております! ↓ベンチマークテストとか公式でもやりたいですね… @FoxBoxsnet さまLT貴重な検証データ!ありがとうございます! #CloudGarage pic.twitter.com/Y3TBHTKNtQ— CloudGarage (@CloudGarage_PR) 2018年10月30日 ┃@lesson5 さま CloudGarage Developer's Meetup from Masashi Hisatsugu もはやCloudGarageの15ヶ月を語るうえで欠かせない レッスンファイブ の久次さま(@lesson5)。主に山口を拠点にご活躍されており、クリエイティブハント山口の公式サイトを弊社サービスで運用していただいています。様々なシーンでお世話になっており、スライド/Webサイト、ともに弊社中江率が異様に高いです。今後共よろしくお願いいたしますm(_ _)m クリエイティブハント山口 中の人に聞いてみた LT終了後は、プログラムにはなかった突発企画「CloudGarageの中の人に聞いてみよう」が勃発。開発部の鈴木へ、皆様からの質問・要望が集まりました。開発者冥利に尽きるのか、嬉しそうでした笑 突発企画 中の人に聞いてみよう質問がなかなかにエッジ効いてる件。 #CloudGarage pic.twitter.com/fZgi2sp1Gu— CloudGarage (@CloudGarage_PR) 2018年10月30日 ありがとうございましたっ!! LT終了後、「CloudGarage物申す板」に、来場者全員に強制的に物申させて 幕を閉じました。 物申されてるなう。 #CloudGarage pic.twitter.com/afQhNWY8G8— CloudGarage (@CloudGarage_PR) 2018年10月30日 当日の様子は中津川がまとめておりますので以下ご参照ください。 CloudGarage Developer's Meetupまとめ 一次会終了、懇親会に移動します!引き続きお楽しみください! #CloudGarage pic.twitter.com/ynMHogy88Y— CloudGarage (@CloudGarage_PR) 2018年10月30日 この後の懇親会も含めて、楽しい時間を過ごさせていただきました。 ユーザー様と直接お話できる機会は、サービス提供者にとって滅多にない大変貴重なもの。スタッフ一同から心よりお礼申し上げます。 皆様とともに、これからもより良いサービスを提供して参ります。 今後共CloudGarageをよろしくお願いいたします! ありがとうございます!!!!!!みなさまも最高です!!!!!! #CloudGarage pic.twitter.com/9clJD3nK5h— CloudGarage (@CloudGarage_PR) 2018年10月30日

CloudGarageでデスクトップのLinuxを扱う

TECH
中津川 篤司

Linuxはサーバとしての利用だけでなく、Xを使ったデスクトップOSとしての利用もできます。しかし自分のローカルコンピュータ上でGUIを利用している人はそれほど多くないのではないでしょうか。 今回はCloudGarageで立ち上げたサーバにXとRDP(Remote Desktop Protocol)をインストールしてリモート接続を行ってみます。 ベースのOSはUbuntu 今回はUbuntuを使っています。他のLinuxディストリビューションであっても大差はないはずです。 xrdpのインストール XでRDPを使えるようにするxrdpをインストールします。これはuniverseというaptのリポジトリに含まれています。 sudo add-apt-repository universe リポジトリを追加したらxrdpをインストールします。 sudo apt-get install xrdp 次にLinuxのデスクトップシステムであるXをインストールします。今回はMATEを使います。 $ sudo apt-get install mate-core mate-desktop-environment mate-notification-daemon さらにRDPで接続した時に実行する環境設定を記述します。 $ sudo sed -i.bak '/fi/a #xrdp multiple users configuration \n mate-session \n' /etc/xrdp/startwm.sh ファイアウォールの設定 RDPは3389番ポートを使いますので、これを開放します。 sudo ufw allow 3389/tcp 最後にxrdpを再起動します。 sudo /etc/init.d/xrdp restart これで準備完了です。 RDPクライアントを立ち上げる RDPクライアントは幾つかありますが、macOS用であればMicrosoft Remote Desktop 10が無料で使えてオススメです。インストールしたら起動します。 最初にサーバを追加します。これはIPアドレスを指定します。そして初回の実行時にログイン時にID、パスワードを聞かれます。これは保存しておくこともできます。 接続できるとXが立ち上がって、利用できます。 FirefoxやChromiumで日本語サイトのブラウジングも可能です。 十分なネットワーク速度が必要なので、モバイルネットワークなどでは利用が難しいでしょう。とは言え、GUI向けのアプリケーションをインストールしたり、開発したソフトウェアのLinux対応を検証したりするのに使えるでしょう。

「CloudGarageにもの申す!」リストを公開します。

イベント・勉強会
セッションチーム

皆さんこんにちは、CloudGarageセッションチームのナカエです。 一周年と三ヶ月を迎えたCloudGargeは皆さまからのお声を参考にしながら、続々とアップデートを繰り返している毎日です。先日、皆さまへの感謝の思いと、CloudGarageのこれまでと今後を、ユーザー様と直接お話しする会を開催しました。ご来場いただきました方々、改めて御礼申し上げます。お忙しいところ誠にありがとうございました。 イベントレポート:CloudGarage Developer’s Meetup そのイベントの中で「CloudGarageにもの申す!」と題してホワイトボードにご要望を付箋で貼って頂きました。 https://twitter.com/CloudGarage_PR/status/1057238997481676801 頂いた内容は貴重なご意見・ご要望として社内担当者への共有を行っておりますが、せっかくですので皆さまへも情報共有をさせて頂きます。 この中から少しでも多くの機能反映・改善に邁進していきたいと思う所存です。 「CloudGarageにもの申す!」リスト ・オフィスキレイ!!ISOイメージの件まってます♡ ・Lightsail vs CloudGarage ・DAP審査、ゆるゆるでお願いします。 ・クラガレサイコー ・DAP知らなかった。。。 ・はなちゃんの後ろ姿とスリーサイズを! ・K8sほしい ・地方に持ってきてハンズオンやりましょう! ・API期待してます! ・計算資源のプール ・いつもサポートありがとうございまーす! ・API ・LB周りのAPIも! ・テンプレート増やして(ブロックチェーン) ・お試しアカウントありがとうございます! ・BOXプランからのボーダレスな移行! ・Advent Calenderよろしく! ・オートスケール ・ISO URL ・申請通るのが遅い・・・ ・Dabianミラー作らせてください(容量が・・・) ・売りに来たんじゃない、会いに来たんだ! ・FWで詳細設定のIPアドレスの範囲指定 一見するとAPIとISO関連の要望が多いでしょうか(^^ゞ 上記要望のいくつかは現在進行中&鋭意開発中のものもありますので少々お待ち頂ければと。 またSNSでも貴重なご意見を頂戴しておりますので、直近のものをピックアップしておきますね。 https://twitter.com/kanna_1go/status/1061099834726211584 https://twitter.com/FoxBoxsnet/status/1061242380697759744 SNSで頂戴したご要望も私を含めCloudGarage社内メンバー内で拝見・共有しております。#CloudGarage をつけて頂けると見つけやすいのでぜひ。 #CloudGarage Advent Calendar 2018 さて、最後に皆さんの貴重なご意見や使用感を共有いただける場として、ユーザー様のご協力により今年もAdvent Calendarが公開されました。 (miki "Clom" nomiyamaさん、ありがとうございます!) こちらもご参加頂けると大変ありがたいです!ぜひともお願いしますです。 #CloudGarage Advent Calendar 2018 ----------- そんなわけでCloudGarageはこれからも、色々な地域、コミュニティ、ユーザーの皆様とこういったイベントを行って参ります。 もしご一緒できるイベントなどございましたら、「CloudGarageさん、イベントしない?」とFacebookやTwitterでお気軽にメッセージくださいませ。 それではまた!  

クラウドサーバーとは?レンタルサーバーとの違いを解説!

動画・自由研究
クラガレラボチーム

会社内にてシステムを構築する上で、システムの土台となるインフラの選択肢が増えてきました。昔は物理的なサーバーを購入し、会社の隅っこに設置して運用することが多かったのですが、今やサーバーを自社の手元に置く必要は無くなり、必要な時だけ借りて使うというやり方が主流になりました。 今回は、サーバーを借りる選択肢となりうるクラウドサーバーとレンタルサーバーとの違いについてご紹介していきます。双方のメリットを押さえて、利用シーンに応じて使い分けていきましょう。 クラウドサーバーとレンタルサーバーで共通すること クラウドサーバーとレンタルサーバーは、サーバー事業者が持つサーバーの一部を借りて、システム構築に利用できるサービスです。他の利用者と共有して使う共有型と、利用者を限定させる専有型がありますが、共有型の方が利用料が安く、ユーザー数もこちらの方が多くなっています。 そもそもサービス提供者であるサーバー事業者は大きなデータセンターに大量のサーバーを設置、運用しているため、自社にサーバーを設置するよりもセキュリティ性が高く、性能の良い機器を大量に購入しているため、コストパフォーマンスの高いサービス提供が可能です。 また、物理的なサーバーに障害が発生した時は、利用者がハードウェアに対して何か対処する必要はありません。障害対応はサーバー事業者が責任をもって対応してくれます。ただ、ハードウェア障害により、サーバーの上に載っているアプリケーションも停止することがあります。その場合は、アプリケーションのサービス再起動など、対応を利用者で行う必要があります。 クラウドサーバー それでは、まずクラウドサーバーの特徴を見ていきましょう。 - クラウドサーバーとは? Webからクラウドサーバー事業者のホームページにアクセスし、CPUやOS、ディスク容量、サーバーへアクセスを可能とするファイアーウォールの設定などを行うことで、クラウド上にサーバーを構築することができます。 構築したサーバーには、OSがWindowsであればRDP(リモートデスクトップ接続)、Linux系であればTeratermなどでSSH接続することでログインができます。ログイン後は、システム構築に必要なソフトウェアをインストールしながら、どんどんカスタマイズしていくことができます。 - クラウドサーバーのメリット クラウドサーバーのメリットとして大きく2点を挙げて説明します。 【1. 拡張性】 クラウドサーバー事業者が提供するサービスは、サーバーの提供だけではなく、ローカルIPのレンジを払い出し運用できるネットワークサービスやグローバルIPの払い出し、OSイメージのバックアップ、ロードバランサーなど、サーバー領域に限定されず、システム全体の観点から構築することができます。 1システムの構築だけではなく、会社全体での運用やITシステムの構築が必要な場合、アプリケーションやインフラに必要な細かな設定のハンドリングを、自社内で行うことが可能となります。 【2. 柔軟性】 ITを使ってビジネススピードを上げるためには、まずは小規模でシステムを構築、テストを行い、システムの方向性が固まったら本格的にシステム構築へ乗り出すというフェーズが必要になります。 クラウドサーバーには、インスタンスタイプという概念があります。それは、CPUなどの性能をインスタンスタイプを変更することによって上げたり下げたりすることができるものです。 そのため、小規模でシステムを構築する際は、CPU1つを使った最小限のインスタンスタイプを採用し、本格的なシステム構築の際はインスタンスタイプを上げてシステムを増強させることが可能です。 また、システムの本番リリース後、思わぬリソース不足が発生した際にも、インスタンスタイプを増強させたり、サーバーを一時的に増やしたりして対処することができます。 レンタルサーバー 次にレンタルサーバーの特徴を見ていきましょう。 - レンタルサーバーとは? レンタルサーバー事業者から提示されている料金プランから最適なものを選び、契約することでサーバーを遠隔から利用することが可能となります。 簡単なWebサイトを作りたい時は、サーバー構築後に、WordPressなどのCMSを自動インストールすることで、すぐにWordPressの実装に着手することもできます。 本来はデータベースとサーバーを連携させるための設定が必要となるのですが、代わりにレンタルサーバー事業者がやってくれるので、セットアップが簡単です。 契約は月額ではなく、3ヶ月や半年、1年など長期間の契約が一般的ですが、利用料金は安く設定されているため利用しやすくなっています。 - レンタルサーバーのメリット レンタルサーバーのメリットとして大きく2点を挙げて説明します。 【1. 簡易性】 レンタルサーバーは、クラウドサーバーよりも簡易的にサーバーを構築することが可能です。利用プランも複数に限定されており、サーバーを構築するためにプランを選ぶだけで、ほぼサーバーの構築作業は完了です。利用プランの違いも、ディスク量の多さやオプションの量などによるもので、大きな違いはありません。 クラウドサーバーのように、細かな設定が必要な場合ではなく、小規模なシステムを構築するだけで十分といった場合に利用すると効果的です。 【21 インフラ環境整備の容易性】 レンタルサーバーの事業者は、サーバーだけではなく、メールサービスやドメイン発行サービス、SSL証明書の無料発行など、クラウドサーバーだけで実現しようとすると、技術や時間が多くかかる作業を、サービスとして利用できる企業もあります。 企業のインフラとして最低限必要となるものを、レンタルサーバー経由で揃えてしまうということも可能です。 まとめ クラウドサーバーとレンタルサーバーは、双方ともクラウドのサービスですが、利用するシーンは大きく異なります。 細かな設定は求められない小規模なシステムであればレンタルサーバー、全社的にインフラを導入する場合や最初は小規模でも今後拡張を想定するシステムの場合はクラウドサーバーの利用を検討するようにしましょう。 あなたの企業に必要なサービスやサポートは何なのかを考えると、どちらを採用すべきか明確になってくるはずです。

感謝の CloudGarage Developer’s Meetup レポート!

イベント・勉強会
バナナ かじる

秋も深まる今日このごろ、皆様いかがお過ごしでしょうか。 先日公開されたこちらの記事により、「バナナ」と呼ばれるようになりました。どうも、バナナです。※編集注 ページ最下部ライター情報更新済 感謝のCloudGarage15ヶ月記念 先日一周年を迎えたCloudGarge、皆さまからのお声を参考にしながら、続々とアップデートを繰り返している毎日です。ユーザー様への感謝の思いと、CloudGarageのこれまでと今後を、ユーザー様と直接お話しする会を開催しました。 CloudGarage Developer's Meetup いつもお世話になってる方々から、今回初めてCloudGarageを知っていただいた方まで、幅広くたくさんのCloudGarageユーザー様にご来場いただきました。 みなさま、いつもありがとうございます! 会場準備、着々進行中です!スタッフ一同、ご来場お待ちしております!#CloudGarage pic.twitter.com/fwxrRAGq04— CloudGarage (@CloudGarage_PR) 2018年10月30日 今回の進行は中津川が務めました。CloudGarageエヴァンジェリストとして活動中、techblogでの連載も好評を博しておりますので、ご一読ください。 TECH & SUPPORT BLOG|クラウドガレージ はじまりましたー!#CloudGarage pic.twitter.com/AeoHBNKjVL— CloudGarage (@CloudGarage_PR) 2018年10月30日 CloudGarageのこれまでの歩み Cloud garage deveopers meetup from jun oyaizu まずは運用部長 小柳津から「CloudGarageのこれまでの歩み」を。サービス構想段階から熱い想いを注ぎ続けてきた漢のセッションが炸裂していました。さすが事業部門長。アメ横で酔い潰れながらサービスを語った漢は伊達じゃない。 CloudGarageいろいろ使ってみた!LT大会! 今回のLTはCloudGarageをDeepに使い込んでいる5名の方々にご登壇いただきました。 内容が濃すぎてありがたい限りです。。。一言コメント添えつつご紹介させていただきます! ┃私のDAPの使い方 by @kanna_1go さま Cloud garage developer's meetup(私のDAPの使い方) from Hiroki Inukai なんと弱冠20歳(!)犬飼さま。在学中に先輩からCaloudGarageを勧めてもらい、様々な用途でお使いいただいてます。開発者支援制度の妙につきます、今後共よろしくおねがいします。カウボーイ◯バップ最高 あと、うちの子かわいい(自賛 ┃CloudGarageでの活用事例 by @cunomiuna さま こちらも大学在籍されていた当時のお話ですが、なんと研究室のシステム構築したお話です(´д`) 前身サービスのEX-CLOUDも絡め、無停止バックアップやDNSオプションなどをフル活用で、CloudGarageを使い倒していただいてます、ありがてえ!m(_ _)m Adventカレンダーの立ち上げも、ありがとうございます!昨年はおかげさまで満員御礼となりました、今年も皆様のCloudGarageへの想いを語っていただければm(_ _)m #CloudGarage Advent Calendar 2018 ┃ウェブサービスにDAPを使ったその理由 by @eiji_nagano さま 合同会社01waveの永野さま(@eiji_nagano) サービスリリースに際し、DAPをご利用いただきました。コストがかけづらい状況に悩めるスタートアップ企業の皆様を、CloudGarage DAPは応援します。ぜひご活用ください! URL短縮サービス「たんっ!」 サービスはもちろんスライドもおしゃれで素晴らしいなあ、と思ったらCloudGarageもおしゃれに作っていただいてました。感無量。。。 !!??#CloudGarage pic.twitter.com/qUINTU8aFO— CloudGarage (@CloudGarage_PR) 2018年10月30日 ┃DAP+Dockerで簡単環境構築 by @koda3t さま DAP+Dockerで情報共有サービスを開発した話。 「「「欲しかったので作った」」」っていつか言ってみたいセリフBest3ですけど、自分はバナナ咀嚼するくらいしかできません。 総DL数20,000超えってすごい… オープンソースとして公開されてるので、ぜひお試しください! Knouledge ┃@FoxBoxsnet さま GitPitch Presents: github/FoxBoxsnet/slides/1810_CloudGarageDevelopersMeetupThe Markdown Presentation Service on Git. サービスリリースから今日にいたるまで、数々のCloudGarageドキュメントを残していただいている@FoxBoxsnetさま。いつも貴重な検証データを掲載いただき、公式を超えてる説あります。 アドベントカレンダーの告知もありがとうございます!昨年に続くご執筆お待ちしております! ↓ベンチマークテストとか公式でもやりたいですね… @FoxBoxsnet さまLT貴重な検証データ!ありがとうございます! #CloudGarage pic.twitter.com/Y3TBHTKNtQ— CloudGarage (@CloudGarage_PR) 2018年10月30日 ┃@lesson5 さま CloudGarage Developer's Meetup from Masashi Hisatsugu もはやCloudGarageの15ヶ月を語るうえで欠かせない レッスンファイブ の久次さま(@lesson5)。主に山口を拠点にご活躍されており、クリエイティブハント山口の公式サイトを弊社サービスで運用していただいています。様々なシーンでお世話になっており、スライド/Webサイト、ともに弊社中江率が異様に高いです。今後共よろしくお願いいたしますm(_ _)m クリエイティブハント山口 中の人に聞いてみた LT終了後は、プログラムにはなかった突発企画「CloudGarageの中の人に聞いてみよう」が勃発。開発部の鈴木へ、皆様からの質問・要望が集まりました。開発者冥利に尽きるのか、嬉しそうでした笑 突発企画 中の人に聞いてみよう質問がなかなかにエッジ効いてる件。 #CloudGarage pic.twitter.com/fZgi2sp1Gu— CloudGarage (@CloudGarage_PR) 2018年10月30日 ありがとうございましたっ!! LT終了後、「CloudGarage物申す板」に、来場者全員に強制的に物申させて 幕を閉じました。 物申されてるなう。 #CloudGarage pic.twitter.com/afQhNWY8G8— CloudGarage (@CloudGarage_PR) 2018年10月30日 当日の様子は中津川がまとめておりますので以下ご参照ください。 CloudGarage Developer's Meetupまとめ 一次会終了、懇親会に移動します!引き続きお楽しみください! #CloudGarage pic.twitter.com/ynMHogy88Y— CloudGarage (@CloudGarage_PR) 2018年10月30日 この後の懇親会も含めて、楽しい時間を過ごさせていただきました。 ユーザー様と直接お話できる機会は、サービス提供者にとって滅多にない大変貴重なもの。スタッフ一同から心よりお礼申し上げます。 皆様とともに、これからもより良いサービスを提供して参ります。 今後共CloudGarageをよろしくお願いいたします! ありがとうございます!!!!!!みなさまも最高です!!!!!! #CloudGarage pic.twitter.com/9clJD3nK5h— CloudGarage (@CloudGarage_PR) 2018年10月30日

PHP-FPMの設定はUNIX socketとポート番号、どちらが良いのか

TECH
中津川 篤司

nginxでPHPを使えるように設定する場合、PHP-FPMを使います。そして連携させる際の設定として、UNIX socketとポート番号設定のどちらかが指定できます。今回はそのどちらがベストなのか検証してみました。 実行結果 まずは実行結果です。以下はポート番号での設定です。 Concurrency Level: 5 Time taken for tests: 3.905 seconds Complete requests: 50 Failed requests: 40 (Connect: 0, Receive: 0, Length: 40, Exceptions: 0) Total transferred: 3988340 bytes HTML transferred: 3981490 bytes Requests per second: 12.81 [#/sec] (mean) Time per request: 390.455 [ms] (mean) Time per request: 78.091 [ms] (mean, across all concurrent requests) Transfer rate: 997.52 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 91 214 226.8 146 984 Processing: 66 140 125.0 122 973 Waiting: 31 81 121.6 62 895 Total: 208 354 249.9 268 1087 以下はUNIX socketの場合です。 Concurrency Level: 5 Time taken for tests: 3.802 seconds Complete requests: 50 Failed requests: 37 (Connect: 0, Receive: 0, Length: 37, Exceptions: 0) Total transferred: 3988335 bytes HTML transferred: 3981485 bytes Requests per second: 13.15 [#/sec] (mean) Time per request: 380.218 [ms] (mean) Time per request: 76.044 [ms] (mean, across all concurrent requests) Transfer rate: 1024.37 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 107 204 38.2 208 286 Processing: 70 147 40.0 140 241 Waiting: 49 85 21.8 86 127 Total: 269 351 47.5 340 525 実行したのが簡単なスクリプトなのでほとんど違いは出ていませんが、それでもUNIX socketの方が高速に処理されています。 向き不向き UNIX socketの方が処理速度は高速ですが、同じサーバ上で処理されている場合に限ります。リモートの場合はポート番号での接続になります。つまりHTTPサーバとアプリケーションサーバを分離し、スケーリングさせる際にはポート番号での利用になるでしょう。 設定の違い UNIX socketかポート番号かは設定に違いがあります。具体的にはnginxの /etc/nginx/conf.d/default.conf と PHP-FPMの /etc/php/7.0/fpm/pool.d/www.conf です。 /etc/nginx/conf.d/default.conf の違いです。 # UNIX socketの場合 fastcgi_pass unix:/run/php/php7.0-fpm.sock; # ポート番号の場合 fastcgi_pass 127.0.0.1:9000; /etc/php/7.0/fpm/pool.d/www.conf の違いは以下です。 # UNIX socketの場合 listen = /run/php/php7.0-fpm.sock # ポート番号の場合 listen = 127.0.0.1:9000 この設定によって、動作を変えられます。 まとめ 一台のサーバでnginxとPHP-FPMを運用する際にはUNIX socketを使いましょう。複数台構成になったらポート番号を使いましょう。実行速度に大きな差がある訳ではありませんが、パフォーマンスはUNIX socketの方が良いようです。

Dokkuを使ってインスタンスをHerokuのように運用する

TECH
中津川 篤司

CloudGarageはあらかじめリソースを契約し、その範囲内で自分の好きな形でインスタンスを立ち上げられます。インスタンスの割り当てはCPU1つ、ストレージ50GBといった単位になりますが、もっと細かくても良いと考える人もいるでしょう。 そういった目的においてぴったりなのがDockerです。そしてDockerをHeroku風に、サブドメイン化でアプリケーションを運用できるのがDokkuになります。今回はこのDokkuの使い方を解説します。今回はUbuntu 16.04 LTSを対象としています。 dokku/dokku: A docker-powered PaaS that helps you build and manage the lifecycle of applications ドメインを割り当てる DokkuはIPアドレスベースでも運用できるようですが、サブドメインを使った方が分かりやすいでしょう。ドメイン事業者のDNS設定で、ネイキッドドメイン(example.comのような形)とすべてのサブドメイン(www.example.com や sub.example.comなど)が同じIPアドレス(CloudGarageのIPアドレス)を向くように設定します。 サーバのhostnameを変更する Dokkuのインストール時にはドメイン名をhostnameとして設定しておく必要があります。Ubuntu 16.04 LTSのhostname変更は以下のコマンドになります。example.comはあなたのドメインに読み替えてください。 sudo hostnamectl set-hostname example.com そして/etc/hostsにドメインを追加します。 127.0.0.1 localhost 127.0.0.1 example.com インストールする Dokkuのインストールは公式に用意されているコマンドを実行するだけです。 wget https://raw.githubusercontent.com/dokku/dokku/v0.12.12/bootstrap.sh; sudo DOKKU_TAG=v0.12.12 bash bootstrap.sh 時間はかかりますが、待っていれば完了します。 設定する 設定はWebブラウザで行います。 http://example.com:2000/ のように2000番ポートでサーバが立ち上がります。そのため、ファイアウォールの設定を変更する必要があります。例えば ufw を使っている場合には以下のコマンドを実行します。 sudo ufw allow 2000 こちらがインストール設定画面です。公開鍵の設定と、サブドメインでの運用を有効にします。 試す では試してみます。まずDokku側でアプリケーションが必要です。 サーバ側 dokku apps:create ruby-rails-sample さらにデータベースを使いますのでPostgreSQLをインストールします。 sudo dokku plugin:install https://github.com/dokku/dokku-postgres.git そして作成したアプリケーション用にデータベースを作成します。 dokku postgres:create rails-database この作成したデータベースとアプリケーションをリンクさせます。 dokku postgres:link rails-database ruby-rails-sample ローカルコンピュータ側 では次にローカルコンピュータでの操作です。ローカルコンピュータでは、ベースになるRailsアプリケーションをクローンします。 git clone git@github.com:heroku/ruby-rails-sample.git そしてremoteを追加します。example.comはあなたのドメインに読み替えてください。 cd ruby-rails-sample git remote add dokku dokku@example.com:ruby-rails-sample そしてpushします。 git push dokku master デプロイ デプロイはDockerのビルドやRubygemsのインストールなどもあって、時間がかかります。 $ git push dokku master Counting objects: 9, done. Delta compression using up to 8 threads. Compressing objects: 100% (8/8), done. Writing objects: 100% (9/9), 1015 bytes | 1015.00 KiB/s, done. Total 9 (delta 4), reused 0 (delta 0) -----> Cleaning up... : -----> Installing dependencies using bundler 1.15.2 Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment Fetching gem metadata from https://rubygems.org/.......... Fetching version metadata from https://rubygems.org/.. Fetching dependency metadata from https://rubygems.org/. Using rake 10.4.2 : Using turbolinks 2.5.3 Bundle complete! 13 Gemfile dependencies, 53 gems now installed. : =====> Application deployed: http://ruby-rails-sample.example.com To ssh://example.com/ruby-rails-sample aef96a0..29aeb60 master -> master アプリケーション名がサブドメインになり、アプリケーションが立ち上がります。 サブドメインを使ってアプリケーションが立ち上げられる手軽さと、Dockerによる自由度の高さが魅力となっています。一度Dokkuを立ち上げてしまえば、簡単に作ったり捨てたりできる便利な開発環境が手に入るでしょう。 CloudGarageの場合、途中からリソースを変更することもできます。大きなリソースを一台に割り当てて、Dokkuで分割、運用するというのも良さそうです。 Dokku - The smallest PaaS implementation you've ever seen

スマートフォン、タブレットから接続できるMinecraft PEサーバを立てる

TECH
中津川 篤司

大人はもちろん、子供向けのプログラミング教育でも使われているMinecraft。CoderDojoでもMinecraftを導入しているケースがよくあります。そんなMinecraftではサーバを立てて、みんなでワールドを共有できます。 今回はスマートフォンやタブレットで使われているMinecraft Pocket Edition用のMinecraftサーバを立てる方法を紹介します。 利用するOS 今回はUbuntu 16.04 LTSを使っています。他のOSでもやり方は変わらないはずです。 利用するソフトウェア 今回はPocketMine-MPを使っています。これはPHPで作られたMinecraft Pocket Edition用のサーバです。 コマンドだけでインストールできる Ubuntuのサーバが立ち上がったら、SSHでログインします。 ssh root@(あなたのサーバのIPアドレス) そしてユーザを作成します。今回は mcpe というユーザ名にしていますが、任意の名前で大丈夫です。 # adduser mcpe Adding user `mcpe' ... Adding new group `mcpe' (1000) ... Adding new user `mcpe' (1000) with group `mcpe' ... Creating home directory `/home/mcpe' ... Copying files from `/etc/skel' ... Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for mcpe Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] そしてそのユーザになります。 # su - mcpe 後はコマンド一つです。 $ curl -sL https://get.pmmp.io | bash -s - これで start.sh というファイルができあがるので、それを起動します。 $ ./start.sh [*] PocketMine-MP set-up wizard [*] Please select a language : 日本語 => jpn [?] Language (eng): jpn [*] 日本語に設定されました [*] PocketMine-MPをインストールして頂きありがとうございます!サーバのセットアップを開始するにはライセンスに同意する必要があります。PocketMine-MPはLGPLライセンスに基づいて認可されており、これについてはこのフォルダ内のLICENSEファイルから確認することができます。 This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. [?] ライセンスに同意しますか? (y/N): y [?] セットアップウィザードをスキップしますか? (y/N): y [13:44:53] [Server thread/INFO]: Loading pocketmine.yml... : [13:44:54] [Server thread/WARNING]: ----- PocketMine-MP Auto Updater ----- [13:44:54] [Server thread/WARNING]: Your version of PocketMine-MP is out of date. Version 3.2.4 was released on Mon Oct 8 03:33:13 2018 [13:44:54] [Server thread/WARNING]: Details: https://jenkins.pmmp.io/job/PocketMine-MP/1544/ [13:44:54] [Server thread/WARNING]: Download: https://jenkins.pmmp.io/job/PocketMine-MP/1544//artifact/PocketMine-MP.phar セキュリティ設定 PocketMine-MPではデフォルトで19132番ポートを使います。そこで、ufwで利用を許可します。 $ sudo ufw allow 19132/tcp $ sudo ufw enable 接続してみる 後はスマートフォンやタブレットのMinecraft Pocket Editionを起動します。 サーバの追加をクリックして、サーバのIPアドレスとポート番号(19132)、名称を決めます。名称は自由に設定します。 そして接続すればMinecraftが楽しめるはずです。 Minecraft Pocket Editionは通常の(デスクトップ版の)Minecraftとは仕組みが異なるようで、通常のサーバが利用できませんでした。専用のサーバを利用するよう注意してください。 Minecraftはゲームとしてはもちろん、プログラミング教育の中でも活躍しています。ぜひサーバを立てて、みんなで情報を共有してみましょう。 PocketMine-MP

【チュートリアル動画】Plesk オプションの利用方法

動画・自由研究
セッションチーム

皆さん、こんにちは。 CloudGarageセッションチームです。 2018/9/19にCloudGarageは新たな機能として、アプリケーションイメージに「Plesk」を追加しました。 「Plesk」は、Plesk社が提供する世界140カ国、38万サーバーの稼働実績を誇る有償のソフトウェアです。GUI(画面操作)でコマンドを必要とせずあたかもPC操作のような感覚でクラウドを利用することができます。このイメージを選択することでPleskを数クリックで立ち上げることが可能になります。 今回はそのPleskオプションの利用方法をチュートリアル動画にて制作しましたので、ご覧くださいませ。 https://www.youtube.com/watch?v=_O1SumDKOz8 これからも皆様のお役に立てるようなチュートリアル動画を追加していきたいと思います。 ご利用に際しご不明な点などございましたら弊社サポートまでご連絡くださいませ。 お問い合わせ┃CloudGarage 今後ともCloudGarageをどうぞよろしくお願いします。  

IPアドレスをコピーできるユーザスクリプトを作りました

TECH
中津川 篤司

CloudGarageを使っている方達に良く聞かれる要望が「IPアドレスをコピーしたい」です。実際、管理画面で表示されているIPアドレスはマウスでドラッグしても選択状態になりません。同じような状態になるWebアプリケーションはよくあります。 そこでJavaScriptを使ったユーザスクリプトで解決してみました。Tampermonkeyに対応しているので、Google Chrome/Firefox/Safari/Edgeなどで動くはずです。ユーザスクリプトとは、特定のURLにアクセスすると自動実行されるJavaScriptです。 インストール Tampermonkeyをインストールしたら、下記のURLにアクセスしてください。 IPアドレスコピー インストールボタンを押せばユーザスクリプトがインストールされます。 デモ ユーザスクリプトをインストールしたら、CloudGarageの管理画面にアクセスします。そうすると、IPアドレスの横にクリップボードが表示されます。絵文字に対応していない場合は文字参照がそのまま出てしまうかも知れません。 このクリップボードをクリックすると、左側に表示されているIPアドレスがコピーされる仕組みです。コピーされた時に数行だけアイコンがチェックに変わります。 実際に動かすと下記のようになります。 まとめ 個人的にはこれでストレスが大幅に軽減されました。公式にコピーがサポートされるのも近いとは思いますが、それまでの間はユーザスクリプトで乗り切ってください。

CloudGarageでサーバセットアップ【その5:WordPressをインストールする】

TECH
中津川 篤司

インスタンスを簡単に立ち上げられるCloudGarageですが、立ち上げただけでは意味がありません。このインスタンスを使って開発を行っていかなければなりません。とは言え、自分の作りたいものはあるのに、セットアップで色々と時間が取られるのは面倒なはずです。 慣れてきたらKUSANAGI/CentOS-7.3-64bitなどのイメージから選択しても良いですが、まずは自分でイチから作業してみると何かトラブルがあってもリカバリーできるようになります。サーバの動きを掴んでおくと、後々役立つことも多いでしょう。 前回はデータベースサーバを立ち上げて、アプリケーションサーバ(nginx + PHP-FPM)と連携できるところまで進めました。今回はPHPアプリケーションの代表例とも言える、WordPressをインストールします。 WordPressはイメージもあります CloudGarageでWordPressを使う方法は3パターンあります。 WordPressホスティングプランを使う インストール済みイメージを使う 自分で構築する WordPressホスティングプランを使う場合、運用代行なども可能です。構成としてはnginx + HHVMとなっています。インストール済みイメージを使う場合、Apache + mod_phpという組み合わせになります。自分で構築する(今回のパターンです)は構成を自由に選べるのが特徴です。 すでにWordPressに慣れていて、特に問題がない場合はインストール済みイメージを使っても良いでしょう。しかし何かトラブルがあったり、細かくカスタマイズしたいと思った時には一度構築を経験しておくと何かと役立つはずです。 WordPressをダウンロード、解凍する まずアプリケーションサーバにSSHでログインします。 ssh -p 22022 (アプリケーションサーバのIPアドレス)そしてnginxのルートディレクトリに移動します。 $ cd /usr/share/nginx/html/ここにWordPressのファイルをダウンロードします。執筆時点での最新バージョンは4.9.8ですが、変わっている可能性があります。日本語 — WordPressにて確認してください。 wget https://ja.wordpress.org/wordpress-4.9.8-ja.tar.gzダウンロードしたら、ファイルを解凍します。 tar xfz wordpress-4.9.8-ja.tar.gz元ファイルは不要なので削除します。 rm wordpress-4.9.8-ja.tar.gz今回はwordpressというディレクトリにインストールしています。ディレクトリは必要に応じて変更してください。また、ディレクトリをnginxのユーザと合わせておきます。 sudo chown -R www-data:www-data wordpressWebブラウザからアクセス 設置が終わったら、Webブラウザからアクセスします。 http://(アプリケーションサーバのIPアドレス)/wordpress になります。 インストール時にデータベース設定が聞かれます。データベースはあらかじめ作成しておきましょう。また、ポート番号を変更している場合には (データベースサーバのIPアドレス):33060 のようにコロンに続けてポート番号を指定します。後は通常のセットアップと変わりません。 問題なく完了したらログインして管理画面に入れるのを確認しましょう。 画像のアップロードもできれば、ファイルの書き込み権限も正しく与えられているのが確認できます。 まとめ ここまででCloudGarageの二つのインスタンス(アプリケーションサーバとデータベースサーバ)を使って、nginx + PHP-FPMの組み合わせでPHPアプリケーションをインストールする流れが完成しました。 より複雑なシステム構築になると、Gitを使ったり、CI(継続的インテグレーション)による自動化なども考えるようになるでしょう。ともあれ、システム構築の基本は変わりませんので、ここまでの流れを覚えておくと様々に応用が効くはずです。

CloudGarageでサーバセットアップ【その4:アプリケーションサーバとデータベースサーバを連携する】

TECH
中津川 篤司

インスタンスを簡単に立ち上げられるCloudGarageですが、立ち上げただけでは意味がありません。このインスタンスを使って開発を行っていかなければなりません。とは言え、自分の作りたいものはあるのに、セットアップで色々と時間が取られるのは面倒なはずです。 慣れてきたらKUSANAGI/CentOS-7.3-64bitなどのイメージから選択しても良いですが、まずは自分でイチから作業してみると何かトラブルがあってもリカバリーできるようになります。サーバの動きを掴んでおくと、後々役立つことも多いでしょう。 前回はnginxとPHP-FPMをインストールするところまでいきました。今回はより本格的に開発できるようにデータベースサーバを立てて、連携できるようにします。 アプリケーションサーバとデータベースサーバ ごくごく小さなWebアプリケーションの場合、一台のサーバ内にすべての機能を追加します。サーバの役割は様々にありますが、ちょっとしたものであれば「HTTP」「アプリケーション」「データベース」という三層に分かれると思います。さらに大きくなると「キャッシュ」や「API」などの役割も出てくるでしょう。 今回の構成では nginx をHTTPサーバとして、PHP-FPMをアプリケーション、MySQLをデータベースとして構築します。前回、nginxとPHP-FPMを一つのインスタンスにインストールしましたので、「HTTP」「アプリケーション」の役割は一つのインスタンスが担っています。データベースは負荷が高くてボトルネックになりやすいので別なインスタンスとしても分離させます。 データベースインスタンスのセットアップ まずデータベースサーバになるインスタンスを立てます。CloudGarageではあらかじめリソースを確保して利用します。例えばCPUを2コアで購入していれば、「HTTP」と「アプリケーション」サーバを1コア、データベースを1コアと割り当てられます。 今回はデータベースインスタンスをUbuntu 16.04 LTSで立てています。ポートは全開放しています。 セキュリティ上の設定 ライブラリの更新、ユーザの作成、sudo設定はHTTPサーバで行った時と変わりません。ポートは22022でSSHを利用できるだけとして、他はすべて無効としています。 MySQLサーバのセットアップ MySQLのインストール aptを使ってMySQLをインストールします。 sudo apt-get install mysql-server MySQLの設定を変更 デフォルトのポートは 3306 で、ローカルからしか接続を許可しないようになっています。この設定を変更します。ファイルは /etc/mysql/mysql.conf.d/mysqld.cnf になります。変更点は以下の2行です。 [mysqld] port=33060 # 元は3306 # bind-address = 127.0.0.1 # コメントアウトする これでMySQLを再起動します。 service mysql restart データベース接続用ポートを公開する 次にHTTPサーバからデータベースに接続できるようにポートを公開するのですが、単純にufwを使うとインターネット全体に渡って公開されてしまいます。それはセキュリティ上好ましくないので、ローカルネットワークからしか接続できないようにします。 CloudGarageでは自分の契約したインスタンス同士がローカルネットワークで接続されており、 192.168.0.* (*は任意の数字)でアクセスできます。そこで、このアドレス範囲においてデータベースに接続できるようにします。 sudo ufw allow from 192.168.0.1/24 to any port 33060 これで完了です。設定が終わると次のようになっているはずです。 sudo ufw status numbered Status: active To Action From -- ------ ---- [ 1] 22022/tcp ALLOW IN Anywhere [ 3] 33060 ALLOW IN 192.168.0.0/24 データベースのユーザを作成する MySQLをインストールする際に root のパスワードを設定しているはずです。それを使ってMySQLに接続します。ポート番号が変わっているので注意してください。 mysql -uroot -p -P 33060 接続したらデータベースを作成します。今回は mydb として作成します。 CREATE DATABASE mydb DEFAULT CHARACTER SET utf8; そして作成したDBに対して操作権限を持つユーザを作成します。 GRANT ALL PRIVILEGES ON mydb.* TO app@'(HTTPサーバのIPアドレス)' IDENTIFIED BY '(パスワード)'; これでHTTPサーバからアクセスできるユーザが作成できました。 PHPから接続する ではHTTPサーバからPHPで接続してみましょう。まず必要なライブラリをインストールします。 sudo apt-get install php7.0-mysql -y これでMySQLiがインストールされます。最後にPHP-FPMを再起動します。 sudo service php7.0-fpm restart コードを書く 例えば以下のようなコードを書きます( /usr/share/nginx/html/mysql.php などとします)。接続先情報はそれぞれ書き換えてください。 <?php $mysqli = new mysqli('(DBのIPアドレス):(DBのポート番号)', '(ユーザ名)', '(パスワード)', '(データベース名)'); if ($mysqli->connect_error) { echo $mysqli->connect_error; exit(); } else { echo "MySQL接続成功"; $mysqli->set_charset("utf8"); } ?> もしファイルが書き込めない場合には /usr/share/nginx/html/ のアクセス権限を変えてください。 chmod -R 777 /usr/share/nginx/html/ そしてWebブラウザからアクセスします。MySQL接続成功、と出れば接続が無事行われています。 Linux + Apache + PHP + MySQLはLAMP環境と呼ばれて人気の技術スタックでしたが、今はApacheに変わってnginxを使うことが増えています。とは言えPHPとMySQLの組み合わせは今なおWeb開発のデファクトとも言えるくらい有名な組み合わせです。皆さんもぜひPHPとMySQLを組み合わせてWeb開発をはじめてみてください!

CloudGarageでサーバセットアップ【その3:nginxとPHP-FPMを連携させる】

TECH
中津川 篤司

インスタンスを簡単に立ち上げられるCloudGarageですが、立ち上げただけでは意味がありません。このインスタンスを使って開発を行っていかなければなりません。とは言え、自分の作りたいものはあるのに、セットアップで色々と時間が取られるのは面倒なはずです。 慣れてきたらKUSANAGI/CentOS-7.3-64bitなどのイメージから選択しても良いですが、まずは自分でイチから作業してみると何かトラブルがあってもリカバリーできるようになります。サーバの動きを掴んでおくと、後々役立つことも多いでしょう。 前回はHTTPサーバを立ち上げるところまでいきましたので、今回はPHPを使えるようにします。 nginxとPHPの組み合わせについて PHPを手軽に使おうと思うとApache + mod_phpという組み合わせが一番簡単でしょう。しかし最近ではHTTPサーバとしてより高速なnginxとPHP-FPMを組み合わせるケースが増えています。FPMとはFastCGI Process Managerの略です。FastCGIは実行プロセスを常時立ち上げておくことで実行速度を高速化する技術です。PHP-FPMを用いることで、nginx上でも高速なPHP実行環境が手に入ります。 PHP-FPMをインストールする インストールはaptで行えます。 sudo sudo apt-get install -y php php-fpm そして起動します。 sudo service php7.0-fpm start これでPHP側の準備は完了です。設定ファイルである /etc/php/7.0/fpm/pool.d/www.conf を見ると、次のように書かれています。 user = www-data listen = /run/php/php7.0-fpm.sock この二つの情報を覚えておきます。 nginxの設定 nginxの設定ファイルを編集します。ファイルは /etc/nginx/conf.d/default.conf です。 〜.php というアクセスがあると location ~ [^/]\.php(/|$) { 以下の設定が適用されます。ファイル名を取得して $document_root$fastcgi_script_name というPHPファイルを実行します。 $document_root は root で定義されている /usr/share/nginx/html/ です。 server { listen 80; # 省略 # root を移動(全体に関係するので) root /usr/share/nginx/html/; location / { # / へのアクセスを index.php へのアクセスとしたい場合は追加 if (!-e $request_filename) { rewrite ^/(.+)# /index.php?q=$1 last; break; } index index.php index.html index.htm; } # PHP FPMの設定 location ~ [^/]\.php(/|$) { fastcgi_split_path_info ^(.+\.php)(/.+)$; if (!-f $document_root$fastcgi_script_name) { return 404; } fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; } # 省略 } さらにPHPが www-data というユーザで実行されていますので、nginxも合わせておきます。これは /etc/nginx/nginx.conf です。 # 変更前 user nginx; # 変更後 user www-data; /usr/share/nginx/html/ も www-data 向けにします。 sudo chown -R www-data:www-data /usr/share/nginx/html/ 実行してみる では /usr/share/nginx/html/index.php というファイルを作成して、以下の内容を記述します。 <?php phpinfo(); ?> これでサーバにアクセスしてみます。URLは https://ドメイン名/index.php になります。 PHP Infoが表示されればPHPは正しく動作しています。後はWordPressをはじめとして好きなPHPソフトウェアをインストールしたり、Webアプリケーションの開発が行えるでしょう。 PHPはWeb開発で最も人気のあるプログラミング言語でしょう。実際に使っている方も多いはずです。CloudGarageを使って素早くPHP開発環境を整えてみてください! 次回は別インスタンスでデータベースを立ち上げてPHPから接続してみます。

CloudGarageでサーバセットアップ【その2:ドメインの割り当てとSSL/TLS対応】

TECH
中津川 篤司

インスタンスを簡単に立ち上げられるCloudGarageですが、立ち上げただけでは意味がありません。このインスタンスを使って開発を行っていかなければなりません。とは言え、自分の作りたいものはあるのに、セットアップで色々と時間が取られるのは面倒なはずです。 慣れてきたらKUSANAGI/CentOS-7.3-64bitなどのイメージから選択しても良いですが、まずは自分でイチから作業してみると何かトラブルがあってもリカバリーできるようになります。サーバの動きを掴んでおくと、後々役立つことも多いでしょう。 前回のインスタンス設定に続いて、今回はHTTPサーバを立ち上げるところまで進めます。 使うもの 今回利用するソフトウェア、サービスは以下の通りです。 nginx HTTPサーバです Let's Encript 無料のSSL/TLSサービスです nginxの立ち上げ nginxはaptでインストールできます。 sudo apt-get install nginx 恐らくこれで立ち上がっているはずですが、もし立ち上がっていなかったら以下のコマンドを入力します。 sudo service nginx start HTTPサーバが立ち上がっていれば、 http://222.222.222.222 (IPアドレスは自分のものと置き換えてください)でnginxのデフォルトページが表示されるはずです。 ドメインの割り当て ドメイン業者は色々あるのですが、今回は個人的にドメインを持っていたValue Domainのものを使っています。レコードは二つ追加しています。 a @ 222.222.222.222 a * 222.222.222.222 上は http://example.com/ でアクセスできるようにする設定、下は http://www.example.com/ や http://aaa.example.com/ でもアクセスできるようにする設定です(example.comはあなたのドメインに置き換えてください)。 設定が終わってからDNSに反映されるまではしばらくかかります。 http://(ドメイン名) でアクセスできるようなってから次のステップに進んでください。 SSL/TLS証明書の取得 まずLet's Encriptのライブラリをインストールします。 sudo apt-get install letsencrypt 一旦nginxを終了します。 sudo service nginx stop Let's Encryptを実行します。 sudo letsencrypt certonly --standalone -d (あなたのドメイン名) これでメールアドレスを入力したり、規約に同意すると証明書が取得できます。 nginxの設定を変更 nginxの設定ファイルを編集します。 sudo vi /etc/nginx/conf.d/default.conf 追加するのはポート番号とSSL証明書のパスです。(ドメイン名)はあなたのドメイン名と置き換えてください。 listen 80; # 以下を追加(ここから) listen 443 ssl; ssl_certificate /etc/letsencrypt/live/(ドメイン名)/cert.pem; ssl_certificate_key /etc/letsencrypt/live/(ドメイン名)/privkey.pem; # 以下を追加(ここまで) server_name localhost; 確認する ではnginxを起動しましょう。 sudo service nginx start これで http://(ドメイン名) と https://(ドメイン名) でアクセスできれば成功です。 HTTPSはかつては高価で、個人サイトではなかなか持てるものではありませんでした。しかし低価格が進み、さらにLet's Encryptのように無料でSSLが使えるサービスが登場したことによって、誰でも手軽に使えるようになりました。さらに現在ではGoogle Chromeでアクセスした時にHTTPサイトは安全ではないと表示されるなど、SSL/TLS化が当たり前になっています。 ぜひ皆さんのサイトもセキュアにしてください。次回はnginxとPHPを組み合わせたいと思います。

CloudGarageで開催する #ssmjp イベントレポート

イベント・勉強会
バナナ かじる

2018年10月2日、虎ノ門ヒルズ 22Fセミナールームにて 「#ssmjp 2018/10」 が開催されました。 #ssmjpとは 主にインフラ・運用などをメインテーマに開催されている街角勉強会。話したい内容はある程度自由。 https://ssm.pkan.org/ ある程度自由 の方針にブレず、今回も目次に「バスケットボールクラブの話」の文字が煌々と輝いてました。 https://twitter.com/FreeFromTheSoul/status/1047070580749545472 https://twitter.com/Umic_Y_ANG/status/1047086590298742784 https://twitter.com/Waraware_man/status/1047078831520022528 https://twitter.com/Waraware_man/status/1047086564084314112 https://twitter.com/Waraware_man/status/1047093192380710914 https://twitter.com/Waraware_man/status/1047100802085478401 時にゆるく、時に深く、各スピーカーのプロフェッショナルなセッションが繰り広げられ、聞き入ってしまいました。 CloudGarageでは、「Dev Assist Program」として、「エンジニアの好奇心やアイディアをカタチにする」ためのプログラムを展開しています。エンジニアや開発コミュニティ、スタートアップ企業、コワーキングスペースなどを対象に「CloudGarage」を無償提供いたします。また勉強会開催などにおいては、虎ノ門ヒルズ森タワー内の弊社セミナールームを会場として利用することが可能になります。イベントや勉強会(セミナーやもくもく会など)においても「CloudGarage」を無償利用いただけますので、ふるってご応募ください。 Dev Assist Program

CloudGarageでサーバセットアップ【その1:サーバの基本的セットアップ】

TECH
中津川 篤司

インスタントを簡単に立ち上げられるCloudGarageですが、立ち上げただけでは意味がありません。このインスタンスを使って開発を行っていかなければなりません。とは言え、自分の作りたいものはあるのに、セットアップで色々と時間が取られるのは面倒なはずです。 慣れてきたらKUSANAGI/CentOS-7.3-64bitなどのイメージから選択しても良いですが、まずは自分でイチから作業してみると何かトラブルがあってもリカバリーできるようになります。サーバの動きを掴んでおくと、後々役立つことも多いでしょう。 そこで今回から何回かのシリーズに渡ってステップバイステップでサーバのセットアップを行っていきます。まず初回はインスタンスの立ち上げとセキュリティ上の設定です。 インスタンスの立ち上げ CloudGarageにおいてインスタンスの立ち上げはそれほど困らないかと思います。今回はUbuntu 16.04 LTSを選んでいます。また、ポートを全開放としています。 ポート番号は絞り込んだ方が良いですが、執筆時点(2018年09月)において、任意の番号でポート開放ができないので全開放を選択しています。 これでインスタンスを立ち上げます。 サーバにログイン SSHでサーバにログインします。この時点ではIPアドレスで指定します。IPアドレスは自分のインスタンスのものと置き換えてください。 ssh root@222.222.222.222 サーバのIPアドレスはインスタンス一覧で確認できます。 ライブラリのアップデート すでにライブラリにアップデートが出ている可能性がありますので、それを適用します。 apt-get update apt-get upgrade ufwによるポート設定 ufwはファイアウォールソフトウェアで、任意のポートをアクセス可能にしたり、逆に弾くのに使います。サーバの役割によって開放するポートは違いますが、今回はWebサーバとして80と443、そして22022をSSH接続用のポートとして開放します。 まずufwをインストールします。 apt-get install ufw そしてまずすべてのポートを通信不可にします。 ufw default DENY そして必要なポートを順番に開放します。 ufw allow 80/tcp ufw allow 443/tcp ufw allow 22022/tcp この時点ではまだ ufw は有効になっていません。有効にして万が一SSHの接続を切ってしまうとログインできなくなるので注意しましょう。 SSHの接続ポート番号変更 /etc/ssh/sshd_config を修正します。 Port 22022 # 元は22 そして SSHD を再起動します。 service sshd restart ここまで終わったらufwを有効にします。 ufw enable そして、念のため現在のSSHセッションは残したまま、別なウィンドウでSSH接続できるか確認します。 ssh -p 22022 root@222.222.222.222 これで接続できれば ufw が正しく有効になっています。 ユーザの作成 最初はユーザがおらず、rootだけで作業することになりますが、セキュリティ上よくありませんのでユーザを作成します。 adduser goofmint #自分のユーザ名に書き換えてください パスワードは任意で設定してください。 SSHログインの設定 ローカルマシンにある ~/.ssh/id_rsa.pub の内容を先ほど作成したユーザの ~/.ssh/authorized_keys にコピーします。さらにこのファイルは自分だけが読み書きできるようにします。 chmod 600 .ssh/authorized_keys これでパスワードなしでサーバにログインできるか確認してください。 ssh -p 22022 goofmint@222.222.222.222 Sudoの設定 ソフトウェアをインストールしたりする際にはroot権限が必要になりますが、毎回rootになって作業するのは面倒です。そこでsudoを設定します。最初はroot権限で実行します。 admin グループに追加されたユーザはsudoが使えるようになります。 usermod -G admin nakatsugawa これで次回にログインした時から sudo su - と入力して自分のパスワードを入力したらrootになれます。 SSHでrootのログインを禁止する 最後にSSHでrootがログインできないようにします。/etc/ssh/sshd_config を修正します。 # 変更前 PermitRootLogin yes # 変更後 PermitRootLogin no そして SSHD を再起動します。 service sshd restart これで root アカウントでSSHログインできないのを確認してください。 ここまでの手順で最低限、セキュアになったと言えます。次回はHTTPサーバの設定を行います。

ページトップへ