CyberChaos(さいばかおす)

プログラミング言語、トランスパイラ、RPA、ChatGPT、データマイニング、リバースエンジニアリングのための忘備録

PDFコンバーターアプリをPythonで作ってみた

2023-05-07 10:37:08 | python
PDF Converter App

任意のファイルを読み込んでPDF化して保存するアプリをTKinterライブラリーを用いたPythonコードで書いて

以下は、Tkinterライブラリを使用して、ユーザーが選択したファイルを読み込み、PDF形式で保存するPythonアプリケーションの例です。

python
Copy code
import tkinter as tk
from tkinter import filedialog
import os
from fpdf import FPDF


class PDFConverter:
def __init__(self, master):
self.master = master
master.title("PDF Converter")

# ラベル
self.label = tk.Label(master, text="PDFに変換するファイルを選択してください。")
self.label.pack()

# ファイル選択ボタン
self.select_button = tk.Button(master, text="ファイルを選択", command=self.select_file)
self.select_button.pack()

# 変換ボタン
self.convert_button = tk.Button(master, text="変換", state=tk.DISABLED, command=self.convert_file)
self.convert_button.pack()

# メッセージラベル
self.message = tk.Label(master, text="")
self.message.pack()

def select_file(self):
# ファイル選択ダイアログを表示
file_path = filedialog.askopenfilename()

if file_path:
# 選択されたファイルがPDFでなければ変換ボタンを有効化
if os.path.splitext(file_path)[1] != ".pdf":
self.convert_button.config(state=tk.NORMAL)
else:
self.message.config(text="選択されたファイルは既にPDF形式です。")
else:
self.message.config(text="ファイルが選択されていません。")

# 選択されたファイルのパスを保存
self.file_path = file_path

def convert_file(self):
# PDFファイルの作成
pdf = FPDF()
pdf.add_page()
pdf.set_font("Arial", size=12)
with open(self.file_path, "rb") as f:
text = f.read()
pdf.cell(200, 10, txt=text.decode("utf-8"), ln=1)
pdf_path = os.path.splitext(self.file_path)[0] + ".pdf"
pdf.output(pdf_path)

self.message.config(text=f"変換が完了しました。PDFファイルを{pdf_path}に保存しました。")


root = tk.Tk()
app = PDFConverter(root)
root.mainloop()
このアプリは、ユーザーがファイルを選択した後、ファイルがPDF形式でない場合は変換ボタンを有効化します。変換ボタンをクリックすると、選択されたファイルがPDFに変換され、元のファイルと同じ場所に保存されます。






…失敗したようだ。
Pydroidでやるとダメなのかどうかは知らんが。
ファイルを選択して読み込ませるところで何にも起きなくなり、Openボタンを押しても変換ボタンを押しても反応しなかった。

PCで実行しても同じ結果となった。
ちなみにPythonのIDLEではFPDFライブラリーのインストールに失敗したので、Anacondaのプロンプトでpip install --upgrade FPDFとコマンドを入力してようやくインストールできた。スパイダーで実行しても動かなかった。

BingAlではちょっと違うソースコードを提示されたが、やはり動かなかった。


JAVAファイルをJARファイルに変換するアプリをPythonで作ってみた。

2023-05-06 20:28:32 | python
”新しい Bing へようこそ
AI を利用した Web向け copilot”
今回は↑BingAIを使ってみた。ChatGPTで失敗したのでやり直し。
「JAVAファイルをJARファイルに変換するPythonコードをTKinterのファイル読み込みウィジェットを使って書いてください」

JAVAファイルをJARファイルに変換するPythonコードをTKinterのファイル読み込みウィジェットを使って書くとしたら、以下のようになるかもしれません。コードはPythonで書いています。

# tkinterライブラリーをインポート
import tkinter as tk
from tkinter import filedialog

# subprocessライブラリーをインポート
import subprocess

# ファイル選択関数
def select_file():
    # ファイルダイアログを開く
    file_path = filedialog.askopenfilename(filetypes=[("JAVAファイル", "*.java")])
    # 選択したファイルのパスを表示
    label.config(text=file_path)
    # ファイルの拡張子をチェック
    if file_path.endswith(".java"):
        # JARファイルに変換する関数を呼び出す
        convert_to_jar(file_path)
    else:
        # エラーメッセージを表示
        label.config(text="JAVAファイルを選択してください")

# JARファイルに変換する関数
def convert_to_jar(file_path):
    # ファイル名と拡張子を分離
    file_name, file_ext = file_path.split(".")
    # コマンドラインでjavacコマンドを実行してクラスファイルにコンパイル
    subprocess.run(["javac", file_path])
    # コマンドラインでjarコマンドを実行してJARファイルにパッケージング
    subprocess.run(["jar", "cf", file_name + ".jar", file_name + ".class"])
    # 完了メッセージを表示
    label.config(text="JARファイルに変換しました")

# ウィンドウを作成
window = tk.Tk()
window.title("JAVAファイルからJARファイルへ")

# ラベルを作成
label = tk.Label(window, text="JAVAファイルを選択してください")
label.pack()

# ボタンを作成
button = tk.Button(window, text="ファイル選択", command=select_file)
button.pack()

# ウィンドウを表示
window.mainloop()

一応ウィジェット表示されて動いたが、本当にJARファイルに変換されたか確認できなかった。

ソースコードを暗号化するPythonプログラム

2023-05-06 18:36:49 | python

ソースコードを暗号化するPythonプログラムを書いてください。

ただし、TKinterを用いてファイルを指定して読み込むウィジェットを表示できるようにして。

import tkinter as tk
from tkinter import filedialog
import base64

def select_file():
file_path = filedialog.askopenfilename()
if file_path:
with open(file_path, "rb") as file:
script = file.read()
encrypted = base64.b64encode(script)

output_file_path = filedialog.asksaveasfilename(defaultextension=".pye")
if output_file_path:
with open(output_file_path, "wb") as output_file:
output_file.write(b"import base64 ")
output_file.write(b"exec(base64.b64decode(")
output_file.write(repr(encrypted).encode("utf-8"))
output_file.write(b"))")

root = tk.Tk()

# ファイル選択ボタンを作成
button = tk.Button(root, text="ファイルを選択", command=select_file)
button.pack(pady=10)

root.mainloop()

のコードは、ファイル選択ダイアログを表示し、選択されたファイルを暗号化して新しいファイルとして保存します。暗号化には、前の例と同様にbase64モジュールを使用します。

filedialog.asksaveasfilename()メソッドを使用して、暗号化されたファイルを保存する場所と名前を指定するダイアログを表示します。defaultextension引数を使用して、デフォルトで保存されるファイル拡張子を指定します。

このコードでは、暗号化されたコードを直接実行するために、exec()関数を使用しています。ただし、安全性のために、暗号化されたコードが実行される前に、必要なチェックと検証を行うことが重要です。

ChatGPT Very Good Job!!!

h = float(input("身長は?")) / 100.0
w = float(input("体重は?"))
bmi = w / (h * h)
if bmi >= 25.0:
print("お前はデブだ!")
else:
print("お前はデブじゃなくて良かったな!")

が元のソースコード。

ばっちりウィジェットが表示され、

暗号化したいソースコードファイルを選択するとリネームするよう要求され、

別のファイル名を付けると以下の通り、見事に暗号化されていた。

import base64
exec(base64.b64decode(b'aCA9IGZsb2F0KGlucHV0KCLouqvplbfjga/vvJ8iKSkgLyAxMDAuMA0KdyA9IGZsb2F0KGlucHV0KCLkvZPph43jga/vvJ8iKSkNCmJtaSA9IHcgLyAoaCAqIGgpDQppZiBibWkgPj0gMjUuMDoNCiAgICBwcmludCgi44GK5YmN44Gv44OH44OW44Gg77yBIikNCmVsc2U6DQogICAgcHJpbnQoIuOBiuWJjeOBr+ODh+ODluOBmOOCg+OBquOBj+OBpuiJr+OBi+OBo+OBn+OBqu+8gSIpDQoNCg=='))

これはさすがに読めないだろう。

しかし、暗号化する前の元のファイルと同じようにしっかり動作した。

今度は逆に暗号化されたソースコードを復号化するプログラムを書いてもらったが、

復号化されたソースコードは以下の通り文字化けしていて失敗した。

Šjh®ÖÚ±î¸{œm«ë†úáל¡×›h = float(input("身長は?")) / 100.0
w = float(input("体重は?"))
bmi = w / (h * h)
if bmi >= 25.0:
print("お前はデブだ!")
else:
print("お前はデブじゃなくて良かったな!")

参考までに復号プログラムを書いておく。

import tkinter as tk
from tkinter import filedialog
import base64

def select_file():
file_path = filedialog.askopenfilename()
if file_path:
with open(file_path, "rb") as file:
encrypted_script = file.read()
decoded_script = base64.b64decode(encrypted_script)

output_file_path = filedialog.asksaveasfilename(defaultextension=".py")
if output_file_path:
with open(output_file_path, "wb") as output_file:
output_file.write(decoded_script)

root = tk.Tk()

# ファイル選択ボタンを作成
button = tk.Button(root, text="ファイルを選択", command=select_file)
button.pack(pady=10)

root.mainloop()


ランサムウェアに感染したファイルを検疫するには?

2023-05-06 14:24:57 | python
ランサムウェアに感染したファイルからパスワード入力を求めるプログラムを削除するpythonアプリのソースコードを書いてください
 
ランサムウェアに感染したファイルからパスワード入力を求めるプログラムを削除するには、感染したファイルを特定し、そのファイル内からパスワード入力を求めるプログラムを検索して削除する必要があります。
 
以下は、Pythonを使用してランサムウェアに感染したファイルからパスワード入力を求めるプログラムを削除するスクリプトの例です。
 
import os
import re
 
# 感染したファイルのパス
infected_file = "C:/path/to/infected_file"
 
# ファイルを読み込む
with open(infected_file, "rb") as f:
file_data = f.read()
 
# パスワード入力を求めるプログラムを検索
match = re.search(b"Please enter your password:", file_data)
 
# プログラムを削除
if match:
password_program = match.group(0)
file_data = file_data.replace(password_program, b"")
with open(infected_file, "wb") as f:
f.write(file_data)
 
print("Password program removed successfully.")
else:
print("Password program not found.")
上記の例では、感染したファイルのパスを指定します。open()メソッドを使用して、ファイルをバイナリモードで読み込みます。その後、re.search()メソッドを使用して、ファイル内のパスワード入力を求めるプログラムを検索します。もしプログラムが見つかった場合、replace()メソッドを使用してプログラムを削除し、open()メソッドを使用してファイルに書き込みます。ファイルの書き込みが完了したら、プログラムが削除されたことを示すメッセージを表示します。
 
上記の例は、単純な文字列検索を使用してパスワード入力を求めるプログラムを検索していますが、ランサムウェアによっては、より複雑な方法でパスワード入力を求めるプログラムを実装している場合もあります。その場合は、より高度な解析技術を使用する必要があります。また、ファイルを直接編集することは、ファイルが破損する可能性があるため、慎重に行う必要があります。
 
Java password removal.の記事
https://blog.goo.ne.jp/nichikon2/e/b7ac8454a60aacb1669f3a253c239f5e
をちょっとリライトしてみた。
 
後で
で作ったパスワード入力フォームで実験してみたい。
 
P.S.
パスワード入力を求めるソースコードは見つかりませんでした。
と出て全く機能していないことが判明。
PDFファイルにパスロックをかけて試してみたが、これもダメだった。
 
 
 

AutoCADプラグイン・アドイン開発

2023-05-06 12:51:41 | Autocad

AutoCADのAddinをC#で書いてみるー③ | AMDlab Tech Blog

AutoCADのAddinをC#で書いてみるー③ | AMDlab Tech Blog

こんにちは、AMDlabの森山です。前回まででAutoCADの基本的なアドインの作り方は説明し終えています。BricsCADやIJCADなど2DCADはほとんど同じ考え方な気がします。

AMDlab Tech Blog | 建築を中心として、3Dモデリング、IoT、デジタルファブリケーション、Webなどの様々なテクノロジーに関する記事を提供しています。

やっと求めている情報にたどり着いた!

Autocadのアドイン・プラグインの開発はどうすればよいのか、書籍は無いのか、いろいろ試行錯誤してきた。

このサイトはC#でアドイン・プラグイン開発をやっているとのこと。

ゲームエンジンのUnityもC#だ。



チャットボットもC#で作ればAutocadのプラグインとして使えるようになると思われる。



AIチャットボットの開発方法とおすすめツール15選

2023-05-06 09:23:23 | ChatGPT

AIチャットボットの開発方法とおすすめツール15選 | KUZENブログ

AIチャットボットの開発方法とおすすめツール15選 | KUZENブログ

「AIチャットボットを自社で開発・運用し、コストカットしたい」という方に向け、AIチャットボットの開発方法とおすすめのツールについて解説します。最後まで読めば簡単で...

KUZENブログ | DX・マーケティングを推進する厳選ノウハウを公開



ChatGPTとAI_Programmerのプログラミング対決

2023-05-06 08:32:20 | ChatGPT
お題は、
「パスワード入力を求めるウィジェットのソースコードをTKinterライブラリーを用いて書いてください。passwordは1234で、合っていたら「ログイン成功」、間違っていたら「パスワードが違います」と表示するプログラムを書いてください。」

まずChatGPTから
import tkinter as tk

def check_password():
# パスワードが正しい場合
if password_entry.get() == "1234":
result_label.config(text="ログイン成功")
# パスワードが正しくない場合
else:
result_label.config(text="パスワードが違います")

# TKinterウィンドウを作成
root = tk.Tk()
root.title("パスワード入力")

# ラベルを作成
password_label = tk.Label(root, text="パスワードを入力してください")
password_label.pack()

# パスワード入力ボックスを作成
password_entry = tk.Entry(root, show="*")
password_entry.pack()

# ログインボタンを作成
login_button = tk.Button(root, text="ログイン", command=check_password)
login_button.pack()

# ログイン結果を表示するラベルを作成
result_label = tk.Label(root, text="")
result_label.pack()

# ウィンドウを表示
root.mainloop()


ChatGPT good job!100点満点!

AI_Programmerの番。

password = input("Enter password: ")
if password == "1234":
print("Login successful")
else:
print("Incorrect password")

一応動いたが、TKinterライブラリーを使ってウィジェットを生成し、GUIで動くものを求めているので半分の50点。

今回はChatGPTに軍配が上がった。
AI_Programmer頑張れ!
有限会社ASReal頑張れ!
大和魂を見せろ!
鬼畜米英に負けるな!


AI_Programmerその2

2023-05-06 07:11:32 | 日記
任意の三点を通る平面を描くソースコード

(defun draw-plane (p1 p2 p3)
(let ((v1 (make-vector 3))
(v2 (make-vector 3)))
(dotimes (i 3)
(aset v1 i (- (aref p2 i) (aref p1 i)))
(aset v2 i (- (aref p3 i) (aref p1 i))))
(let ((normal (make-vector 3)))
(dotimes (i 3)
(aset normal i
(+ (* (aref v1 (+ (% i 3) 1)) (aref v2 (+ (% i 3) 2)))
(* (aref v1 (+ (% i 3) 2)) (aref v2 (+ (% i 3) 1))))))
(let ((d (dot-product p1 normal)))
(glBegin GL_LINES)
(dotimes (i (- (length *plane-grid*) 2))
(let ((t1 (* i (/ 1.0 (- (length *plane-grid*) 2))))
(t2 (* (+ i 1) (/ 1.0 (- (length *plane-grid*) 2)))))
(let ((p1 (make-vector 3))
(p2 (make-vector 3)))
(dotimes (j 3)
(aset p1 j (+ (* t1 (aref normal j)) d))
(aset p2 j (+ (* t2 (aref normal j)) d)))
(glVertex3fv p1)
(glVertex3fv p2))))
(glEnd)))
(glBegin GL_POINTS)
(glVertex3fv p1)
(glVertex3fv p2)
(glVertex3fv p3)
(glEnd)))

任意の八点を通る六面体を描くソースコードを書いてください

(defun draw-hexagon (points)
(draw-polygon points 6))


ソースコード生成AI「AI Programmer」

2023-05-06 06:57:50 | 日記

日本語で指示を出すだけでコードを
自動で生成してくれます。


だとよ。
ではお手並み拝見といこうか。

試しにLispで「任意の三点を通る円弧を描くソースコード」と入力したら・・・

任意の三点を通る円弧を描くソースコード

(defun draw-arc (p1 p2 p3)
(let ((r (distance p1 p2)))
(draw-circle p1 r)))



やるじゃん。
ChatGPTとプログラミング対決させてみたいものだ。

コイツをAutocadのアドオン・プラグインとして作って組み込んだら売れるだろうな。

iOSエンジニアのスクール

2023-05-06 06:27:01 | 転職

様々なスクールがあるが、中でもiOSアカデミアは異色でニッチな存在だ。

「成長市場かつ売り手市場で、高収入や独立も目指せることで人気なiOSエンジニア。」

の謳い文句が妙に気になった。

巷に溢れかえっているスクールは、どれも似たりよったりで、何が売りなのか全くわからない。

何かに特化したニッチなスクールでないと少子高齢化が加速化する時勢では生き残れない。

例えば、アプリ課金システム開発やアドオン・プラグイン開発エンジニア、AutoLisp、Dynamo、Pyrevit、Pycatiaなどのカテゴリはブルーオーシャンな市場だと思われる。

フルスタックとは?

2023-05-06 04:50:35 | 転職
しょーこーしょーこーしょこしょこしょーこー、しーこーしーこーしこしこしーこー
フルスタックエンジニアとは?仕事内容・必要スキルについて解説

フルスタックエンジニアとは?仕事内容・必要スキルについて解説

この記事では、フルスタックエンジニアの概要や、具体的な仕事内容、求められるスキルについて解説します。フルスタックエンジニアに興味のある方、ITエンジニアとしてマル...

株式会社パソナ

フルスタック(full-stack)とは、複数の技術分野において、知識・スキルに深い理解があることを意味しています。つまり、複数のIT分野に精通しており、複数の開発工程を一人で担当できるマルチなエンジニアのことを、一般に「フルスタックエンジニア」と呼んでいるのです。

…だとよ。

極悪ピンハネバカチョン人擬売国奴糞犯罪会社の分際で何を高望みしてるのかね?www

もうバカかアホかと。www

バカなの死ぬの?かと。www

まあ少なくとも正社員雇用でないと話にならんわなwww

若くて即戦力となるオールマイティエンジニアを安く雇いたいと?www

しかも転職回数が少ないやつを?

最低年収600万、月給40万くらい出さないと無理だわなwww

フルスタックとかフルスタックエンジニアとか最近よく目にするが。そういう文言が含まれた求人もよく目にするが。

少子高齢化が急加速しているというのに、人材育成すらせずにそんな奴来るわけねーだろーが!

アホなブラックは人材を奪いあって潰し合いでもしてろやバーカ!www

SIerとは

2023-05-06 04:30:18 | 転職

システムインテグレーター(SIer)とは?仕事内容やSEとの違いまでわかりやすく解説

システムインテグレーター(SIer)とは?仕事内容やSEとの違いまでわかりやすく解説

IT業界に就職や転職を考えている方で、システムインテグレーター(SIer)について気になっている方は多いのではないでしょうか。 ここではシステムインテグレーター(SIer)...

転職サイト比較Plus

読み方は「エスアイアー」。
システムインテグレーターの略。

システムインテグレーターの業務は、クライアントの業務を把握し課題を分析。

そしてどのようなシステムを導入することで課題を解決できるかのコンサルティングから、設計、開発、運用に至るまでをトータルサポートすることです。

ただ、依頼された仕事をシステムインテグレーターが1社で対応するわけではありません。

ソフト開発企業や通信会社、ハード製品ベンダー等と協力してシステムを開発するにあたり、そのプロジェクト全体の指揮をとって統括するのが、システムインテグレーターなのです。


だとよ。



Microsoft OfficeをAmazon EC2上で実行するには?

2023-05-06 03:19:39 | AWS

Microsoft Office on Amazon EC2 | ナレッジ/事例 TISプラットフォームサービス | 特集・レポート | ITソリューションのTIS株式会社

Microsoft Office on Amazon EC2 | ナレッジ/事例 TISプラットフォームサービス | 特集・レポート | ITソリューションのTIS株式会社

本記事では、Microsoft OfficeをAmazon EC2上で実行するのに現在どのような方法があるか、またOfficeインストール済みWindows Server AMIを使用する際の条件や費用を整理し...

2022年11月28日にアマゾン ウェブ サービス(AWS)上でMicrosoft Officeのライセンスを購入できるようになりました。また、Officeインストール済みWindows Server AMIの提供も開始されました。

そこで本記事では、Microsoft OfficeをAmazon EC2上で実行するのに現在どのような方法があるか、またOfficeインストール済みWindows Server AMIを使用する際の条件や費用を整理しましたので、ご紹介していきます。

だとよ。


Amazon AppStream 2.0 とは何ぞや?

2023-05-06 03:10:30 | AWS

Amazon AppStream 2.0 は、デスクトップアプリケーションに即座にアクセスできるようにする、完全マネージド型のアプリケーションストリーミングサービスです。AppStream 2.0 は、アプリケーションをホストして実行するために必要な AWS リソースを管理し、自動的にスケーリングを行うとともに、ユーザーにオンデマンドでアクセスを提供します。AppStream 2.0 を使用すると、ユーザーは選択したデバイスで必要なアプリケーションにアクセスできます。これは、ネイティブにインストールされたアプリケーションと区別がつかず、素早く反応するユーザーエクスペリエンスを提供します。

AppStream 2.0 では、既存のデスクトップアプリケーションを AWS に簡単に追加して、ユーザーがそれらを即座にストリーミングできるようにすることが可能です。Windows ユーザーは AppStream 2.0 クライアントまたは HTML5 対応ウェブブラウザをアプリケーションのストリーミングに使用できます。アプリケーションごとに 1 つのバージョンを維持すればよいため、簡単にアプリケーションを管理できます。ユーザーはいつでも最新バージョンのアプリケーションにアクセスできます。アプリケーションは AWS のコンピューティングリソースで実行され、データがユーザーのデバイスに保存されることはないので、ユーザーは常に高性能でセキュアなエクスペリエンスを得ることができます。

デスクトップアプリケーションストリーミングの従来のオンプレミスソリューションとは違い、AppStream 2.0 は従量課金制です。そのため、先行投資やインフラストラクチャの維持が不要です。すぐに、グローバルにスケーリングできるため、いつでも最高の体験をユーザーに提供できます。

詳細については、AppStream 2.0<awsui-icon class="awsdocs-link-icon" name="external" style="padding: 0px 0px 0px 1.5px;"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" focusable="false" aria-hidden="true"><path class="stroke-linecap-square" d="M10 2h4v4"></path><path d="m6 10 8-8"></path><path class="stroke-linejoin-round" d="M14 9.048V14H2V2h5"></path></svg></awsui-icon> をご覧ください。

機能

Amazon AppStream 2.0 を使用すると、次の利点があります。

サポートされているデバイスからデスクトップアプリケーションに安全にアクセス

デスクトップアプリケーションには、Windows および Linux PC、Mac、Chromebook、iPad、Android タブレットから HTML5 対応のウェブブラウザを介して安全にアクセスできます。または、サポートされているバージョンの Windows では、AppStream 2.0 クライアントをアプリケーションのストリーミングに使用できます。

アプリケーションとデータの保護

アプリケーションとデータは AWS 上に保持され、ユーザーには暗号化されたピクセルのみがストリーミングされます。アプリケーションは、各ユーザー専用の AppStream 2.0 インスタンスで実行されるため、コンピューティングリソースは共有されません。アプリケーションは、お客様独自の Virtual Private Cloud (VPC) 内で動作し、Amazon VPC のセキュリティ機能を使用してアクセスを制御できます。これによって、アプリケーションを分離し、安全に実行できます。

一貫したスケーラブルなパフォーマンス

AppStream 2.0 は AWS で実行され、ローカルデバイスでは利用できないコンピューティング機能にアクセスできるので、アプリケーションは常に高パフォーマンスで実行されます。ローカルおよびグローバルに即座にスケールでき、ユーザーのために常に低レイテンシーのエクスペリエンスを確保できます。オンプレミスソリューションとは異なり、徐々に増加する設備投資を必要とすることなく、ユーザーに最も近い AWS リージョンにアプリケーションをすばやくデプロイして、ストリーミングを開始することができます。

IT 環境との統合

既存の AWS のサービスおよびオンプレミス環境と統合します。VPC 内でアプリケーションを実行することで、ユーザーが AWS で保持しているデータや他のリソースにアクセスできるようになります。これにより、AWS とお使いの環境間におけるデータの移動が少なくなり、より高速なユーザーエクスペリエンスが実現されます。

既存の Microsoft Active Directory 環境との統合。 これにより、ストリーミングアプリケーションで既存の Active Directory ガバナンス、ユーザーエクスペリエンス、およびセキュリティポリシーを使用できるようになります。

ID フェデレーションを構成します。これにより、ユーザーは社内認証情報を使用してアプリケーションにアクセスできます。または、AppStream 2.0 で実行しているアプリケーションから IT リソースへの認証済みのアクセスを許可することもできます。

お客様のニーズに合うフリートの種類を選択してください。

フリートには 3 つのタイプがあります。

  • 常時オン – ストリーミングインスタンスは、アプリケーションとデスクトップをストリーミングしているユーザーがいなくても、常に実行されます。ストリーミングインスタンスは、ユーザーがストリーミングする前にプロビジョニングされる必要があります。プロビジョニングされるストリーミングインスタンスの数は、オートスケーリングルールを使用して管理されます。詳細については、「Amazon AppStream 2.0 向け Fleet Auto Scaling」を参照してください。

    ユーザーがアプリケーションまたはデスクトップを選択すると、それらのストリーミングが直ちに開始されます。ストリーミングしているユーザーがいない場合でも、すべてのストリーミングインスタンスに対して実行中のインスタンス料金が請求されます。

  • オンデマンド – ストリーミングインスタンスは、ユーザーがアプリケーションとデスクトップをストリーミングしている場合にのみ実行されます。まだユーザーに割り当てられていないストリーミングインスタンスは、停止状態になります。ストリーミングインスタンスは、ユーザーがストリーミングする前にプロビジョニングされる必要があります。プロビジョニングされるストリーミングインスタンスの数は、オートスケーリングルールを使用して管理されます。詳細については、「Amazon AppStream 2.0 向け Fleet Auto Scaling」を参照してください。

    ユーザーがアプリケーションまたはデスクトップを選択すると、1~2 分の待機時間後にそれらのストリーミングが開始されます。まだユーザーに割り当てられていないストリーミングインスタンスにはコストが低い停止中のインスタンス料金が請求され、ユーザーに割り当てられているストリーミングインスタンスには実行中のインスタンス料金が請求されます。

  • Elastic – このストリーミングインスタンスのプールは、AppStream 2.0 によって管理されます。ユーザーが起動するアプリケーションまたはデスクトップを選択すると、App Block がダウンロードされ、ストリーミングインスタンスにマウントされた後で、これらのストリーミングが開始されます。

    Elastic フリートストリーミングインスタンスに対する実行中のインスタンス料金は、ストリーミングセッションの持続時間分のみが秒単位で請求されます。

詳細については、Amazon AppStream 2.0 の料金<awsui-icon class="awsdocs-link-icon" name="external" style="padding: 0px 0px 0px 1.5px;"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" focusable="false" aria-hidden="true"><path class="stroke-linecap-square" d="M10 2h4v4"></path><path d="m6 10 8-8"></path><path class="stroke-linejoin-round" d="M14 9.048V14H2V2h5"></path></svg></awsui-icon>を参照してください。

主なコンセプト

AppStream 2.0 を最大限に活用するには、以下のコンセプトを理解しておく必要があります。

アプリケーション

アプリケーションには、ユーザーにストリーミングするアプリケーションを起動するために必要な情報が含まれています。アプリケーションは、App Block やイメージなど、アプリケーションを起動するために必要なファイルが含まれるリソースに関連付けられています。

App Block

App Block には、ユーザーにストリーミングするアプリケーションファイルと、アプリケーションを設定するために必要な詳細が含まれています。

Image Builder

Image Builder は、イメージの作成に使用する仮想マシンです。Image Builder を起動して接続するには、AppStream 2.0 コンソールを使用します。Image Builder に接続すると、アプリケーションをインストール、追加、テストできます。さらに Image Builder を使用してイメージを作成できます。自己所有のプライベートイメージを使用して新しい Image Builder を起動できます。

イメージ

イメージには、ユーザーにストリーミングできるアプリケーションと、ユーザーがアプリケーションの使用をすばやく開始できるようにするためのデフォルトのシステム設定とアプリケーション設定が含まれています。AWS は、Image Builder を作成するために使用できるベースイメージを提供しています。その後、その Image Builder で独自のアプリケーションが含まれるイメージを作成します。イメージの作成後にイメージを変更することはできません。他のアプリケーションの追加、既存のアプリケーションの更新、またはイメージ設定の変更を行うには、新しいイメージを作成する必要があります。イメージは、他の AWS リージョンにコピーする、または同じリージョン内の他の AWS アカウント、ユーザー、およびユーザーがそのアプリケーションの使用をすばやく開始できるようにするためのデフォルトのシステム設定やアプリケーション設定と共有することが可能です。

フリート

フリートは、ユーザー指定のアプリケーションとデスクトップが実行されるフリートインスタンス (ストリーミングインスタンスとも呼ばれます) で構成されています。1 人のユーザーに 1 つのインスタンスが必要です。

スタック

スタックは、関連付けられたフリート、ユーザーアクセスポリシー、ストレージ設定で構成されます。ユーザーに対してストリーミングアプリケーションを開始するためにスタックを設定します。

ストリーミングインスタンス

ストリーミングインスタンス (フリートインスタンスとも呼ばれる) は、アプリケーションストリーミングにユーザー 1 人あたりが使用できる EC2 インスタンスです。ユーザーのセッションが完了すると、インスタンスは EC2 によって終了します。

ユーザープール

ユーザープールを使用して、ユーザーと割り当てられたスタックを管理します。

オートスケーリングルール

オートスケーリングルールは、スケージュールベースおよび使用量ベースのポリシーで、常時オンまたはオンデマンドフリートに適用して、ユーザーがストリーミングに利用できるストリーミングインスタンスの数を自動的に管理することができます。

開始方法

AppStream 2.0 を初めて使用する場合には、Try it Now (今すぐ試す) 機能を使用するか、Amazon AppStream 2.0 の使用を開始する: サンプルアプリケーションを使用してセットアップする チュートリアルに従って使用できます (両方とも AppStream 2.0 コンソールで使用できます)。

初めてサービスを使用するときは、AppStream 2.0 が、ユーザーに代わって AppStream 2.0 リソースを作成して管理する AWS Identity and Access Management (IAM)<awsui-icon class="awsdocs-link-icon" name="external" style="padding: 0px 0px 0px 1.5px;"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" focusable="false" aria-hidden="true"><path class="stroke-linecap-square" d="M10 2h4v4"></path><path d="m6 10 8-8"></path><path class="stroke-linejoin-round" d="M14 9.048V14H2V2h5"></path></svg></awsui-icon> ロールを作成します。

「今すぐ試す」機能を使用するには
  1. AppStream 2.0 コンソール (https://console.aws.amazon.com/appstream2<awsui-icon class="awsdocs-link-icon" name="external" style="padding: 0px 0px 0px 1.5px;"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" focusable="false" aria-hidden="true"><path class="stroke-linecap-square" d="M10 2h4v4"></path><path d="m6 10 8-8"></path><path class="stroke-linejoin-round" d="M14 9.048V14H2V2h5"></path></svg></awsui-icon>) を開きます。

  2. [今すぐ試す] を選択します。

  3. AWS アカウントの認証情報を使用してサインインします (要求された場合)。

  4. 諸条件を読み、[Agree and Continue] を選択します。

  5. 表示されるアプリケーションのリストから、試したいアプリケーションを 1 つ選択します。