SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ComponentZine(ActiveReports)(AD)

帳票アプリを主要クラウド上にデプロイして公開しよう──ActiveReports for .NETの活用例

帳票開発コンポーネント「ActiveReports for .NET」の活用術 第2回

  • このエントリーをはてなブックマークに追加

 基幹業務のデジタル化推進のために、国の行政機関や地方自治体が共通して利用できることを目指したIT基盤がガバメントクラウドです。本連載では、グレープシティの帳票開発コンポーネントであるActiveReports for .NETで業務対象帳票の表示や入力を行うアプリケーションを開発し、Amazon Web Services、Google Cloud、Microsoft Azureの3つの選定クラウドベンダーでIaaS環境を構築してアプリケーションを公開する事例を紹介します。

  • このエントリーをはてなブックマークに追加

必要な環境

 本記事のサンプルコードは、以下の環境で動作を確認しています。

  • Windows 11 Pro(22H2)
  • ActiveReports for .NET 16.0J(16.2.0)
  • .NET SDK(6.0.413)
  • Node.js(18.17.1)
  • Visual Studio 2022(17.6.5)
  • Windows Subsystem for Linux 2(Ubuntu 22.04.2)

対象読者

  • Webページに帳票出力機能を実装したい方
  • バックエンド開発が得意な方
  • クラウドサービスで帳票アプリケーションを公開したい方

Amazon EC2環境での公開

 まずは、Amazon Elastic Compute Cloud(Amazon EC2)環境に帳票アプリをデプロイし、公開する手順を紹介します。

公開環境を構築する

 Amazon EC2の利用に先立ち、AWSアカウントが必要です。未作成の方は「AWS クラウド無料利用枠」から作成しておいてください。Amazon EC2には、利用開始後1年間の無料利用枠があります。1カ月あたり750時間までは、特定の条件を満たした仮想マシンが無料で利用できます。AWSアカウントを取得したら、「Amazon EC2(安全でスケーラブルなクラウド上の仮想サーバー)」の[コンソールにサインイン]からコンソールにアクセスします。コンソールの「最近使ったサービス」に「EC2」が表示されていれば選択し、そうでなければ「すべてのサービス」から「EC2」を選択します。

 「EC2ダッシュボード」の画面になるので(図1)、ここで[インスタンスを起動]をクリックして、「インスタンスを起動」画面でインスタンスを作成します。インスタンスとは、AWSにおける仮想サーバのことをいいます。

図1:EC2ダッシュボード
図1:EC2ダッシュボード

 「名前とタグ」の[名前]にインスタンスを名前を入力します。ここでは、「ActiveReports App Server」としました。「アプリケーションおよび OS イメージ (Amazon マシンイメージ)」では「クイックスタート」から「Amazon Linux」が選択されている状態で「Amazonマシンイメージ(AMI)」をプルダウンし、「Amazon Linux 2 with .NET 6, PowerShell, Mono, and MATE Desktop Environment」を選択します。これは、.NETなどがプレインストールされたAmazon Linuxで、あとから.NET 6をインストールする手間を省くことができます(図2)。

図2:インスタンスを起動(名前やOSイメージ)
図2:インスタンスを起動(名前やOSイメージ)

 「インスタンスタイプ」は既定の「t2.micro」のままで構いません。「キーペア(ログイン)」で、インスタンスへの接続に必要なキーペアをここで作成しておきます。作成済みであれば、それを選択しても構いません。[新しいキーペアの作成]をクリックすると[キーペアを作成]ウインドウがポップアップするので、「キーペア名」に任意の名前を(ここでは「MyKeyPair」としました)入力し、他の項目は既定値のままで[キーペアを作成]をクリックしてください(図3)。

図3:インスタンスを起動(キーペアの作成)
図3:インスタンスを起動(キーペアの作成)

 「ネットワーク設定」では、[からのRDPトラフィックを許可]のチェックを外し、「インターネットからのHTTPSトラフィックを許可」と「インターネットからのHTTPトラフィックを許可」にチェックを入れておきます。[からのSSHトラフィックを許可する]にはチェックを入れたままで、右のプルダウンで「自分のIP」を選択しておくと、SSH接続が安全になります(図4)。

図4:インスタンスを起動(ネットワーク)
図4:インスタンスを起動(ネットワーク)

 「概要」の内容を確認して[インスタンスを起動]をクリックします。「インスタンス作成中」の表示の後、「インスタンスの起動を正常に開始しました (i-0c2f8…)」などと緑色の背景で表示されれば、インスタンスの作成と起動は成功です(図5)。

図5:インスタンス起動成功
図5:インスタンス起動成功

 キーペアは、作成と同時にファイルとしてダウンロードされています。この拡張子が.pemであるファイル(今回はMyKeyPair.pem)はSSHなどの接続で必要になります。

インスタンスへ接続してデプロイする

 続いて、インスタンスに接続して帳票アプリをデプロイしましょう。図5の中央にある[インスタンスに接続]をクリックします。「インスタンスに接続」画面が開くので、[SSHクライアント]タブをクリックして切り替えます。SSHクライアントからの接続手順が記載されているので、Windowsの「ターミナル」を開いて記載のコマンドを入力し、SSH接続を開始します(以降の例はホスト名中のIPアドレスはaaa-bbb-ccc-dddなどとしているので、各自のものを適宜指定してください)。

 このとき先ほど保存されたキーペアのファイルの場所を適切に指定してください。「Are you sure you want to continue connecting」には「yes」と答えます。プロンプト($)が表示されれば接続成功です。

> ssh -l ec2-user -i "MyKeyPair.pem" root@ec2-aaa-bbb-ccc-ddd.ap-northeast-1.compute.amazonaws.com

 帳票アプリをデプロイします。デプロイは、ターミナルに新しいタブを開いて、以下のscpコマンドで行います。キーペアファイルの場所、公開フォルダの場所、ホスト名は各自のものを指定してください。

> scp -r -i "MyKeyPair.pem" C:\Users\nao\source\nepos\JSViewerSample\JSViewerSample\bin\Release\net6.0\publish\* ec2-user@ec2-aaa-bbb-ccc-ddd.ap-northeast-1.compute.amazonaws.com:/home/ec2-user/app

 フォントをインストールします。パッケージで提供されるのはIPAフォントのみでIPAexフォントは提供されないため、フォントファイルをシステムに直接配置します。第1回の記事でダウンロードしたIPAexフォントのアーカイブファイルIPAexfont00401.zipを、scpコマンドでインスタンスに転送します。

> scp -i "MyKeyPair.pem" IPAexfont00401.zip ec2-user@ec2-aaa-bbb-ccc-ddd.ap-northeast-1.compute.amazonaws.com:/home/ec2-user

 SSH接続上で、以下のようにファイルを解凍、フォント共有ディレクトリにコピーして、キャッシュを更新します。

$ unzip IPAexfont00401.zip
$ sudo cp -r IPAexfont00401 /usr/share/fonts/
$ fc-cache -fv

動作確認する

 帳票アプリを起動して、動作を確認しましょう。SSH接続したターミナルで、以下のコマンドを実行します。sudoコマンドを使っているのは、特権ポート(80)でアプリを公開するためです。また、公開するURLをASPNETCORE_URLS環境変数で指定しています。

$ sudo ASPNETCORE_URLS=http://*:80 dotnet JSViewerSample.dll

 Webブラウザから、URL「http://ec2-aaa-bbb-ccc-ddd.ap-northeast-1.compute.amazonaws.com:80」にアクセスします。ホスト名は、SSH接続と同様に各自のものを指定してください。図6のようにブラウザに帳票が表示されれば成功です。PDFへの書き出しも試してみてください。

図6:Amazon EC2で帳票アプリを実行
図6:Amazon EC2で帳票アプリを実行

次のページ
Google Compute Engine環境での公開

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
ComponentZine(ActiveReports)連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 山内 直(WINGSプロジェクト ヤマウチ ナオ)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook <個人紹介> WINGSプロジェクト所属のテクニカルライター。出版社を経てフリーランスとして独立。ライター、エディター、デベロッパー、講師業に従事。屋号は「たまデジ。」。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

提供:グレープシティ株式会社

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/18445 2023/10/20 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング