- 1. CloudFrontとlambda@EdgeでS3にcognito認証をつけた
- 2. AWSでLINE LIFF Inspector環境を構築してみた
- 3. ソリューションアーキテクト対策_S3あれこれ篇
- 4. [AWS]AWS SAP チートシート(その他編) part1
- 5. [AWS]AWS SAP チートシート(NW編) part1
- 6. ソリューションアーキテクト対策_S3ストレージクラス篇
- 7. [AWS]AWS SAP チートシート(DB編) part1
- 8. AWS GrafanaとOracleIdentityCloudService(IDCS)をSAML連携する方法
- 9. [AWS]AWS SAP チートシート(サービス編) part1
- 10. Amazon EC2上でoTreeを動かしてみる
- 11. TwitterのbotをAWS Lightsailで稼働させてみる【Python】
- 12. AWSのコンテナサービス
- 13. AWS Lambdaとは
- 14. AWS Elemental MediaConvert とは
- 15. Amazon Route 53とは
- 16. リレーショナル型とキーバリューストア型以外のデータベース
- 17. はじめてのAWS Lambdaを用いたLINEbot作成!
- 18. [資格]AWS CLF メモ
- 19. ROSA クラスターネットワーク情報
- 20. Lambdaを利用してIAMユーザ作成を自動化してみた
CloudFrontとlambda@EdgeでS3にcognito認証をつけた
## やったこと
S3内で複数のhtmlを管理しており、それぞれのページにアクセスできるユーザーは異なるため、認証処理をしてほしい、という依頼がありました。ユーザはcognitoで管理されているため、今回はCloudFront→Lambda@Edge→S3というアーキテクチャで実装することにしました。実装自体はAWS CDK(ts)を使用しています。## 実装環境
AWS CDK: 2.23.0
Python: 3.7
typescript: 3.5.1## アーキテクチャについて
![access_to_message_webview_qiita.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192406/08a449b4-a085-7064-ecf5-41f2204660c0.png)
大まかなアーキテクチャは上図です。
lambdaの内容もざっくり記載しています。
先程の概要をそのまま図にした感じです:sweat:
(一部、実際のものから省略しています、以降も同様)## cdkの
AWSでLINE LIFF Inspector環境を構築してみた
# はじめに
2022/04にLINE LIFFの開発を効率的にする[LIFF Inspector](https://github.com/line/liff-inspector)がリリースされました。
公式ドキュメントに記載がある通り、[ngrok](https://ngrok.com/)を使用すれば比較的楽にLIFF Inspectorを利用することができますが、例えば業務の都合上、ツールの利用に制限があるなど、そういった場合を考慮して、今回は、AWS上にLIFF Inspectorサーバーを構築し、実際に動かすことができたので、ご紹介したいと思います。基本的な使い方や、詳しい仕様などは、[公式ドキュメント](https://github.com/line/liff-inspector)を参照いただければと思います。
# LIFF Inspector
LIFF Inspectorの構成は以下の通りです。
>LIFF Inspector は LIFF(LNE Frontend Framework)専用の公式 DevTools です。LIFF Inspector は Chrom
ソリューションアーキテクト対策_S3あれこれ篇
## はじめに
試験勉強した際のメモを自分用に記事化。
内容は公式やBlack Beltの写経ですので目新しいことはありません:pray:## S3あれこれ
### S3の静的ホスティングでWebサイトを作る時のデメリット
httpsできない。ただしS3とCloudFrontを組み合わせれば実現できる。### S3のパフォーマンスを向上させるには
オブジェクトキー名に日付などのPrefixを利用する。
日付ベースでアップロードを分散することで、パフォーマンスを自動的に向上することができる。### S3のライフサイクル管理
– 一定期間で自動アーカイブしたい場合
S3(Standard)からGlacierへアーカイブする– 一定期間で自動で安価な保存場所へデータを移動させたい場合
S3(Standard)からS3(Standard-IA)に移動させる– 一定期間で自動で削除したい場合
S3(Standard)のデータを一定期間で削除するようライフサイクルを設定する### S3の整合性
S3は強い整合性モデルを使用しているため、新規登録、更新、削除全てにおいて
[AWS]AWS SAP チートシート(その他編) part1
rolling update
→稼働中のインスタンスを一気には停止させずに、徐々に新しいものに入れ替えていく方式。通常アプリ用。WebIDフェデレーション
→WebIDで一度認証を通れば許可されているすべてのサービスを使えるようにするSSOを使用できるようにする
→SAML2.0準拠のIDプロバイダを使用しSSOエンドポイントを介してアクセスIDS・IPS導入方法
→リバースプロキシ層もしくは各インスタンスにエージェントを入れるADでSSO
→1.IAMロール設定
2.フェデレーションかIDPを設定
3.AWS STS でトークン生成パイロットライト
→リードレプリカを別リージョンに作成
障害時にメインに昇格出来るEBS-backed AMI のimpaired復旧方法
→再起動ではなく停止して起動しないとインスタンスが切り替わらないステートレス
→EC2を使い捨てられるようにする(スケーリング出来る)Assumerole
→1.DynamoDBにユーザー情報を保存
2.ログインIAMロールを仮定
3.STSで一時認証情報取得
4.サービス
[AWS]AWS SAP チートシート(NW編) part1
仮想Private Gateway(VPG)
→AWS側のVPNトンネルGW。1つしか持てないが冗長化されているカスタマーGateway(CGW)
→DC側のVPNトンネルGW。冗長化するために複数構築。NAT
→インターネット送信用であり受信用ではない。DHCPオプションセット
→DHCPの情報を渡すDirect Connect注意点
→冗長化されていないので冗長化する必要がある
工事に時間がかかるオンプレからAWS VPCに移行
→1.VPCにオンプレと重複しないIPレンジを指定
2.Direct connectでオンプレとVPCの通信を確立
3.VMをVM importでVPCにimport内部DNSで通信する
→VPCエンドポイントを有効にするURLベースでアウトバウンドアクセスを拒否
→1.プロキシ作成
2.アウトバウンド URLルール作成
3.デフォルトルートの削除DHCPオプションを変更する
→DHCPは変更できないため新たにDHCPオプションセットを作成し、VPCに関連付けるインターネットに公開せず社員が自宅やカフェなどか
ソリューションアーキテクト対策_S3ストレージクラス篇
## はじめに
試験勉強した際のメモを自分用に記事化。
内容は公式やBlack Beltの写経ですので目新しいことはありません:pray:## 公式
とはいえこの記事に迷いこんでしまった方もゼロではないと思うので公式のご紹介です。– 公式(S3 ストレージクラスについて)
https://aws.amazon.com/jp/s3/storage-classes/## ストレージクラス
### 汎用
#### Amazon S3標準
アクセス頻度の高いデータ向け。
高い耐久性、可用性、パフォーマンスのオブジェクトストレージ。特徴は以下。・低レイテンシーかつ高スループットなパフォーマンス
・複数のアベイラビリティゾーンにわたってオブジェクトに耐久性99.9999~%を達成するよう設計
・アベイラビリティゾーン全体に影響を及ぼすイベントに対する柔軟性
・1年で可用性が99.99%になるように設計
・Amazon S3サービスレベルアグリーメントで可用性が保証されている
・転送中のデータのSSLと保管中のデータの暗号化をサポート
・他のストレージクラスにオブジェクト
[AWS]AWS SAP チートシート(DB編) part1
マルチAZでRDSを作る
→高可用性リードレプリカ
→読取専用のRDS。処理速度は向上するが可用性は増加しない。
インスタンスに昇格出来るDynamoDB
→毎日テーブルを作成して古いデータを破棄する事で安く使えるDynamoDB axelarater(DAX)
→爆速。リアルタイム処理、一時的なアクセス集中などにDynamoDB セカンダリインデックス
→テーブル作成時に設定したパーティションキー・ソートキーとは
別のパーティションキー・ソートキーを設定DynamoDB streams
→DynamoDBのテーブルのデータに
変更があった時に変更情報を暗号化してログに保存Aurora
→自動でストレージ拡張するRDS でサポートしてないDB(Oracle RAC等)のバックアップ
→EC2に立てるしかないのでbkupスクリプトを作るDatabase migration service(DMS)
→オンプレDBをAWSに移行
※Amazon RDS on VMware には対応していないDynamoDBのスループット削減
→DynamoDB
AWS GrafanaとOracleIdentityCloudService(IDCS)をSAML連携する方法
# 概要
AWS Grafanaにログインする際に、IdPとしてOracleIdentityCloudService(IDCS)を利用してログインします。
その際のSAML設定の仕方を紹介します。AWS GrafanaがサポートしているIdPは以下です。
– Azure Active Directory
– CyberArk
– Okta
– OneLogin
– Ping Identityそう、OracleIdentityCloudService(IDCS)はサポートされていません。
故に、本文書も非公式な内容であり、
ご利用頂く場合は”自己責任”で実施ください。# 連携手順
## 1.Grafana構築
### 1-1.ワークスペースの作成ワークスペース名を入力し、「次へ」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172015/dedf1398-6d28-8fc5-81f5-d0c5ec7136c4.png)SAMLに☑をいれて、「次へ」
![image.p
[AWS]AWS SAP チートシート(サービス編) part1
Cloud serch
→Webやアプリ向けの検索サービス。コスト効率〇System Manager
→パッチ適用の自動化SQS…バッチのキューとか処理で後続の処理を実施できるイメージ(後続は好きなタイミングで処理できる)
SNS…notificationだから通知が主なイメージCroudPolicy DeletionPolicy
→Retain…スタックが削除されてもリソースを保持
→Snapshot…リソース削除前にsnapshot作成EMR
→Apache HadoopやApache Sparkを利用したビッグデータの分析Elastic Transcoder
→動画ファイルをタブレットなどで再生可能なフォーマットに変換service catalog
ユーザ部門向けには管理部門が作成したカタログから、求める機能に応じたAWS環境を必要に応じて起動する事が可能IDプロバイダー (IdP)
→AWS の外部のユーザー ID を管理して、これらの外部ユーザー ID にアカウント内の AWS リソースに対するアクセス許可を与えるLambda関数
→認証を処
Amazon EC2上でoTreeを動かしてみる
# はじめに
**経済ゲーム実験をオンライン上で行う環境を整える**ための記事です.経済ゲームの実験は**oTreeと呼ばれる経済ゲーム実験用のソフトウェア**を使います.AWS(Amazon Web Services)の1つであるAmazon EC2上にWebサーバを構築してoTreeを動かすことで,ブラウザを通じて複数の実験参加者(被験者)に経済ゲーム(公共財ゲーム,囚人のジレンマゲーム,最後通牒ゲーム,独裁者ゲーム等)をプレイしてもらうことができます.以下の順で,この**oTreeとAmazon EC2を用いたオンライン実験システム**の構築手順を説明していきます.この記事は@igenkiと@fuku_が共同で書きました.1. AWSでのAmazon EC2の設定
1. EC2インスタンスの作成(起動)
1. EC2インスタンスへの接続
1. EC2インスタンス(OS)の日本語の設定
1. 各種ソフトのインストール
1. VSCode
1. Python
1. oTreeとpsycopg2
1. PostgreSQL
1. oTreeの起動と動
TwitterのbotをAWS Lightsailで稼働させてみる【Python】
# やりたいこと
文章を自動生成するTwitterのbotを自作して公開したい。
自動生成するプログラムとTwitterに投稿するプログラムは前回までで出来たので、今回はAWSを使って公開するところまでをやる。https://qiita.com/fujii_273/items/bed7bf7b34fa0bb515c9
https://qiita.com/fujii_273/items/9bb05b3dfcd79d391ff7
# 環境
Windowsで開発したプログラムをAWSに上げる。## 開発環境
・Windows 10
・Python 3.10.7## 本番環境
・AWS Lightsail(Amazon Linux 2)
・Python 3.7.10# やったこと
1.AWSのアカウント作成
2.AWS Lightsailのインスタンス作成
3.サーバに各種インストール
4.LightsailサーバーへSFTP接続
5.cronの設定## 1.AWSのアカウント作成
まず、botを載せるサーバを用意する。
今回は勉強も兼ねてAWSにします。
アカウントの
AWSのコンテナサービス
# AWSのコンテナサービスとは
**コンテナ**とは、プログラムの実行環境を隔離する仕組み。
Virtual BoxやVMwareなどの仮想マシンは、OS全部を仮想環境に含む。
しかし、コンテナでは、アプリケーションプロセスのみをコンテナ内に隔離し、それに必要なライブラリとデータのみを含む。そのため、とても軽量で、管理も容易。コンテナの形式としてはDockerが有名。AWSではDocker形式のコンテナをサポートする。
一般にコンテナサービスには、コンテナを配置・管理するための「レジストリサービス」と、コンテナ化されたアプリケーションの実行やコンテンナ同士の調整を行う「オーケストレーションサービス」が必要。
AWSのレジストリサービスには**Amazon Elastic Container Registry(ECR)** がある。
オーケストレーションサービスには、AWSの各サービスから成る**Amazon Elastic Container Service(ECS)** と最近脚光を浴びているKubernetes(クーベネティス)があると互換性がある**Amazon Elastic
AWS Lambdaとは
# AWS Lambdaとは
AWS Lambdaは、**データやリクエストのリアルタイム処理やバックエンドの処理を、自動的に実行する仕組み**。このような処理のために専用のサーバーを準備や管理する必要がない。必要なイベントに応じて自動実行される。常駐サーバーとは異なり、プログラムの実行時のみに課金される。
**Lambda関数**と呼ばれる形式の関数を用いますが、これは新しい言語ではない。
よく知られるプログラミング言語で書いたコードをもとに「Lambdaコンソール」などを用いてグラフィカルに作成できる。使える言語は、java,C#,Python,Ruby,Node.js,Goなどで、よくある目的のためのテンプレートも揃っている。
Lambda関数は、Lambdaサービスに保存される。
何かのトリガーで、特定のAWSリソースにおいて実行される。有名な例は、S3バケットに画像が置かれると、サムネイル実行関数が呼び起こされ、サムネイル作成関数が呼び起こされ、サムネイルを自動的に作成する例。
# Lambdaの用語
Lambdaは、プログラムのコードをLambdaサービスにアップロードして
AWS Elemental MediaConvert とは
## 勉強前イメージ
Amazon Elastic Transcoder の後継だったはずだけど
何が違うのか・・・・## 調査
### AWS Elemental MediaConvert とは
ブロードキャストグレードの機能を備えたファイルベースの動画変換サービスです。
ブロードキャストグレードとは、放送局レベルの品質で高い画質を保った動画に変換できます。
また、著作権の保護や多言語音声対応、字幕などの機能を備えてるものになります。### AWS Elemental MediaConvert の特徴
– 高い動画変換のための機能が揃ってる
大規模なユーザー向けの配信などで使用されているAWS Elementalの技術をベースに作られている為
信頼性の高いサービスです。
また、上記でも記載の通り
グラフィックオーバーレイや著作権の保護、多言語音声や字幕などの機能が提供されています。– 動画配信に適合する入出力形式に対応
ブロードキャスト用、インターネット配信用など様々な入出力形式のサポートを行っています。
4Kや8K解像度、HDRといった最新のビデオ規格にも対
Amazon Route 53とは
# Amazon Route 53とは
Amazon Route 53とは、DNS(ドメインネームサービス)。
**DNSとは、Webブラウザに入力したURLをIPアドレスに変換する仕組み**。
Amazon Route 53では、**アクセスしてもらいたいアドレスを、実際に使用しているEC2やS3などのAWSサービスのエンドポイントに結びつける。**
これを**名前解決**という。Amazon Route 53ではドメインの取得もできる。
ドメインの取得とは、**〇〇.jpや△△.comなどのドメインの使用権を買って、レジストラ(ドメインの登録を担当する組織)に申請すること。**
Amazon Route 53には、トラフィックが1つのエンドポイントに集中しないようにしたり、1箇所のサービスに障害が生じた時に速やかにほかの場所に切り替える機能があり、ルーティングを柔軟に管理する。
## レジストラとレジストリの違い
レジストリとは、ドメイン情報のデータベースを管理している機関。
レジストラは、レジストリにドメイン情報の登録を担当する組織。
ユーザーはレジストラにドメイン情報を申請し、
リレーショナル型とキーバリューストア型以外のデータベース
# そのほかのデータベース
システムの構造が巨大化・複雑化とともに従来のリレーショナル型やキーバリューストア型以外のデータのタイプが出現した。
* DocumentDB(ドキュメント指向型)
* Neptune(グラフデータベース)
* Timestream(時系列データベース)
* Quantum Ledger Database(台帳データベース)
# Amazon DocumentDB(MongoDB 互換)とは
Amazon DocumentDBは、Mongo互換のデータベースサービス。
MongoDBとは、オープンソースのドキュメント指向型のデータベース。
JSON形式をバイナリ化したBSON形式でデータを保存する。
ビックデータ処理、分散処理に向けたNoSQL型のデータベースで高い評価を得ている。
DocumentDBは、MongoDBデータの入出力を大規模かつ安定して行えるように最初から設計されている。既存のMongoDBドライバーおよびツールで利用できる。
AWS Database Migration Serviceを用いて、Amazon EC2上で実稼働中のMongoD
はじめてのAWS Lambdaを用いたLINEbot作成!
## 概要
サーバーレスコンピューティングを実現するAWSサービスであるAWS Lambdaを勉強するため、LINEbotアカウントを作成するために使うMessaging APIとHTTPリクエストを送るためのPythonプログラムを用いて、簡単なLINEbotシステムの構築を行います。
## AWS Lambda
一般的に、インターネット上でプログラムを実行させるためにはインターネット上にサーバーを準備し、実行環境やプログラムを用意する必要があります。この場合、プログラムを実行するためにサーバー構築やインフラに関する知識や操作の手間が必要です。
これに対し、サーバーやインフラを準備する事なくプログラムをデプロイし実行することを**サーバーレスコンピューティング**と呼ばれています。AWS Lambda(ラムダと呼びます)はサーバーレスコンピューティングを実現するAWSのサービスです。AWS Lambdaを利用することで、エンジニアはプログラム開発のみに専念し、インターネット上でプログラムの実行が可能になります。
### AWS Lambdaのメリット
Lambdaの利用によ
[資格]AWS CLF メモ
# 概要
AWS CLFの勉強用メモとして、暗記していきたい内容を箇条書きですがメモしていきます。# 記録
– フォールトトレラント設計
システム設計の手法の一つ。
システムの一部ノードに障害が発生しても、全体が停止することなく動作し続ける設計。
AWSでは、アベイラビリティゾーンをバラすことで可用性を上げている。– コスト周りについて
– AWS Cost Explorer
過去の請求情報をグラフィカルに表示する機能。
過去 12 か月までのデータを表示し、今後 12 か月間にどれくらい費やす可能性が高いかを予測し、リザーブドインスタンスを購入するための推奨事項を得ることができる。
– AWS Budgets
カスタム予算を設定し、設定値を超える又は超えそうな場合にアラートを発報する機能。
月ごと、四半期ごと、年単位で追跡可能。– 監視周り
– AWS CloudTrail
AWSアカウントのガバナンス、コンプライアンス、
ROSA クラスターネットワーク情報
# はじめに
Red Hat OpenShift Service on AWS(ROSA)のデフォルト構成はどうなってるんだっけ、ということで確認したときの結果を書いておきます。今回はネットワーク構成について。
PodやServiceのIPの範囲の確認です。# ROSAクラスター構成
以下のクラスター構成での情報です。
・[STSモード](https://docs.openshift.com/rosa/rosa_getting_started/rosa-sts-getting-started-workflow.html)
・[AWS PrivateLink cluster](https://docs.openshift.com/rosa/rosa_install_access_delete_clusters/rosa-aws-privatelink-creating-cluster.html)
・マルチゾーンバージョン情報
“`
$ oc version
Client Version: 4.10.4
Server Version: 4.10.20
Kubernetes Ve
Lambdaを利用してIAMユーザ作成を自動化してみた
AWSのサーバレスアーキテクチャを実際に触ってみたくて手始めにLambdaを用いてみることにしました。
【やりたいこと】
![実現イメージ.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2840619/3d24e664-fae4-50d0-74da-c1ca12dad527.jpeg)ExcelベースのIAMユーザの登録申請書の内容を基に申請書をS3へアップロードしたらLambdaが実行されて申請書に記載されているIAMユーザを自動作成する。
【使用環境】
boto3
Python3.9
pandasライブラリ【実現方法】
Excelベースでの読み込みは私には難易度が高かったのでcsv形式に変換するVBAを作成(この部分の詳細は割愛)csv形式で以下のフォーマットで記載することに決定
1カラム目,2カラム目,3カラム目
IAMユーザ名,IAMグループ,メールアドレスIAMユーザを作成する際のパスワードはセキュリティの観点からランダムに自動生成したいです。
さて、方針が固まっ