close
プログラミング クラウド Microsoft Azure 情報処理資格 基本情報技術者 IT基礎 応用情報技術者 開発・設計方法 オブジェクト指向 内定者・新人研修 プログラミング基礎 アルゴリズム コンピュータ数学 内定者研修 新人研修 ヒューマンスキル プロジェクトマネジメント プレゼンテーション リーダーシップ 組織マネジメント ネゴシエーション ロジカルシンキング Java UI/UX HTTP JavaScript基礎 情報処理資格 ネットワークスペシャリスト ネットワーク インターネットルーティング応用 IPアドレス データベース応用 SQL応用 パフォーマンスチューニング データベース設計 ER図 概念設計(データベース) 論理設計(データベース) IT資格 Linux基礎 OS・システム基盤 セキュリティ TCP/IP OSI参照モデル データベースセキュリティ ファイアウォール 標的型攻撃 SQLインジェクション ネットワーク基本設計 CCNA Cisco プロジェクトマネジメント資格 情報処理資格プロジェクトマネージャ 情報処理安全確保支援士 人事給与 財務会計 管理会計 簿記 生産管理 在庫管理 ERP バランススコアカード 情報処理資格 ITアーキテクト 情報処理資格 ITストラテジスト 情報処理資格 ITサービスマネジメント 情報処理資格 システム監査 PMBOK® PMP® プロジェクト計画 WBS リスクコントロール ITIL ITサービスマネジメント 要求定義 要件定義 見積手法 ビジネスインダストリ 業種・業界知識 業務知識 提案力 ソフトウェアテスト基礎 情報処理資格 データベーススペシャリスト ハードウェア基礎 外部設計(基本設計) 内部設計(詳細設計) データベース基礎 SQL基礎 RDBMS 物理設計(データベース) C++ Ruby MVC基礎 Webアプリケーション開発 JavaEE Javaプログラミング応用 フレームワーク MVC応用 Spring フレームワーク ソフトウェアテスト応用 テスト手法 JUnit スマートフォンアプリ開発 Androidアプリ開発 C# 基礎 C# 応用 負荷テスト Javaプログラミング基礎 ソフトウェアテスト コーチング メンタリング HTML/CSS サーバー構築 仮想化技術 KVS (NoSQL) アジャイル スクラム ファシリテーション C言語 ITパスポート JSTQB データサイエンス 単体テスト ユニットテスト キャリアアップ インターネットルーティング基礎 パケット解析 LAN構築 データベース データサイエンティスト トレンド 障害対応 インフラ監視 HTTP/2.0 コンピュータサイエンス VPN ネットワーク物理設計 データベース障害 JavaScript モダンJS (Modern JavaScript) 応用 MVS応用 バックアップ/リカバリ 分散処理 Hadoop Hive Python AI 深層学習(DeepLearning) CentOS Linux応用 Zabbix シェルスクリプト Infrastructure as Code Windowsサーバー基礎 内部設計 Docker DevOps Windowsサーバー応用 NginX chef Ainsible ロジカルライティング R テスト自動化 Jenkins Git 継続的インテグレーション (CI) バージョン管理 Vagrant 要求分析 Redmine 継続的インテグレーション(CI) 継続的デリバリー (CD) ヒューマンリソース管理 Web API マイクロサービス コミュニケーション 業務知識/業界知識 マーケティング 語学 AWS 法務 IoT ビジネスマナー OJT 業務効率化 表計算ソフト オフィスソフト コンプライアンス フロントエンド Subversion PHP 関数型プログラミング Laravel モダンJS (Modern JavaScript) 基礎 Android Studio 機械学習 iOSアプリ開発 ぷプログラミング React 次世代高度IT人材 共創 IPA Raspberry Pi Xamarin スクリプト言語 GoF CUI VBA 資格 ビジネス文書 jQuery 研修参加レポート マネジメント OSPF テーブル設計 アンガーマネジメント クリティカル・シンキング PDU 経営改善 Pマーク 問題解決技法 サイバー攻撃 エンジニア 参加してみた エンゲージメントマネジメント 労働関連法 新人育成 ネットワーク構築 情報セキュリティマネジメント デザインパターン リファクタリング マルチスレッドプログラミング ベンダーコントロール Modern JavaScript 冗長化 VLAN インフラエンジニア チームビルディング テストケース リーダブルコード セキュリティ入門 ネットワーク入門 Node.js npm gulp ビルドツール Python入門 冗長化入門 インフラ実機演習 プロジェクト管理 Active Directory ネットワーク管理 コンテナ 正規化理論 Haskell 品質管理 OpenStack シンギュラリティ DBA中級 プロトコル UX 基本設計 FinTech トラブルシューティング 並列処理 見える化 PMO ロジカルコミュニケーション Deep Learning インデックス設計 超上流工程 BGP Excel C-CENT Selenide プライベートクラウド アセンブラ コンピュータ基礎 工数見積 CCENT 法律知識 失敗から学ぶ プロジェクト失敗事例 PDCA プログラミング入門 非エンジニア向け 4Biz DNS セルフマネジメント 片付け術 サーバーダウン サーバー タイムマネジメント GO言語 プロダクトマネジメント プロダクトマネージャ LVS ロードバランサー 負荷分散 仮想通過 犯罪心理学 情報漏えい SEカレッジ導入事例 IT研修制度を聞いてみた CentOS7 開発環境構築 数字力 財務 IT人材 UI Machine Learning Go言語 (golang) データマイニング 統計学 新人教育 やり直し数学 RDB つながる工場 モチベーション WebSocket WebWorker HTML5 CSS3 Bootstrap 微分・積分 システム設計 決断力 LAMP環境 教育研修担当者向け ルーティング Linux入門 図解術 目標設定 試験対策 インタビュー技法 Vue.js ブロックチェーン DHCP 仕掛け学 BSC 財務諸表 自己分析 RIP スタティックルート バッファオーバーフロー DoS攻撃 システム開発 Wireshark パケットキャプチャ 管理職研修 部下育成 文章力 情報システム部門向け プロジェクトリーダー プロジェクトマネージャ 塗り絵 リスク管理 法改定 会社の仕組み Chainer AI人材 会話術 テスト技法 会社規模199名まで 会社規模49名まで 会社規模99名まで アプリ開発 サーバサイドJava 営業知識 Cloud 栄養学 基本コマンド ウォーターフォールモデル ヘルスケア 論理設計 ニューラルネットワーク ハンズオン UML 顧客ヒアリング マウスで学ぶ Apache EC2 Lightsail M5Stack DevSecOps プロジェクト成果 画像認識 チャットポット コマンド レビュー 基本用語 自動構築 LPIC-1 サーバーサイドJavascript キャリア形成 ワークライフバランス インバスケット テック用語 GitHub Windows エディタ 教養 令和時代 RESTful API 物理設計 会社規模300名以上 データモデリング サーバーサイドJava Webサーバー基礎 Webサーバー応用 Watson IBMWatson Learning Topics OS モバイル コンテスト トレーニング手法 アーキテクチャ 人材モデル インフラ CI/CD Infrastructure as a Code チーム開発 制度づくり Special_Intro AI市場分析 研修ロードマップ 仕事術 デジタルトランスフォーメーション 財務分析手法 情報整理 PowerPoint 新しい研修 オンライン研修 見どころ紹介 統計分析 ディープラーニング G検定 情報処理技術者試験 販売管理 C# テスト計画 Linuxサーバー WEBサーバ構築 http/2 Postfix イーサリアム プロジェクト・メンバ 正規化 パケット実験 作業分解 トラブル調査 ネットワーク設計 Windows server 2016 ネットワーク機器 DX 管理職 最新動向 ポストコロナ時代 IoTデバイス マイコンボード センサ サーバー仮想化 仮想ルータ WAN インターネットVPN 若手エンジニア ITプロジェクト 人事面談 DX人材育成 Java基礎 ZAP 脆弱性診断 NWサービス構築 イノベーション・マネジメント ネットワークセキュリティ ストレッチ Google Cloud Platform 不動産業界 テレワーク(WFH) ドリル GCP ( Google Cloud Platform ) システム業界 PMS テレワーク ビッグデータ NoSQL OWASP CentOS8 ネットワーク技術 データ分析 デザインシンキング 保険業界 会議リーダー システムエンジニア 段取り術 プロジェクト原論 文章書き換え術 ノーコード No Code MongoDB Redis Cassandra 運用管理 Windows10 仮想マシン リモートワーク 働き方 生産性 IPSec Office セキュリティマナー ソフトウェア・レビュー ライフハック

GCP ( Google Cloud Platform ) と AWS を比較しながら学ぶクラウドサービス入門 研修コースに参加してみた


2020-12-02 更新

今回参加したコースは GCP と AWS を比較しながら学ぶクラウドサービス入門 です。

年々、クラウドを利用する機会が増えていますね。クラウドといえば AWS が人気ですが、障害や災害対応だけでなく用途別にマルチクラウドで構成する企業もチラホラ見受けられるようになりました。

AWS・オンプレと GCP を VPN で相互接続する際の勘所 – エムスリーテックブログ
AWS と GCP を VPN でつないでみたら、マルチクラウドの夢が広がった話 – Hatena Developer Blog
書き込みがあるワークロードにおける ZOZOTOWN マルチクラウド構想とその検討停止について – Qiita

その一つとして、 Google のクラウドサービス「 Google Cloud Platform ( GCP ) 」も、特にビッグデータや AI などのサービスを中心に、利用が増えています。

このコースでは、 GCP の特徴や出来ることを AWS とマッピング・比較しながら学びました。特に、数が多すぎて把握しきれないサービスをデータベースやストレージなどの区分に分けて、特徴やコストを比較できたので、 GCP と AWS との違いがわかりました。

また、 GCP で実際にプロジェクトやインスタンスを作る演習も行い、 GCP デビューもしました!

 

では、どのようなコースだったのか、レポートします!

コース情報

想定している受講者 Linux, ネットワーク知識があると更に良い
受講目標
  • GCP の基本機能を理解する
  • GCP と AWS の使い分けを理解する
  • GCP の使用するメリットを把握する
  • サーバインスタンス作成、コンパネを理解する

講師紹介

前回の Docker に続き、 一戸 英男 さんが登壇されました。

一戸 英男

「とにかく昔からサーバ構築が大好き」から現場に役立つベストセラーが誕生。研修でも明日から現場で使える技術を教えます

ちなみに一戸さんはネットスケープにも在籍されていたとのこと、あとでご経歴を調べると、 1997 年 ~ 1998 年にいらっしゃったようで、あの OSS の衝撃、ネットスケープ ナビゲーターのソースコード公開時に中の人だったのかも知れません。

ちょっと個人的に OSS に衝撃を受けた人なので、胸熱です。

今日の内容

冒頭にも書いたことですが、今日の内容を紹介いただきました。

AWS とのマッピング・比較を行いますので、受講者に AWS の利用経験を伺うと、 20 名ほどのご参加のうち、 2 名の方が経験ありとチャットでお答えされました。

GCP とは

まずは GCP のサービスの特徴を紹介いただきました。

  • 2008 年からスタート( AWS から 2 年遅い)
    • AWS の方がシェアや大手企業の実績が多い
  • 検索エンジン / Gmail などでの大規模・高負荷での運用実績
    • 世界で検索エンジンのサーバは 290 万台あると言われている
    • 高耐用 / スケーラビリティがある
  • AI / 機械学習サービスは先行・使いやすい・安定
    • GPU ( TPU ) / TensorFlow / BigQuery など
  • Web コンソールなど CLI は GCP の方が圧倒的に使いやすい

スケーラビリティ

  • スケーラビリティそのものは GCP / AWS とあまり変わりない
  • GCP は Live Migration ができる
    • ホストしているサーバを稼働停止なしで移設できる
  • 冗長性 / ロードバランシングでの負荷テストは、ほぼ無しで OK
  • 低コスト/短期の料金プランがある
  • VPC ( Virtural Private Cloud ) なので、社外公開するアプリケーションに使いやすい
    • AWS はプライベート ( Virtual Network ) なので、どちらかというと社内向け

Pros / Coons

  • Pros は先程の通り
  • Cons
    • 以前は東京リージョンのみだったが、大阪リージョンが増えたので遜色ない状態
    • 公式ドキュメントに英語が多い
      • サポートも 9:00 – 19:00 のみ日本語 ( それ以外の時間帯は英語圏に転送されていた )
      • プレミアサポートにすると日本語で 24 時間対応

GCP と AWS のサービスをマッピング・比較

まずは GCP にどんなサービスがあるのか、全部で 170 ~ 180 あるので、分野をある程度絞った上で、さらにそれぞれを一言で紹介いただきました。

  • コンピューティング
    • IaaS: Google Compute Engine
    • PaaS: Google App Engine
      • Heroku のようなもの
    • コンテナエンジン: Google Container Engine
      • Docker を動かすもの
      • Kubernetes ( Google が開発したコンテナ管理 OSS) を使用
  • ストレージ
    • Cloud Storage
      • AWS の S3 のようなもの
    • Cloud SQL
      • MySQL / PostgreSQL に対応
    • Cloud Datastore
      • NoSQL
  • データ解析
    • BigQuery
      • ユーザの行動ログなど大量のデータを高速に取得できる
      • それらを分析すると、新しい発見に繋がる可能性がある -> DX に欠かせない
  • その他
    • Cloud DNS
      • AWS Route53 と同じようなもの
      • DNS レコードでカバーしている範囲が広い
      • ちなみに既存の DNS を変える必要はない

AWS と GCP のサービス紹介と比較

AWS もサービスが 200 以上あるため、コンピューティングとストレージなどの項目でマッピングいただき、一戸さんの目線で比較していただきました。

まずは全般的な印象です。

  • GCP
    • 高負荷に十分耐えうる
    • CLI が使いやすい
    • 開発者向けな雰囲気がある
  • AWS
    • アクセスポイントが多数ある
    • CLI が使いにくい
    • ユーザ向けな雰囲気がある

また今までは AWS が圧倒的に使われていましたが、 2020 年になり、機械学習・AI・BigQuery などの需要から GCP が増加傾向にあるとのことでした。

コンピューティング

  • コンテナで違い
    • AWS は選定も含め、面倒
  • mBaaS (スマートフォン向け。mobile Backend as a Service )
    • Firebase のシェアが高い
    • モバイルアプリに必要なものがすべて揃っている

mBaaS については一戸さんも注目されているとのこと、興味があって調べてみると、 AWS Amplify も Firebase とはまた違った魅力がありました。

具体的には、 AWS Lambda と AWS AppSync ( GraphQL サーバ ) を組み合わせると、リクエスト – レスポンスを AppSync に集約でき、サーバレスらしくリクエストがあったときにだけ起動/課金されるため低コストで運用ができます。

また AppSync から Dynamo や RDS にデータストアもしやすいため、技術的な負債になりにくいようです。ちょっとこの辺は動きが速いので、 SEカレッジでカジュアルに触れると良さそうですが、講師の方もまとめるのが大変ですよね。。

ストレージ

  • Amazon S3 は WebDAV (ファイル共有) に対応
    • Cloud Storage はやりにくい
  • ファイルシステム
    • どちらも NFS ( Unix / Linux のファイルシステム) として使える
    • 注意したいのは AWS のサービスはファイルロックが出来ない
  • 用語解説
    • Nearline : 短期で使うもの (バックアップ)
    • Coldline : 長期で使うもの (二次バックアップ)

DB

  • RDBMS
    • GCP は Oracle に対応していない
      • ここで大手企業を取りこぼしている可能性がありそう
      • Oracle が OSS でないことも影響している
  • NoSQL
    • NoSQL と言っても Key – Value / Graph / Document の 3 種類
    • それぞれ SQL のような統一されたクエリはない(一部 SQL ライクなものはある)
    • 単純な構造のためスケールしやすい。特に Write (書き込み) 処理
    • ただし、 ACID 属性を担保しない
  • NewSQL
    • Cloud Spanner
      • ACID 属性を担保しながら、 Write が速い( !! )
      • RDBMS と NoSQL を組み合わせたようなもの
      • SQL ライクに書ける( !! )

ネットワーク

  • 高トラフィックでなければ load Balancer は特に遜色なし
    • ただし高負荷になると AWS はチューニングが必要
    • GCP は特に設定無しで高負荷対応できる
  • CDN
    • Cloud CDN のほうが使いやすい

コスト

  • GCP はコストシミュレーション が Web 上で出来る
  • Compute Engine でやってみた
    • Instances: サーバ台数 1
    • Operating System / Software: Linux
    • series: CPU e2
    • memory: Standard 16 GB
    • location: DC の場所 東京
  • 結果 $ 79.07 / per 1 month

月額比較

  • 1 ヶ月あたりは小幅な値段幅でも、使用期間と台数が増えるとコストに結構な差が出る
  • こういったこともあって、米国では AWS から一部のサービスを GCP に移行しているケースが出ている (外資にお勤めの一戸さんご友人談)
    • フルリプレイスではなく、 GCP と AWS の良いところを組み合わせる

GCP の使い方

ここからは実際に GCP でインスタンスを構築してみます。

その前に、このコースでは受講者に GCP のアカウントを事前に作成頂き、無料枠の中で演習したのですが、その無料枠について AWS との違いを解説いただきました。

無料枠の違い

  • AWS : サービスによって無料枠が変わる ex. T2 マクロ: メモリ 1 GB / ディスク 8 GB
  • GCP : 年間 $300 (実質 27000 ~ 28000 円分)の無料枠の中でタイプやスペックを自由に選べる

一戸さんもおっしゃっていましたが、 GCP は AWS に比べて、制限がない分、使いやすいですね。

インスタンス 構築手順

  1. Google Cloud Platform にログイン
  2. 新しいプロジェクトを作成
  3. メニューから Compute Engine > VM インスタンス を選択
  4. インスタンスを作成

    1. 名前 を入力(任意)
    2. リージョンを選択
    3. シリーズ デフォルト E2 のままでOK
    4. マシンタイプは今回 e2-small を選択(他にもプランがある)
    5. ブートディスク
      • OS のディストリビューションを選択できる
      • ここでは CentOS 8 を選択
      • ここでは 永続ディスクは 30 GB を選択
    6. ファイアウォールは http / https どちらも選択
    7. 作成ボタン

インスタンスが作成されました!

一戸さんいわく、 GCP は AWS より手順が数ステップ少なくて簡単だそうです。

  • ここで表示される [外部 IP ] は揮発性
    • shutdown / reboot すると、動的に変わる
  • 永続的な IP を設定するには
    • 右の [ more_vert ] メニューから [ネットワークの詳細の表示] を選択
    • ネットワークインターフェイスが表示されるので、メニューから [外部 IP アドレス] を選択
    • 現在の外部 IP アドレスが表示されるので、 [静的アドレスを予約] を選択

      1. 名前 を入力 (任意)
      2. リージョンを日本に変更
      3. 接続先に 先のインスタンス を選択
      4. 予約 を押す

しばらく待つと、外部 IP アドレスが固定されました。

続いて、ファイアウォールの設定です。

  1. デフォルトでもファイアウォールのルールがある
  2. 独自に追加する場合は、 ファイアウォール ルールを作成 を選択

    1. 名前 を入力(任意)
    2. ターゲット を 指定されたサービスアカウント に変更
    3. ソースフィルタ を サービスアカウント
    4. プロトコルとポート のチェックボックスに tcp を選択、ポート番号 8080 を入力
    5. 作成ボタン

ルールが追加されました!

ssh 接続する

では、作ったインスタンスに入ってみましょう。

公開鍵 / 秘密鍵を生成

  1. VM インスタンスの画面から SSH ボタンを押す
  2. ブラウザ上のターミナルが立ち上がる

    • GCP でログインしたユーザ名でログインしている
      $ whoami
      username
  3. ディレクトリを表示すると、すでに .ssh ディレクトリが生成されている
    $ ls -la
    total 12
    drwx------. 3 username username  74 Nov  9 05:30 .
    drwxr-xr-x. 3 root          root           27 Nov  9 05:30 ..
    -rw-r--r--. 1 username username  18 Nov  8  2019 .bash_logout
    -rw-r--r--. 1 username username 141 Nov  8  2019 .bash_profile
    -rw-r--r--. 1 username username 312 Nov  8  2019 .bashrc
    drwx------. 2 username username   6 Nov  9 05:34 .ssh
  4. .ssh ディレクトリに移動 cd .ssh
    • default でも key が用意されている
    • しかし、 SHA-1 の RSA 鍵 ( 1024 bit ) なので、あまりオススメしない
  5. ECDSA で鍵生成する ssh-keygen -t ecdsa
    • パスフレーズはなし
    • そもそも鍵がしっかり生成されていれば必要ない
    $ ssh-keygen -t ecdsa
    Generating public/private ecdsa key pair.
    Enter file in which to save the key (/home/username/.ssh/id_ecdsa): 
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /home/username/.ssh/id_ecdsa.
    Your public key has been saved in /home/username/.ssh/id_ecdsa.pub.
    The key fingerprint is:
    SHA256:hogehogehohoeo129012901920910 username@my-first-gcp
    The key's randomart image is:
    +---[ECDSA 256]---+
    | o.. E           |
    # 中略
    |o. B.X o         |
    |.oo.B+*          |
    +----[SHA256]-----+
  6. 一旦確認
    $ ll
    total 8
    -rw-------. 1 username username 525 Nov  9 05:46 id_ecdsa
    -rw-r--r--. 1 username username 188 Nov  9 05:46 id_ecdsa.pub
  7. 生成された公開鍵を別ファイル authorized_keys (指定)に出力
    $ cat id_ecdsa.pub > authorized_keys
    $ ll
    total 12
    -rw-rw-r--. 1 username username 188 Nov  9 05:50 authorized_keys
    -rw-------. 1 username username 525 Nov  9 05:46 id_ecdsa
    -rw-r--r--. 1 username username 188 Nov  9 05:46 id_ecdsa.pub
  8. chmod でアクセス権を変更
    $ chmod 600 authorized_keys
  9. id_ecdsa を別ファイル (.pem ファイル) にコピペし、 .ssh 配下の id_ecdsa* を削除

ssh してコマンド操作

次に、これも予めインストールしてあった Rlogin を使って、作ったインスタンスで作業してみます。

Rlogin

  1. Rlogin から ssh ログイン

    • エントリー名を入力 (任意)
    • ホスト名 に先程の 外部IP を入力
    • SSH 認証鍵 を 先程作成した .pem ファイルを指定
    • OK ボタンを押す -> ターミナルが開いた!
  2. top コマンドを試してみる
    top - 07:21:14 up  4:02,  1 user,  load average: 0.00, 0.00, 0.00
    Tasks:  94 total,   1 running,  93 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  0.0 us,  0.2 sy,  0.0 ni, 99.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    MiB Mem :   1824.4 total,   1084.8 free,    245.8 used,    493.9 buff/cache
    MiB Swap:      0.0 total,      0.0 free,      0.0 used.   1428.6 avail Mem 
        PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
       1050 root      20   0  119220  20404   9736 S   0.3   1.1   0:06.72 google_osconfig
       1393 root      20   0   87552   9836   7596 S   0.3   0.5   0:00.45 systemd-logind
          1 root      20   0  179276  13620   9140 S   0.0   0.7   0:02.65 systemd
  3. df コマンドも試してみる
    $ df
    Filesystem     1K-blocks    Used Available Use% Mounted on
    devtmpfs          917452       0    917452   0% /dev
    tmpfs             934104       0    934104   0% /dev/shm
    tmpfs             934104    8568    925536   1% /run
    tmpfs             934104       0    934104   0% /sys/fs/cgroup
    /dev/sda2       31240240 2623944  28616296   9% /
    /dev/sda1         204580    7020    197560   4% /boot/efi
    tmpfs             186820       0    186820   0% /run/user/1000

ここまで操作したところで、最後にチャットで質疑応答を行い、このコースは修了しました。

まとめ

このコースでは、 GCP について AWS との違いを中心にサービスの概要を知り、実際にインスタンスを作ってみました。

現在では、 GCP / AWS などを組み合わせたマルチクラウド構成がチラホラ出てきていますので、 AWS だけでなく GCP についても強みや必要に応じて使いわけられるようになってくるでしょう。

そういった際に、 GCP / AWS ともに物凄い数のサービスが提供されているので、今回のコースのようにマッピングと特徴を把握しておくだけでも、関連ニュースを見たときの調べ方も変わり、何が強みなのか読み解きやすくなるので、とても自分の知識を整理しやすくなります。

エンタープライズ領域ではクラウド移行はまだまだ続いていますので、これからクラウドに携わる方や、ちょっと変化が激しすぎて様子見してらっしゃるかたなどには、とてもオススメです!


SEカレッジについて

午前免除 FAQ

タグ一覧