Skip to content

Posts

リポジトリを作って初期化する

チュートリアルで雰囲気をつかんだので、実際に使うリポジトリを作って、必要なパッケージなどセットアップする。

GitHub Codespacesでやっていく。

基本的には、デフォルトの選択肢で次々進めてOK。

npm install -g @aws-amplify/cli
amplify configure
npm install -g @vue/cli
vue create .
> vue3 を選択
npm install
npm run serve --open

ここまででvueの動作確認ができる。

amplify init
npm install aws-amplify @aws-amplify/ui-components

ここまででAmplifyが使用可能になった。

Read more

Amplify Tutorialやってみた

Getting started - Vue - AWS Amplify Docsをやってみた。

GitHubにリポジトリ作って、Codespaceで開いて。

小一時間で認証付きのToDoアプリができた。

意外と待ち時間が長かったのは、最初だけなのかCodespaceの力不足なのか。 たぶんCloudFormationの実行待ち時間な気がするから、最初だけだと思っておく。

アーキテクチャはこれで全部賄える気がしてきたので、Amplifyで行けるとこまでやってみようと思う。 Firebaseなら無料なところが、AWSのお試し期間過ぎてるから課金されそうなのが気になるけど、、

Read more

Amplify使ってみる

昨日は使うツールなどを考えた。

AWSのAmplifyを使う予定でいたら、なんかすごいのが発表されてた。 [速報]AWS、ローコードでWebのフロントエンドを開発できる「AWS Amplify Studio」発表。バックエンド管理機能も統合。AWS re:Invent 2021 - Publickey

生成されるコードはReactらしい。今回はVue.jsを触ってみる目的もあるので、Amplify Studioはまた今度。

AWS Amplify(アプリケーションの構築とデプロイ)| AWS これ見ると、必要そうな機能は用意されてる気がする。

Read more

サービス開発日記

昨日は、作るものとその機能をざっくり決めた。

2日目の今日は、アーキテクチャなど考えたい。

WEBアプリなので、フロントエンドとバックエンドAPIとデータベースかな。

フロントはNext.jsとかNuxtとかその辺だろうか。 Next.jsは前に触ったことあるので、今回はNuxtにしてみようかな。

バックエンドAPIは最近追えていないDenoでどうだろう。 作り方によってはAPI層不要になるかも?

Read more

Advent Calendarやってみる

期間内にアプリを作ってみたい。 その経過を毎日記事にしたらいい感じになるのではないだろうか。

1日目は、どんなものを作るか考えた。

イベント管理サイトを作ってみようと思う。

主催者用と参加者用。 イベントページを介してコミュニケーションをとる。

機能は、

  • イベントページの作成と編集
  • イベントの検索
  • 参加エントリー、キャンセル
  • コメント投稿

とりあえずこんな感じで。

Read more

クラウドサービス比較

AWSで構築しているシステムをAzureと並行稼働させることはできるのか?GCPは?という疑問を解消するために調べてみる。

サービス比較

まずはAWS, Azure, GCPのサービス比較。

サービス名先頭の AWS, Amazon, Azure, Cloud(GCP) は省略。

サーバーレスコンピューティング

AWSAzureGCP
LambdaFunctionsFunctions
Java, Go, PowerShell, Node.js, C#, Python, RubyC#, JavaScript(Node.js), F#, Java, PowerShell, Python, TypeScriptNode.js, Python, Go, Java, .NET Core(C#, F#), Ruby, PHP
Lambda@Edge
Node.js, Python
CloudFront Functions
JavaScript

CDN

AWSAzureGCP
CloudFrontContent Delivery NetworkCDN

コードリポジトリ

AWSAzureGCP
CodeCommitReposSource Repositories

CI/CD

AWSAzureGCP
CodePipelinePipelinesBuild

IaC

AWSAzureGCP
CloudFormationResource ManagerDeployment Manager
  • Azure Resource Managerを簡易操作するためのツール、Azure Building Blocksというものもある。

検討

  • FaaSの対応言語が異なっている。共通で使えるのはJava、Node.js、C#、Python。
    • Lambda@Edgeも使っているなら、Node.jsかPythonしかない。
  • CloudFormation の資産を Azure や GCP に移行できるのか
  • Terraformという選択肢もあり
  • サーバーレス中心ならserverless frameworkを検討してもよいかも

参考

WindowsのminikubeでMySQLを動かす

MacでやったらMySQLの起動時にエラーで落ちてしまったので、Windowsでどうなるか試す。

基本的には公式のドキュメントを参照。 https://kubernetes.io/ja/docs/tasks/run-application/run-single-instance-stateful-application/

munikubeインストール

winget install minikube

minikube起動

minikube start
$ kubectl get nodes
NAME       STATUS   ROLES                  AGE   VERSION
minikube   Ready    control-plane,master   73s   v1.20.2

マニフェストファイル作成

mysql.yaml

デプロイ

$ kubectl apply -f mysql.yaml 
service/mysql created
deployment.apps/mysql created
persistentvolumeclaim/mysql-pv-claim created
persistentvolume/mysql-pv-volume created
$ kubectl get pods -l app=mysql
NAME                     READY   STATUS    RESTARTS   AGE
mysql-68579b78bb-qcqww   1/1     Running   0          5m33s

動いてるねぇ。。

後片付け

$ kubectl.exe delete -f mysql.yaml
service "mysql" deleted
deployment.apps "mysql" deleted
persistentvolumeclaim "mysql-pv-claim" deleted
persistentvolume "mysql-pv-volume" deleted
$ minikube stop

Macのほう、MySQLのコマンドライン色々指定したのがまずかったのかなぁ。

Read more

GitHub Actions の MySQL で lower_case_table_names を変更する

以前書いた、GitHub Actionsでインストール済みMySQLを使う方法で起動したMySQLは、lower_case_table_names0になっている(Linuxではこれがデフォルト)。

lower_case_table_names1に変更したければ、/etc/mysql/mysql.conf.d/mysqld.cnflower_case_table_names = 1を追記して起動すれば良いだろうと気軽に考えてやってみたところ、MySQLが起動せず。

Read more

コマンドラインの設定優先度について調べた

コマンドラインアプリ起動時の設定をするときに、コマンドライン引数、環境変数、設定ファイルどれを優先するのが一般的なのか気になったのでググった結果のメモ。

https://ayasuda.github.io/pages/note_configuration_order_at_command_line.html

まず設定ファイルを読み、環境変数が設定されていれば上書き、コマンドラインで指定されていればさらに上書き。ということでコマンドライン引数が最優先ということが分かった。

Read more