- 1. AWS Amplifyを使ってNext.jsをデプロイする(Basic認証、Monorepoもあり)
- 2. AWSからGoogleへのドメイン移管
- 3. 【初心者向け】【AWS SAA合格へ向けて】AWSにおけるネットワークの概要について
- 4. 2022年にpythonとAWS Lambdaで作ったもの
- 5. SAMで環境別にデプロイ
- 6. API Gateway経由でLambdaを呼び出す
- 7. AppFlow を使って、Google Analytics 4 から S3 にデータを連携してみた
- 8. (LIFF/React/AWS/IoT)LINEアカウントと自社サービスID/IoTデバイスを連携させる方法
- 9. AWS Control Tower Guide (ハンズオン) をやってみて気が付いたことを整理してみた
- 10. TerraformでAWS環境をデプロイする前に下準備しておくべきこと(tfstate.tf / providor.tf / output.tf / ディレクトリ構造)
- 11. AWS CLIもしくはTerraformでSSM用のインスタンスプロファイルを作成する
- 12. 初心者がAWS CLF(クラウドプラクティショナー)に5日間の勉強で、余裕のあるスコアをとって合格した勉強法まとめ
- 13. AWS EC2にReactデプロイ環境を作成
- 14. 技術Memo 2023/01/01
- 15. Terraformを使用してECS環境構築し、Laravelサイトを立ち上げてみた。
- 16. Systems ManagerによるEC2インスタンス操作ログの取得方法
- 17. Aurora Global Database のハンズオン (Amazon Aurora Labs) を触ってみた
- 18. 【初心者】Amazon SageMaker Latent Dirichlet Allocation (LDA) アルゴリズムを試してみた
- 19. AWS Config Ruleの新たな評価モード「Proactive」モードを検証してみた
- 20. Lambdaローカル開発環境構築手順
AWS Amplifyを使ってNext.jsをデプロイする(Basic認証、Monorepoもあり)
## AWS Amplifyとは
手軽にWeb,モバイルアプリケーションをデプロイすることができるAWSサービスの一つです。
Amplifyを活用することでインフラ周りはすべてAWSにおまかせして開発者はフロントエンドの開発に集中することができるため高速で開発→リリースすることができます。
またCI/CD環境の導入も自動的に導入でき、GitHubと連携すれば指定のブランチにプッシュされると自動でデプロイすることができます。https://docs.aws.amazon.com/amplify/index.html
## 事前準備
今回はGitHubのリモートリポジトリからアプリをデプロイしていきたいので、事前にリモートリポジトリを作成して、アプリのコードを先程作成したリモートリポジトリへ上げておきましょう。## デプロイ編
### Amplifyのマネジメントコンソールにアクセスする
AWSマネジメントコンソールから「Amplify」を検索してコンソールにアクセスします。
まだ一度もアプリケーションを作成していなければ画像のような画面となっていますので
「Get starte
AWSからGoogleへのドメイン移管
保有しているドメインがAWSにあるのですが、Googleに移管しようと思い、Google で申し込んだところ、認証コードを教えろ、と言われました。
AWS の R53 に行って、「登録済みドメイン」をクリックすると、以下のように出てきます。
ここの、「認証コード」の「コードの取得」をクリックしてその値をコピーして、Google の画面で入力すると、Google 側で処理(AWSに連絡して移管するぞー、と号令をかけるようです)が始まります。どうやら、10日程度はかかるようです。![dns_change.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/470368/29290c42-5be2-3c76-2fcd-3775fea5f6f8.png)
上記は、AWS の R53 の画面となりますが、Google Domains の方では、以下のようになっています。
![dns_change_google.png](https://qiita-image-store.s3.ap-northeast-1.a
【初心者向け】【AWS SAA合格へ向けて】AWSにおけるネットワークの概要について
## 概要
AWS SSA合格へ向けてAWSについて1から勉強した際に学んだことを定期的にアウトプットしたいと思います
今回は
– Region(リージョン)
– VPC(バーチャルプライベートクラウド)
– AZ(アベイラビリティゾーン)
– パブリックサブネットとプライベートサブネット
– IGW(インターネットゲートウェイ)
– ルートテーブル
– NACL(ネットワークアクセスコントロールリスト)とSG(セキュリティグループ)の違い
– 踏み台サーバとNATゲートウェイについて説明したいと思います
図に表すと以下のようになります
![network.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/625980/84aa5369-af6c-6588-f89b-507bb1b81e1d.png)## Region
AWSのサービスを提供している地域のことで日本では
– 東京リージョン(ap-northeast-1)
– 大阪リージョン(ap-northeast-3)の2種類
2022年にpythonとAWS Lambdaで作ったもの
# 1. まえがき
去年作ったプログラムのまとめ記事となります。# 2. 競馬関係のTwitter BOT
2022年の初めに、[「AWSではじめるインフラ構築入門」](https://amzn.asia/d/9bYYI0P)の本を購入し、アプリを作成
自分でも作成して見ようと、興味がある競馬関連のTwitterのBOTを4つ作成・1号機(今日のハクサン地方競馬出走情報Bot)
#園田競馬 9R ハクサンチェイス
— 今日のハクサン地方競馬出走情報Bot (@hakusan_keiba) December 30, 2022
・2号機(明日のメイショウ冠名馬中央競馬出走情報と今日の競走結果情報BOT)
今日のメイショウ冠馬中央競馬結果
中山05R メイショウゴルシ 10着(6番人気)
阪神09R メイショウフンケイ 6着(1番人気)
阪神09R メイショウカイト 7着(12番人気)
阪神09R メイショウミツヤス 11着(9番人気)
阪神12R メイショウツツジ 7着(15番人気)— 明日のメイショウ冠名馬中央競馬出走情報と今日の競走結果情報BOT (@MeishoBot) December 28, 2022
– 3号機(マカオ競馬の日本人騎手レース結果Bot)
https://twitter.com/macau_keiba/status/16094690722778972
SAMで環境別にデプロイ
## やりたいこと
samで構築されるリソースを各環境(dev/prod)ごとに分けたい。## 環境別に分ける方法
– samconfig.tomlを環境別に分けて記述する。
– template.yamlにパラメータとして環境情報を渡して、環境別に各リソース名を切り替える## 構築するリソース
– S3
– Lambda
– DynamoDB## template.yaml
Parametersで外部から環境情報を渡せるようにし、各リソース名を環境ごとに切り替える。
※関連個所のみ記載
“`
Parameters:
Env:
Type: String
AllowedValues:
– dev
– prodResources:
CreateThumbnailBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: !Sub create-thumbnail-test-${Env}
CreateThumbnailFunction:
T
API Gateway経由でLambdaを呼び出す
## 概要
API Gatewayを自身で構築したことがなかったので、簡単なものを構築してみた。
/test(GET)でLambdaを呼び出せるようにする。## 手順
1. Lambda関数を作成
2. API GatewayでREST APIを作成
3. APIをデプロイする
4. APIにアクセス## Lambda関数を作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/255243/22611345-9295-9f9e-80ec-393dec386d6b.png)
コードは初期のまま
“`
export const handler = async(event) => {
// TODO implement
const response = {
statusCode: 200,
body: JSON.stringify(‘Hello from Lambda!’),
};
return response;
};
AppFlow を使って、Google Analytics 4 から S3 にデータを連携してみた
# はじめに
Amazon AppFlow では、2022 の re:Invent で [22 個の新しいコネクタ](https://aws.amazon.com/jp/blogs/aws/announcing-additional-data-connectors-for-amazon-appflow/)が発表されました。この新しい 22 個のコネクタの中には、Google Analytics 4 も含まれています。Google Analytics 4 に蓄積されているデータを、データ分析に活かしていきたいと思われている方もいるのではないでしょか。
Amazon AppFlow を使って Google Analytics 4 のデータを、Amazon S3 といった他のデータストアに連携することが出来ます。今回は、Google Analytics 4 のデータを、Amazon S3 に定期的に csv で出力する方法を紹介します。
# Google Cloud : API の有効化
Google Analytics 4 からデータを取得する API の有効化がまずは必要です
(LIFF/React/AWS/IoT)LINEアカウントと自社サービスID/IoTデバイスを連携させる方法
# はじめに
IoTデバイスなどの自社サービス・IDとLINEアカウントを紐づけることで、通知やメッセージ送信など様々なことが可能になります。実装方法は公式リファレンスに記載されています。しかし、全て0から実装するとなると大変です。フロント・バックエンドが絡み合い、さらにはログイン画面も作らねばならず大掛かりな作業となります。ポイントを絞って実装内容を紹介致します。# 事前準備
LIFFやLINEミニアプリなどの説明は割愛致します。
あらかじめ登録が必要なものです。## LINE Developersの準備
下記2点を先にLINE Developersで登録しておきましょう。
この時点ではLIFFのエンドポイントはなくても大丈夫です。* LINE ログイン
* Messaging API
* LIFFアプリの環境構築https://developers.line.biz/ja/
#### LIFFアプリの環境構築
今回はReactで実装してます。下記コマンドを実装することでLIFFアプリを構築することができます。
“`
$ npx @line/create-li
AWS Control Tower Guide (ハンズオン) をやってみて気が付いたことを整理してみた
# はじめに
複数の AWS アカウントを管理するための Control Tower 機能があります。管理する AWS アカウントに対して予防的ガードレールを適用してガバナンスを利かせたり、子 AWS アカウントを生成する機能を使って、本番環境に影響を及ぼさない形で検証をすすめるなど、メリットがあります。
Control Tower の細かい部分や、運用が楽になる方法がよくわかってなかったこともあり、AWS が公式で出している英語のハンズオンをやってみました。
https://catalog.us-east-1.prod.workshops.aws/workshops/122b644d-03d6-4e2f-80dc-854c4a0f5bca/en-USこの記事では、上記ハンズオンを実施してみて、個人的に知らなったポイントを整理します。細かい Control Tower の操作手順などは、上記の URL を参考にしてみてください。
ハンズオンの章ごとに整理をしていきます。
# Landing Zone Set Up
https://catalog.us-east-1.p
TerraformでAWS環境をデプロイする前に下準備しておくべきこと(tfstate.tf / providor.tf / output.tf / ディレクトリ構造)
前回の記事で「[TerraformでAWSリソースをデプロイしてみる](https://qiita.com/hiyanger/items/ca337f70ad4801072850)」を書きましたが、内容としては単にデプロイを目指すところまでの内容でした。なのでこの記事ではもう一歩踏み込んだ、Terraform環境を構築したところから、実際にコードを書き始める前に準備すべき(知っておくべき)ことを書いていきます:fire:
## tfstateファイルの配置場所
Terraformではデプロイ時にこの**tfstateファイル**にデプロイの情報を記録しています。なので、複数人でデプロイする場合に個別で(ローカル)このファイルをもってしまうと、デプロイに不整合が起こります。そのため、複数人でデプロイをする場合は必ずこのtfstateファイルを**S3**に配置しましょう。#### 配置方法
①S3にバケットをバージョニングありで作成します。
②tfstate.tfを作成し、以下を記述します。“`
terraform {
backend “s3” {
bucket
AWS CLIもしくはTerraformでSSM用のインスタンスプロファイルを作成する
# Instance Profile with AWS CLI
## Preperation
“`bash
aws configure list
“`Name Value Type Location
—- —– —- ——–
profileNone None
access_key ****************GWVK shared-credentials-file
secret_key ****************vWHJ shared-credentials-file
region us-east-1 config-file ~/.aws/config“`
初心者がAWS CLF(クラウドプラクティショナー)に5日間の勉強で、余裕のあるスコアをとって合格した勉強法まとめ
# はじめに
はじめまして、そしてあけましておめでとうございます:shinto_shrine:
2022年12月10日(土)にAWS Certified Cloud Practitioner(CLF-C01) を受験し、
以下のスコアで無事合格することができました:blush:![AWS_CLF_スコア_編集済 中.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/708271/f866584f-aa1c-cb49-b5af-ffb5403c7da0.jpeg)
クラウドについてはド素人だったのですが、比較的短めの勉強期間で余裕のあるスコアを取得することができたため、
勉強方法などを共有してみようと思いこの記事を執筆してみました。:::note warn
`ネタバレ`:**よく寝る**、**問題をたくさん解く**、**解説をしっかり読む**
:::この記事に辿り着いた方はAWS Certified Cloud Practitioner(クラウドプラクティショナー)を受験しようと考えてい
AWS EC2にReactデプロイ環境を作成
## 背景
仕事でAWS EC2に環境作成する機会があったので作業の流れと参考にした記事のまとめ
プロキシ設定以外は通常のLinuxサーバーに構築するのと一緒## 前提
+ Reactプロジェクトは作成済み
+ EC2インスタンスに接続する認証設定は省略
※PEMでSSL認証をしていたが手順をメモっていなかった・・・
+ ReactはEC2インスタンスにDockerをインストールしてDocker上で動かす。
+ とりあえず動かしたい人向け。### ローカル:EC2インスタンスにSSH接続
作業はEC2インスタンスで行うのでローカル環境からSSH接続
“`powershell
$ ssh -i {pemがあればファイルパスを指定} {ユーザ名}@{IPアドレス}
#例
$ ssh -i C:\corp\hoge.pem ec2-hoge@10.219.1.1
“`後々サーバー上のファイル操作もするので、VSCodeの拡張機能「Remote SSH」で接続するのが楽
https://qiita.com/nlog2n2/items/1d1358f6913249f3e186
技術Memo 2023/01/01
あけましておめでとうございます。
早くも3日坊主になりそうな気配がありますが、今年からは気になった情報について毎週Memoを残していこうと思っています。# Cloud
## AWS
##### 2022/12/01* **[【開催報告】AWS Autotech Forum 2022](https://aws.amazon.com/jp/blogs/news/aws-autotech-forum-2022/)**
AWSの公式Youtubeにはリストされていない動画があります。##### 2022/11/30
* [Announcing Amazon DocumentDB Elastic Clusters](https://aws.amazon.com/jp/blogs/aws/announcing-amazon-documentdb-elastic-clusters/)
また新たな名前の付け方が登場しました。他のサービスだとServerlessという名前が付きそうですが、何かが異なるのでしょうね。MongoDBを使用したことが一度もないのですが、このあたりの技術習
Terraformを使用してECS環境構築し、Laravelサイトを立ち上げてみた。
# はじめに
[naritomo](https://twitter.com/naritomo08)と申します。
最近Terraformによるコードでのインフラ作成にハマっていて、
色んなところで使用されているGitHubActionsによるCI/CDにも気になっていたため、
とりあえず一通りの構築ができるTerraform/Laravelソースを公開してみました。いろいろアドバイスいただけると嬉しいです。
## 立ち上げ概要
以下のことを実施しています。
* TerraformによるECSインフラ環境構築
* Laravelサイトのローカル環境構築/ブランチ更新によるGitHubActionを使用したECS環境への自動デプロイ実施
必要なソースは以下にまとめてあります。
https://github.com/naritomo08/laravel-fargate-infra-public
https://github.com/naritomo08/laravel-fargate-app-public
## 動作確認済みのOS
* Windows11(wsl2上
Systems ManagerによるEC2インスタンス操作ログの取得方法
# 目的
AWSを利用したシステムの運用時にSystems Managerを利用してEC2インスタンスを操作することもあるかと思います。
その際にEC2インスタンスの操作ログを取得したい場合もあるかと思いますので、操作ログ取得手順をまとめたいと思います。
手順としては、以下となります。
1. 操作ログ格納用のS3バケット作成
1. EC2インスタンスのIAMロールにS3バケットへのアクセス権限の付与
1. Systems Managerのログ出力設定## 1. 操作ログ格納用のS3バケット作成
本手順では、「prjtest-dev-log-ssm-20230101」という名称でS3バケットを用意します。## 2. EC2インスタンスのIAMロールにS3バケットへのアクセス権限の付与
EC2インスタンスのIAMロールには、以下のIAMポリシーが必要となります。
– AmazonSSMManagedInstanceCore
– AmazonS3FullAccess *1*1 「AmazonS3FullAccess」ポリシーが必要と記載しましたが、以下の権限を備えたIAMポリシー
Aurora Global Database のハンズオン (Amazon Aurora Labs) を触ってみた
# はじめに
Amazon Aurora には、Global Databse 機能があり、複数のリージョンにまたがったレプリケーションを簡単に構成する機能があります。通常、Amazon Aurora では、1 つのリージョン間で Multi-AZ を構成する機能があります。Multi-AZ 構成は、高可用性なデータベースが簡単に作れる機能となっており、Global Database より先に Multi-AZ 構成を検討するのがお勧めです。単一のリージョンでは、どうしても難しくて、なおかつリアルタイムなレプリケーションが必要なときに、Global Database の利用を検討しましょう。マルチリージョン構成はシステム全体で考慮しなければならないポイントがあり、通常は Multi-AZ 構成のほうがシンプルでおすすめです。
と前置きを置きつつ、Global Database の機能をきちんと触ったことが無かったので、Amazon Aurora Lab for MySQL というサイトにあるハンズオンを触ってみます。これを検証しながら、わかった点を整理していきます。興味があればぜひ触
【初心者】Amazon SageMaker Latent Dirichlet Allocation (LDA) アルゴリズムを試してみた
# 背景・目的
Amazon SagemakerでLatent Dirichlet Allocation(以降、LDAという。)を試してみます。# 概要
## Latent Dirichlet Allocation (LDA) とは
– 一連の観測を異なるカテゴリの混合物として記述しようとする教師なし学習アルゴリズムです。
– LDA は、テキスト コーパス内のドキュメントが共有する、ユーザーが指定した数のトピックを検出するために最もよく使用されます。
– ここで、各観測値はドキュメント、特徴は各単語の存在 (または出現回数)、カテゴリはトピックです。
– トピックは、各ドキュメントに出現する単語の確率分布として学習されます。
– 各ドキュメントは、トピックの混合物として説明されています。
### Choosing between Latent Dirichlet Allocation (LDA) and Neural Topic Model (NTM)
トピックモデルは、一般に以下に使用される。
– (1) セマンティックな意味を首尾一貫
AWS Config Ruleの新たな評価モード「Proactive」モードを検証してみた
# はじめに
re:Invent2022でAWS Config Ruleに新しい評価モードとして「**Proactive**」モードが追加されました。これまではConfig Ruleに非準拠のAWSリソースが**作成、設定変更後**にCofigによるコンプライアンスチェックが実施されていましたが、この新しい評価モードにより**事前**にチェックすることができるようになりました。https://aws.amazon.com/jp/about-aws/whats-new/2022/11/aws-config-rules-support-proactive-compliance/
AWSリソースのプロビジョニングや変更に対して**発見的統制**に加えて**予防的統制**によるガバナンスを効かせることが可能になるので、実際の所どんなもんなのか確かめたく検証をしてみました。
# 2種類の評価モード
|評価モード|概要|トリガー|対応マネージドルール数
(2022/12時点)|
|—|—|—|:—:|
|Proactive|リソースの**プロビジョニング前**に、リソ
Lambdaローカル開発環境構築手順
下記ブログを参考に、Lambdaのローカル開発環境構築手順をまとめる。
# 本記事執筆時の作業環境
– Windows11 Pro 22H2
– Windows Terminal
– PowerShell 7.3.1# Pythonインストール
下記を参考にPythonをインストールする。~~https://blog.pyq.jp/entry/python_install_221102_win~~
https://starter-guide.od.pythonic-exam.com/ja/latest/python-setup/install-py39-win.html
2023/01/02追記:LambdaランタイムのPythonのサポートが3.9までだったため、
参考記事を差し替えた。https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/lambda-runtimes.html
下記コマンドでPythonのインストールを確認