AWS関連のことを調べてみた

AWS関連のことを調べてみた
目次

サーバレスで Minecraft と外部サービスを連動させてみた話

この記事は2分で読めます。
色々あるので一部ぼやかして書いてます。

# はじめに
AWS の Lambda と API Gateway を使って Minecraft と外部サービスを連携させてごにょごにょ色んなことをやってみた話を簡単にまとめました。
Minecraft は全世界でもっともプレイヤー数の多い人気ゲームですが、アプリ自体は旧世代のアプリケーションなので現代のサービスと連携して有効利用しようと思うとそれなりに工夫が必要になります。Steam や Discord との連携機能も無ければ、Web からのアクセスもできなければ、サーバコンソールからでも Minecraft 専用のコマンドが必要になるという勝手の悪いゲームです。ついでに公式のサーバにはヘルスチェックやトラップも備わっていないので Minecraft サーバは壊れたところで自動では何もできません。
ということで何とかします。

# やったこと
Lambda と API Gateway を使ってバニラの Minecraft を外部サービスと連携させます。プラグインも Mod も要らないので公式のバニラサーバでも実装で

元記事を表示

ALBを使ってメンテナンスページを作る

# 設定画面までのアクセス方法

1. IAMログイン
2. サービス「EC2」を選択
3. 「ロードバランシング」>「ロードバランサー」を選択
4. 対象のロードバランサーを選択
5. 「リスナーとルール」タブから対象のポートを選択
6. 「ルールを追加する」をクリック

### HTMLをそのまま挿入する場合
1. **ルールを追加する**
1. 任意のタグ名を入力
2. 「次へ」ボタンをクリック
2. **ルール条件の定義**
1. 「条件を追加」ボタンをクリック
2. 下記条件を入力
アクションのルーティング:固定レスポンスを返す
レスポンスコード:503
コンテンツタイプ:text/plain
レスポンス本文:用意したHTML(1024文字以内)
3. 「確認」ボタンをクリック
4. 入力内容を確認し「次へ」ボタンをクリック
3. **優先度を入力**
1. 優先度を入力(数値が小さいほど優先度高い)
4. **確認と作成**
1. 入力内容を確認し

元記事を表示

AWS Lambdaの内部構造

# はじめに
AWS Lambdaは、開発者がサーバーのプロビジョニングや管理を心配することなくコードを実行できるサーバーレスコンピューティングサービスです。
この記事では、Lambdaの仕組みとそのコンポーネントについて詳しく解説し、サーバーレスアーキテクチャがどのように開発のパラダイムを変えているかを探ります。

# AWS Lambdaの概要
AWS Lambdaは、「書いたコードを実行するだけ」のシンプルさで知られています。
開発者はコードを提供するだけで、後はLambdaがスケーラビリティ、実行、およびセキュリティを管理します。
Lambda関数は、トリガーに応じて自動的に実行され、使用した分だけ課金されます。
このモデルは、リソースのオーバープロビジョニングやアンダープロビジョニングを心配する必要がないため、効率的でコスト効果が高いです。

### コンポーネントの深掘り
AWS Lambdaのアーキテクチャは主に二つの大きなコンポーネントに分かれています。
呼び出しリクエストのルーティングとコンピュートインフラストラクチャです。
これらのコンポーネントはLambdaの柔軟

元記事を表示

やっとAWS 12冠(全冠)達成したので何か書いてみる

# はじめに
2024/2/24 AWS 認定12資格の内、最後に残ったSOAに無事合格し、晴れてAWS 12冠(全冠)を達成したのでその記念に経緯やらなにやら書いてみることにした。

# 私のAWS歴
現在 46歳になるシステムエンジニア。AWSは2020年8月頃から仕事で使っている。
2020年8月~ 初めてAWSにふれる。Code系サービスを使う。
2021年10月~ 某プロジェクトにて構成管理のお仕事(Code系サービスを使い倒す)
2023年9月~ レガシーマイグレ(AWS)のお仕事

# AWS 12冠を目指すに至った経緯
当初は狙うつもりなど全くなかった(みんなそうかもしれないが)。
「せっかくAWSを使い始めたのだから何か形にしたい。」という思いと「とったほうが良いよ(とってほしいんだけど)」という上司のすすめ(微妙な圧力)もあり、SAAを取得。

その後、AWS有識者を増やしたいという所属部署の流れと、自分の今後のキャリアを考えた時に資格を持っておくのも一つの手段かなという思いからぼちぼちAWSの資格を取り始める。

AWS全冠を意識し始めたのは、

元記事を表示

[AWS]EC2 MySQLのインストール Error: Problem: conflicting requests – nothing provides libcrypto.so.10()(64bit) needed by mysql-community-server

# 目的
AWS EC2にMySQLを導入する際に
“`bash
Error:
Problem: conflicting requests
– nothing provides libcrypto.so.10()(64bit) needed by mysql-community-server-8.0.11-1.el7.x86_64
– nothing provides libssl.so.10()(64bit) needed by mysql-community-server-8.0.11-1.el7.x86_64
– nothing provides libcrypto.so.10(libcrypto.so.10)(64bit) needed by mysql-community-server-8.0.11-1.el7.x86_64
– nothing provides libssl.so.10(libssl.so.10)(64bit) needed by mysql-community-server-8.0.11-1.el7.x86_64
– nothing

元記事を表示

Amazon Managed Workflows for Apache Airflowを整理してみた

# 背景・目的
Amazon Managed Workflows for Apache Airflow(以降、MWAAという。)を試したときのメモ書きになります。
Airflowを本格的に利用したことがなかったので、このタイミングで基本的な知識を含めて簡単な動作確認を行います。

# まとめ
下記に特徴をまとめます。

|特徴|説明|
|:–|:–|
|概要|・MWAAはマネージドオーケストレーションサービス
・データパイプラインを大規模に設定・運用する用途
・AirflowとPythonを使用してワークフローを作成
・MWAAはキャパシティを自動的にキャパシティを拡張
・セキュリティサービスと統合
・スケーラビリティ、可用性、セキュリティのための基盤の管理は不要|
|Airflowを自動的にセットアップ|素早くセットアップ可能|
|オートスケール|・最小数と最大数を設定し、Airflowワーカーを自動的にスケーリング
・MWAAは環境内のワーカーを監視し、定義したワーカーの最大数に達するまで追加する|
|ビルトイン認証|・IAMと統合

元記事を表示

CloudWatchLogsのサブスクリプションフィルタをAWSCLIから設定する

# はじめに
[前回の記事](https://qiita.com/Mouflon_127000/items/a55d207b46d0a2730241)でAWS CLIコマンドを利用してCloudWatchAlermを設定する方法を調査・検証した。
せっかくなので、Alermと一緒に大量に設定する必要のあるCloudWatchLogsのロググループと
サブスクリプションフィルタをAWS CLIから設定する方法を調査・検証した。

# 環境
CloudShellからの実行を想定。記事作成時点のCloudShell上でのバージョンは以下の通り。
– AWS CLI:2.15.21
– jq:1.6(設定確認時に利用)

# 準備:SNS連携用Lambda作成
なんでもよいのでサブスクリプションフィルタの送信先となるLambda関数を作っておく。
今回はログ監視を想定し、サブスクリプションフィルタに指定した文字列を検知した場合、
メール整形用Lambdaへ連携、LmabdaからSNSのトピックを呼びメールを送信するLambda関数を用意する。

Lambda関数作成にあたり参考にさせていただい

元記事を表示

【CodePipeline・CodeDeploy】リモートブランチにpushするだけで、EC2に自動デプロイする(ハンズオン)

## 概要
GitHubで管理しているブランチにpushするだけで、自動でサーバーにデプロイする方法をご紹介します。
ハンズオンなので、深く考えなくても構築できるはずです。

## 図解
完成図は↓のようなものです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2935700/c85ee946-353b-f668-79a6-836f6004eb7f.png)

①ローカルのブランチをGitHubにpushする
②GitHubの対象のブランチの変更をトリガーとして、CodePipelineが走る
②対象のEC2インスタンスにデプロイする

自動デプロイが実現すれば、ファイルをいちいちサーバーにコピーしなくても、pushするだけでコードの変更が反映されるようになります。

## 作業の流れ
### 事前準備
#### デプロイ先のEC2インスタンスを立ち上げる
今回デプロイしたいEC2インスタンスを立ち上げておきます。
インスタンスの起動方法はS3 一般の設定について

S3 設定値一覧
————————-

一般的な設定
————————-
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3146038/8bb00955-52dd-475d-9274-49f2c2370a88.png)
一般的な設定では、以下の設定があります
1.AWS リージョン
リージョン選定による考慮事項
・低レイテンシー対策でリージョンを選択するパターン
・BCP/DR対策で冗長性を確保するため、離れたリージョンを選択するパターン
・特定の法的要件や規制要件に応じて、リージョンを選択するパターン
・コストに応じてリージョンを選択するパターン
→今回作成するS3バケットはリージョン東京(ap-northeast-1)を選択

2.バケットタイプ
————————-
〇汎用
  ・アクセス頻度の高いデータ向けの汎用ストレージ
  ・低レイテンシーかつ高スループットのパフォーマンス
  

元記事を表示

AWSではじめるOpen OnDemand

# 本記事の目的
前記事の[さくらのVPSではじめるOpen OnDemand](https://qiita.com/mnakao/items/a3ad18d845c209395aa2)では、1台の計算機を使ったOpen OnDemandの構築方法を紹介しました。しかし、実環境では複数台の計算機で構成されたクラスタ環境が用いられます。

そこで本記事では、クラスタ環境を用いたOpen OnDemandの構築方法を紹介します。具体的には、AWS (Amazon Web Services) 上にクラスタ環境を構築し、そのヘッドノードにOpen OnDemandをインストールします[^1]。AWS上にクラスタ環境を構築する方法として、AWS公式ツールである[AWS ParallelCluster](https://aws.amazon.com/jp/hpc/parallelcluster/)を用います。本記事で用いるOpen OnDemandのバージョンは3.1.1、AWS ParallelClusterのバージョンは3.8.0です。

# クラスタ環境の構築
## AWS Parallel

元記事を表示

みんかぶ投資信託売れ筋ランキングの上位10ファンドの基準価額、利回りを指定時間にLINEへ通知する

## 概要

みんかぶ投資信託売れ筋ランキング
https://itf.minkabu.jp/ranking/best_ranking
の上位10ファンドの基準価額と利回りを、指定時間にLINEへ通知する方法です。

https://github.com/ichi-first/japan-investment-trust-ranking

![IMG_3706.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3720673/f82f889a-e895-2a32-63c8-9117b9117208.jpeg)

## 背景

現職で投資信託を販売する中で、基準価額や利回りの情報を理解しておく必要がある。毎朝LINEに情報が届くように設定することで、確認する手間をなくすことができると思った。

## スクレイピング

みんかぶのURLから情報を取得するコードは以下の通り

“`python
import requests
import bs4

URL = “https://itf.minkabu.jp/

元記事を表示

AWS CloudFormation IaCジェネレータの使用感と注意点

# IaCジェネレータとは
AWSの既存リソースをもとにCloudFormationのテンプレートを作成してくれるサービスです。
これまで手動構築したAWSリソースをもとにIaCテンプレートを作成するには、サードパーティ製のツールを使う必要がありましたが、この度AWSの公式機能として公開されました。
作った環境をそのまま別アカウントに移行したい時や管理外のリソースをスタックにインポートして管理したい時などには大変便利な機能ですね。

https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/generate-IaC.html

そんな注目のIaCジェネレータですが、実際に使ってみて個人的に感じたことがあるので残しておきたいと思います。

# IaCジェネレータでテンプレートを生成する

### スキャン対象
今回は手動で作成した以下の構成に対して、IaCジェネレータを使ってテンプレート化を試してみました。

[androidアプリ]AWSのAPIgateway + Cognito (Userpool + Idpool)を使用してみる

## はじめに
Cognito認証を使用した各種サービスへのアクセスに非常に困惑したので備忘録として情報を記載する.
特にAWSMobileClientの仕様が理解できておらず困惑したので書き留めておく.

## 何をするか
android環境で,APIgatewayに3つの状況でリクエストを送信する.
– 1.認証・認可なしの場合
– [こちらの記事](https://qiita.com/sanjolin_chun/items/832fb1c6edfb3ea10ed5)
– 2.AWS cognito userpoolを使用する
– [こちらの記事](https://qiita.com/sanjolin_chun/items/7d95184a355b9141c9cb)
– 3.AWS cognito userpool + idpoolを使用する
– いまここ

本記事では,2のCognito UserpoolとIdpoolをセットアップして,IDフェデレーションする場合について解説する.
Amplifyは使用しない.また,前提条件として,[前回記事](http

元記事を表示

CloudWatchAlarmをAWSCLIから設定する

# はじめに
新規の構築作業で大量のCloudWatchアラームを設定しなければいけないが、
GUIからポチポチなんてやっていられない&絶対抜け漏れが起きるのでCLIで一気に投入する方法を調査・検証した。
TerraformやCloudFormation等のIaCツールを利用してやるのがクラウド環境の構築という観点では良い手法だが、
プロジェクトの都合(S-in後はGUI管理前提)や期間、案件メンバーの兼ね合いで完全にはコード化できない状況は多々あると思われる。
そういった場合にAWS CLIでのコマンド操作なら構築手法として受け入れてもらい易いため、やってみようと思った次第。

# 環境
CloudShellからの実行を想定。記事作成時点のCloudShell上でのバージョンは以下の通り。
– AWS CLI:2.15.21
– jq:1.6(設定確認時に利用)

コマンドとは直接関係ないが、以下のような設計資料があり、この値からパラメータを拾って
設定用コマンドを出力することを想定している。

![image.png](https://qiita-image-store.s3.ap

元記事を表示

AWS Hands-on for Beginners を理解しながら進めてみた #3




### #3 [AWS Hands-on for Beginners 〜 スケーラブルウェブサイト構築編 〜](https://pages.awscloud.com/JAPAN-event-OE-Hands-on-for-Beginners-Network-3-2022-reg-event.html?trk=aws_introduction_page “ハンズオン公式サイト”)

# 目的
[前回](https://qiita.com/okigaruni_/items/9a7e13df357cff82f6fe “Network編#3”)に続き、[今回](https://pages.awscloud.com/JAPAN-event-OE-Hands-on-for-Beginners-Scalable-2022-reg-event.html?trk=aws_introduction_page “スケーラブルウェブサイト構築編”) はスケーラビリティと冗長性に優れたブログサイトの構築が目的のハンズオンです。要点として、まずWebサーバーを立ててWordPressをインス

元記事を表示

【データ可視化/Streamlit】S3バケットの画像を署名付きURL機能を使ってStreamlit上に表示する方法

# 前置き
こんにちは、データエンジニアの山口です!

現在業務で、Streamlitでデータ可視化アプリを作成しており、
今後アプリ上にS3バケット内の画像を表示できるようにもしたいなと考えております。
なので、今回はその練習をしてみることにしました!

# 実装する手順の目次
以下のような流れで、実施テストを行いました。

1. S3に画像をアップロード
1. アクセスキーの取得
* IAMユーザーを作成する
* S3のアクセス権限を持たせる
* アクセスキーを作成する
1. Streamlitでアプリを作る
* コードの作成をする
* `$ streamlit run`コマンドを実行する

# 実装に取り掛かります!
それでは、**実装する手順**に記載した手順で実装を進めていきます!

## 1. S3に画像をアップロード
まずは、Streamlitに表示したい画像をS3バケット内に用意をします!

Streamlitに表示したい適当な画像を用意して、
`yamaguchi-streamlit-test`バケットへアップロードします。

元記事を表示

AWSノート

## リージョン

地域

AWSでは、地域のことを`リージョン`と言う

## アベイラビリティゾーン

リージョン内のデータセンターが置いてあるポイント

※AWSは、世界中に、データセンターを持っている

### 図で表すと

“`mermaid

flowchart LR

subgraph GC[リージョン]
CP1(“アベイラビリティゾーン”)
CP2(“アベイラビリティゾーン”)
CP3(“アベイラビリティゾーン”)
end
“`

## VPC

リージョン内に作成する仮想ネットワーク

### 図で表すと

“`mermaid

flowchart LR

subgraph GC[リージョン]
subgraph GS1[VPC]
CP1(“アベイラビリティゾーン”)
CP2(“アベイラビリティゾーン”)
CP3(“アベイラビリティゾーン”)
end
end

“`

## サブネット

VPCネットワーク内に構築できる最小単位のネットワーク

※アベイラビリティゾーン内

元記事を表示

MWAAでRedshiftにIAM認証で接続してクエリを実行する(同一アカウント)

# やりたいこと
Amazon Managed Workflows for Apache Airflow (MWAA) で同一アカウントにあるRedshiftクラスターに対してクエリを実行します。
また、Redshift内のDBユーザーに対しての認証は、ID/PASS認証ではなくIAM認証を使用します。つまり、MWAAの実行ロールに付与されているアクセス許可に基づいて一時的なDB認証を作成し、接続します。この方式だとDBユーザー名のみでパスワードは不要となります。

https://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/generating-user-credentials.html

# 前置き

## 利用するOperator
今回は、Operatorとして**apache-airflow-providers-common-sql**の`SQLExecuteQueryOperator`を利用します。

https://airflow.apache.org/docs/apache-airflow-providers-common

元記事を表示

Amazon Connectで架電システム(プロトタイプ)構築

## 目的
* 監視活動(自動による架電)に必要な経費の削減

## 経緯
* 障害発生時に監視システムから発報したアラートをハンドリングし、緊急性の高いアラートは自動でシステム管理責任者へ架電する仕組みは、数年前から稼働していたものの、年間費用が非常に高額(年間数十万円)である事と、制約が多い(特定の文言でなければトリガーが機能しないなど)ため、代替できるサービスを探していたが、なかなか見つからなかった。
* awsでAmazon Connectというサービスが開始となり、これを導入したとする話題を、ネット上で時折みかけるようになった。費用面でもかなり安く(年間1,500円くらい)、導入コストもかなり低いように見受けられた。

## 方針
* サンプルコードなどをベースにプロトタイプ版を構築し、経費削減案として会社に提案することとした。
##### 参考
https://zenn.dev/t_kakei/articles/700348ed161a49

:::note info
今回のプロトタイプ環境が構築できれば、それをベースに、管理画面をウェブアプリで作るなどして、現場に適合する

元記事を表示

Amazon Cognito 再学習

## ユーザープールを作成する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25184/0a3423b0-e767-30e5-0afb-2361c4e4ee7e.png)

### 認証プロバイダー
ここでの選択肢としては、プロバイダーのタイプを最初に定義する。
Cognitoを用いてIDを認証する場合はユーザープールを。外部のIDを用いて認証を行う場合はフェデレーテッドアイデンティティプロバイダーのチェックを入れる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25184/a998f556-d13e-69c6-49fc-43e642f655f4.png)

現時点でフェデレーテッドサインインの選択肢としては以下のものがある
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25184/

元記事を表示

OTHERカテゴリの最新記事