- 1. S3にオブジェクトをアップロードして引数をlambdaに送りたいとき
- 2. AWSのパスワードポリシー設定方法
- 3. AWS Cloud9 または Amazon Linux でShopify CLIを使う
- 4. CloudWatchLogsに「AWS以外のサーバ環境」からは書き込みが出来て「AWS Fargate」からは書き込みが出来ない時の対応
- 5. AWSと比較したOCIの特徴①
- 6. 【AWS SAM】デプロイとローカル確認用のコンテナイメージを一つのDockerfileで使い分ける
- 7. 【Lambda】AWSのLambdaの設定項目について調べてみた。
- 8. Lambda関数内で、別AWSアカウントのLambda関数を呼び出す
- 9. AWS Organizations の SCP を使って特定のIPアドレスのみで AWS が利用できるようにしてみよう
- 10. Amazon Lex の V1 Bot を V2 Bot に移行する
- 11. ECSへ移行したらマシンリソースを使い果たした問題がnet/httpのhttp.Transportの使い方の誤りにあった話
- 12. EC2に自動でEIPを割り当ててくれるシェルスクリプト
- 13. AWSのEC2インスタンスでAmazon Correttoを用いてJDK16を導入する
- 14. Terraform+SAMでLambda+APIGatewayの環境構築
- 15. AWSのEC2インスタンスでAmazon Correttoを用いてJDK8を導入する
- 16. 【個人開発】地域の魅力を発信できるデジタルパンフレットサービス「Openパンフレット」を作った
- 17. 【実践!AWS Lambda】Javaで書いたLambdaの初回起動が遅い問題を解決する
- 18. AWSの便利なプラットフォーム「Amplify」について
- 19. no basic auth credentialsでdocker build出来ない
- 20. AWSソリューションアーキテクト合格体験記
S3にオブジェクトをアップロードして引数をlambdaに送りたいとき
今まではS3をトリガーにLambdaを発火させていたのですが、これだと追加の変数を設定することができず、どうすればいいか悩んでいたときに、InvokeInputに渡せばいいことを知りました。
## 参考
https://qiita.com/yukpiz/items/269277a97053237a6980
## go server側
S3にアップロードしたあとに、invokeして変数を渡すようにしました。
“`main.go
package mainimport (
“encoding/json”
“fmt”“github.com/aws/aws-sdk-go/aws”
“github.com/aws/aws-sdk-go/aws/session”
“github.com/aws/aws-sdk-go/service/lambda”
)// これはLambda関数の完了で返すための構造体定義
type Response struct {
Message string `json:”message”`
Ok bool `json:”ok
AWSのパスワードポリシー設定方法
[zenn](https://zenn.dev/mo_ri_regen/articles/aws-password-policy)にも同様の記事を書いています。更新頻度はzennのほうが多めです?
コンソールにログインするためのカスタムパスワードポリシーの設定を行おうと思います。
IAMからカスタムパスワードポリシーの設定ができます。ちなみにデフォルトでは下記のようなパスワードポリシーになっています。
> パスワードの文字数制限: 8~128 文字
> 大文字、小文字、数字、! @ # $ % ^ & * ( ) _ + – = [ ] { } | ‘ 記号のうち、最低 3 つの文字タイプの組み合わせ
> AWS アカウント名または E メールアドレスと同じでないこと## コンソールで設定
1. [コンソール](https://console.aws.amazon.com/iam/)にサインインして、左ペインのダッシュボードにアカウント設定があるのでそれをクリックします。
AWS Cloud9 または Amazon Linux でShopify CLIを使う
# はじめに
Shopify Appを構築するために使うShopify CLIをCloud9にインストールした時の手順です。おそらくAmazon Linuxでも同様の手順で動かせます。
# 依存するものをインストール
以下をインストールします。
* ruby2.6
* ruby-devel“`console
sudo amazon-linux-extras install ruby2.6
sudo yum install ruby-dev
“`# Shopify CLIをインストール
パッケージを適当なところにダウンロードします。
https://github.com/Shopify/shopify-cli/releases から最新バージョンを確認します。今回は2.2.2が最新でした。
“`console
wget https://github.com/Shopify/shopify-cli/releases/download/v2.2.2/shopify-cli-2.2.2-1.noarch.rpm
“`“`console
sudo yum
CloudWatchLogsに「AWS以外のサーバ環境」からは書き込みが出来て「AWS Fargate」からは書き込みが出来ない時の対応
**CloudWatch Agent** や **AWS SDK** を使用して**CloudWatch Logs**に書き込みをする際の話になります。
**ローカルのDocker環境**や**さくらサーバ**などでは動作しても**AWS Fargate**では動作しなくて困ることがあるかもしれません。
上記でロググループが存在しない際に**CreateLogGroup**で権限エラーと表示される場合、権限&ポリシー設定になります。
**IAM**でログ関係の権限を全て与えているから問題が無いと勘違いをされている方もいます。
※AWSをメインで対応している会社でも勘違いをしている方がいました。###*
AWSと比較したOCIの特徴①
#はじめに
OCI(Oracle Cloud Infrastructure)の機能、サービスをAWSと比較しながら整理したいと思います。AWSが一番機能も豊富でシェアも高いので、AWSをベースに比較していくとわかりやすいかなと思って作りました。
AWS SAAの範囲で「AWSの○○はOCIだとXX」みたいに比較していきます。今回は「1. グローバルインフラ構成」「2. VPC/VCN」になります。
なお、以降の記載は私の理解をまとめたものです。誤っていることがあったらごめんなさい。
##参考資料
[AWS認定資格試験テキスト AWS認定ソリューションアーキテクト – アソシエイト](https://www.amazon.co.jp/AWS%E8%AA%8D%E5%AE%9A%E8%B3%87%E6%A0%BC%E8%A9%A6%E9%A8%93%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88-AWS%E8%AA%8D%E5%AE%9A%E3%82%BD%E3%83%AA%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%
【AWS SAM】デプロイとローカル確認用のコンテナイメージを一つのDockerfileで使い分ける
# 初めに
LambdaアプリケーションをSAMで開発するにあたりコンテナでデプロイを初めて取り扱うにあたり色々試行していたのですが、
せっかくコンテナで環境をそのまま持ってけるんだからローカル環境も同じコンテナで処理したい!
でもDockerfileの多重管理はしたくない!となっていい方法がないかと模索していたところ
割と良さげな方法がありましたので備忘録がてらまとめます。AWSのサポートに問い合わせてみたら記事執筆時点(2021/08/27)では
まだ公式のドキュメントが追いついてなく記載がなく追記予定らしいです。こんなことしなくてももっと簡単にできるよっていうのがあったらご教示いただければと思います。
# 何がしたかったか
今回はAWS公式で提供されているpython3.8のイメージをベースとします。
大元のDockerfileはドキュメントに記載の通り以下で
`ENTRYPOINT [“/lambda-entrypoint.sh”]` が実装されており、これに対して
`CMD` で引数を渡すような作りをすることで対象のスクリプトを実行できます。
https://
【Lambda】AWSのLambdaの設定項目について調べてみた。
#はじめに
先日、業務でAWSのLambdaというサービスを使うことになり、
それについて色々調べてみました。今回は、備忘としてLambda関数の設定項目に関する説明を記述していこうかなと思います。
##Lambdaとは
Lambdaとはどういったサービスなのか。
AWSの公式ページには以下のように記載されていました。>AWS Lambda はサーバーレスコンピューティングサービスで、サーバーのプロビジョニングや管理、ワークロード対応のクラスタースケーリングロジックの作成、イベント統合の維持、ランタイムの管理を行わずにコードを実行できます
わざわざサーバを構築せずとも。色々なことを実行できますよー的な感じですね。
Lambda上に実行したい処理(プログラム)を定義することにより、
指定したタイミングで実行することができます。Lambdaを利用して様々なことができる訳ですが、
どんなことが出来るかは各自で調べていただけると幸いです。。##Lambdaの設定
本題のLambdaで設定できる内容について記載していこうと思います。
なお、本記事では関数の設定項目につい
Lambda関数内で、別AWSアカウントのLambda関数を呼び出す
**AWSアカウントA**内のLambda関数から**、AWSアカウントB**内にあるLambda関数を呼び出す方法の備忘録です。
もともとのゴールは、アカウントA内のAmazon **Lexボット**から、アカウントB内のLambda関数を直接呼び出すことでした。
しかし現状無理そうなので、アカウントA内の(プロキシ)Lambda関数を経由して、間接的にアカウントBの(本命)Lambda関数を呼び出すことにしました。
##概要
Lexボットがある、**呼び出し側**のAWSアカウントを**アカウントA(ID:999999999999)**、**呼び出される**本命Lambda関数がある側のAWSアカウントを**アカウントB(ID:000000000000)**とします。
アカウントA内に作成するプロキシLambda関数が、アカウントB内の本命Lambda関数を呼び出すには、アカウントBの側で**アカウントAのアクセスを許可**する必要があります。
セットアップ全体の流れは次のとおり。
1. アカウントB内に、本命Lambdaの実行権限を持つIAM Roleを作成
AWS Organizations の SCP を使って特定のIPアドレスのみで AWS が利用できるようにしてみよう
こんにちは
間が空いてしまいましたが、AWS Organizations の SCP を使って制限をかけようシリーズの第3弾です。第1弾:https://qiita.com/hirosys-biz/items/ecc34f8574094dc6be15
第2弾:https://qiita.com/hirosys-biz/items/48d1db5fcce3bf6547ce今回はタイトルにあるように特定のIPアドレスからのアクセスに限って、AWS の利用ができるようにするものです。
業界や企業のポリシーで、AWS の操作を特定の IP アドレス(IP アドレス範囲)に限っていることがよくあります。例えば、運用保守チームが利用している IP アドレス範囲のみ操作を認めるといった感じですね。当社で AWS Organizations を使ってハンズオン、サンドボックス環境を作っていた際に出てきた要件で対応した内容です。
## 制限をかけてみよう
これまでの記事と同様の流れでポリシーを作成し、organizational units (OUs)やアカウントにアタッチします。
ポリ
Amazon Lex の V1 Bot を V2 Bot に移行する
## はじめに
2021/7/14 に Amazon Lex の V1 API で作成されたチャットボットを V2 に移行できる Migration Tool が利用可能になりました。https://aws.amazon.com/jp/about-aws/whats-new/2021/07/amazon-lex-announces-tooling-to-migrate-bots-from-lex-v1-console-to-lex-v2-console/
V2 API がリリースされた当初は手動の移行 (実質再作成) が必要だったのですが、これにより主要な設定を V2 API のボットとして移行できるようになりました。
## Lex V1 と V2 の違い
Amazon Lex は 2021年1月に V2 API がリリースされています。コンソールのデザインが変わっただけではなく、新しい機能を含む新規の API としてのリリースです。1 つのボットで複数言語に対応させることができるなど、生産性が向上するアップデートも多く含まれています。https://aws.amazon
ECSへ移行したらマシンリソースを使い果たした問題がnet/httpのhttp.Transportの使い方の誤りにあった話
# はじめに
はじめまして。Kyashでサーバサイドエンジニアを担当しているhirobeです。
[ブログ記事発信](https://blog.kyash.co/entry/2021/07/27/203922)の一環として書かせていただきます。Kyashでは、約30ほどのマイクロサービスが動いてます。
そのなかで比較的新しいサービスについては開発環境、本番環境ともにAWSのECS(AWSのコンテナオーケストレーションサービス)を利用していますが、数年前から存在するような古いサービスはいまだにEC2で動いているものも多く、それらはECSに移行しつつあります。
検証環境において、あるマイクロサービスをEC2からECSへ移行したところ、接続元のサービスのマシンリソースを使い果たしサービスがかなり不安定になる問題が発生しました。
当初はアプリケーションのコード修正に問題があると皆で調査していたのですが、リソースを使うようなコード修正もありませんでした。半ばあきらめかけていたのですが、偶然私がGoのnet/httpのソースコードを以前から読んでおり[^1]処理の概要を把握していたので、
EC2に自動でEIPを割り当ててくれるシェルスクリプト
# 概要
普段、Terraformを使用している私にとって、EC2を起動した際などに使用するEIPは
ドメインを割り振る関係上、簡単に変更できないように
Terraformのライフサイクルに含めたくないケースが多い。
そんなときに便利な
EIPを作成し、EC2へそのEIPを自動で割り当ててくれるシェルスクリプトを紹介する。# 動作環境
– Linux
– Debian [v10.8]
– Windows
– WSL の Ubuntu [v20.04]
– WSLの構築については以下を参照https://qiita.com/mttk030/items/6fd9821120a5a2218e78
# シェルスクリプト
“` bash
#!/bin/bash
set -eucreate_and_set_eip () {
# サーバ用Elastic IP作成 and EC2連携
aws ec2 allocate-address –domain vpc –tag-specifications “ResourceType=elastic-ip
AWSのEC2インスタンスでAmazon Correttoを用いてJDK16を導入する
とあるサーバー向けソフトウェアでJava16を必要とする事があった。
すでにAmazon Corretto 8を用いてJDK8がインストールされていたが、
AmazonLinuxならAmazon CorrettoというOpenJDK互換のソフトウェアが簡単にインストールとバージョン切り替えが可能なのでその方法を説明する。
この記事ではAmazon Corretto 16のインストールについて解説するが、Corretto 8については次の記事を参考にしてほしい。→[AWSのEC2インスタンスでAmazon Correttoを用いてJDK8を導入する](https://qiita.com/honahuku/items/e5464bb3b102710b555a)# 環境
“`
AWS EC2 t4g.medium ARM AmazonLinux2
JDK 1.8.0_302 がインストール済み
“`
今回はARM版のAmazonLinux2を利用しているが、x86でも手順はほぼ同様だと思われる。# インストール
今回はyumからインストールを行う。rpmからマニュアルでインストー
Terraform+SAMでLambda+APIGatewayの環境構築
## どういう記事か
terraform, samの初心者がapi gateway + lambda + cloudfrontの環境構築をしたときのメモです。
## 前提
– m1 mac
– macos big sur## 参考
https://dev.classmethod.jp/articles/sam-and-terraform-example/
## terraformのダウンロード&インストール
tfenvから導入を始めます。
tfenvが正しい方法なのかはよくわかっていませんが、、“`
brew install tfenv
“`今回は `0.15.5`をインストールしてみました。
“`
tfenv install 1.0.5Installation of terraform v1.0.5 successful. To make this your default version, run ‘tfenv use 1.0.5’
“`これで設定します。
“`
$ tfenv use 1.0.5$ terraform –vers
AWSのEC2インスタンスでAmazon Correttoを用いてJDK8を導入する
とあるサーバー向けソフトウェアでJava16を必要とする事があった。
AmazonLinuxならAmazon CorrettoというOpenJDK互換のソフトウェアが簡単にインストールとバージョン切り替えが可能なのでその方法を説明する。
この記事ではAmazon Corretto 8のインストールについて解説するが、Corretto 16については次の記事を参考にしてほしい。→[AWSのEC2インスタンスでAmazon Correttoを用いてJDK16を導入する](https://qiita.com/honahuku/items/36e83367f6acac9947c8)# 環境
“`
AWS EC2 t4g.medium ARM AmazonLinux2
Javaは未インストール
“`
今回はARM版のAL2を利用しているが、x86でも手順はほぼ同様だと思われる。# インストール
今回はyumからインストールを行う。rpmからマニュアルでインストールする方法はこちら→[AWSのマニュアル](https://docs.aws.amazon.com/corretto/lat
【個人開発】地域の魅力を発信できるデジタルパンフレットサービス「Openパンフレット」を作った
# はじめに
* デジタルパンフレット作成公開サービス **[Openパンフレット](https://open-pamphlet.com)** をリリースしました。
* 個人開発です。
* バックエンドはだいたいAWSです。
* Android未対応?https://open-pamphlet.com
バックエンドの技術者がフロントやらインフラやらアプリやら色んな所に手を出して作ったシステムになっています。
記事本文はZennで書いているので[こちら](https://zenn.dev/ymasutani/articles/42fb40f4e00f1d)です。
# 宣伝
Android版の開発のためクラウドファンディング募集しています。
よかったら見て下さい。励みになります。https://camp-fire.jp/projects/view/467291
【実践!AWS Lambda】Javaで書いたLambdaの初回起動が遅い問題を解決する
# 概要
AWS Lambdaの開発において、必ず出てくる初回起動が遅い問題、、、
NodejsやPythonなどのスクリプト言語のLambdaであれば対策は比較的簡単なのですが、Javaなどのコンパイル型の言語の場合は難易度が上がります
JavaのLambdaの初回起動にかかる時間を**8秒→1秒**に短縮することに成功したので、ここに備忘録を残します# 目次
1. 前提条件
1. 設計要素の洗い出し
2. コールドスタート対策
2. DBコネクション対策
2. クラスローディング対策# 前提条件
・ランタイムはJava 11を使用
・以下のような構成とする
①API GatewayをトリガーにLambdaが起動
②RDS Proxyを介してAuroraに接続
③ClientにResponceを返す
![構成図-ページ2のコピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1887625/6e762b10-849d-1e3e-7b23-044ed2c92e3d.png)# 設計要
AWSの便利なプラットフォーム「Amplify」について
# はじめに
これからAWSのサービスの一つ、**Amplify(アンプリファイ)**を利用してアプリケーションを開発するため、備忘録としてここに記述します。
私は初学者ですので、誤っている箇所がありましたらご指摘いただけますと幸いです。# Amplifyとは
クラウドサービス上におけるモバイルアプリケーションやWebアプリケーションを安全に構築するためのプラットホームになります。
**Lambda**、**DynamoDB**、**Cognito**、**AppSync**、**CloudFront**、**S3** など、AWSのサービスを使いやすくパッケージ化したものです。Amplifyに対応している言語**( JavaScript、iOS、Android )**、ライブラリ**( React、Vue.js、Angular )** でフロントエンドさえ作ってしまえば、サーバーサイド、インフラはAWSのサービスで簡単につくれてしまうという優れものです。# 導入されているツール(一部抜粋)
### ① API(例:AppSync、REST、GraphQL)
ソフトウェアの一
no basic auth credentialsでdocker build出来ない
# 起きたこと
`docker build`しようとしたら`no basic auth credentials`と言うエラーが出てうまく行かない
S3環境を見に行けてなかったっぽい(エラーログ保存し忘れました)https://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/common-errors-docker.html
>aws ecr get-login-password コマンドを使用して Docker に対して正常に認証されても、HTTP 403 (Forbidden) エラーが発生したり、docker push コマンドまたは docker pull コマンドからのエラーメッセージ no basic auth credentials が表示されたりする場合があります。この問題の既知の原因をいくつか次に示します。
# 解決策
## 1.AWS CLIインストール
もうしてある人は飛ばしてOKhttps://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cl
AWSソリューションアーキテクト合格体験記
先日AWSソリューションアーキテクト – アソシエイトの試験を受けました。
無事合格できたので、今後受験を考えている方の参考になるよう、体験記を書いていきます。
## AWSソリューションアーキテクト概要
|項目|内容|
|—|—|
|概要|AWS利用の最適な設計について
問われる試験|
|バージョン|SAA-C02|
|問題|選択問題 65問|
|時間|130分|
|合格ライン|720点以上|
|採点|100〜1000点で採点
50/65問が採点対象
15/65問は採点対象外※|
|受験料|15,000円|
|模擬試験料金|2,000円|
|受験の前提条件|なし|
|言語|英語、日本語、韓国語、中国語(簡体字)|※採点対象外の15問は、`情報を収集し今後採点対象の設問として使用できるかどうかを評