- 1. AWS Cloud9を使ってみた※編集中
- 2. Route53
- 3. AWS CDKをDenoで動かす3 デプロイ編
- 4. 【AWS】関数URLを利用して外部からLambda関数を呼び出す
- 5. EC2とRDSでバックエンド環境を構築してみた
- 6. Cloudformationで構築したEC2にAnsibleを設定、実行するまで!
- 7. RDSのKMSキー変更でコンソール表示に惑わされた話(MySQL)
- 8. AWS CDKをDenoで動かす2 experimentalモジュール編
- 9. AWS Cloud9でRailsサーバーにアクセスできない場合の対処法
- 10. S3トリガのLambdaを作成する際の注意点について
- 11. IAM Role/Policy について
- 12. CodePiplineのDeploy StageでInstall eventsが一生続いた話
- 13. SSM セッションマネージャーによるBastion設計
- 14. EC2 インスタンスタイプ〜t系〜
- 15. AWS: Root User と AdministratorAccess Policyの権限の違い
- 16. ~Codepipline~ CodeCommit変更の検出方法
- 17. CFnによるECS on FargateのBlue/Green DeploymentをCodePiplineで実装した手順
- 18. Redshiftのsuper型配列を反復処理する方法
- 19. AppSync & Aurora Serverless の GraphQL バックエンドを CDK で構築したぞい!(2022/05/24版)
- 20. AWS SSL化設定後に、アクセスできない【見直したい点】
AWS Cloud9を使ってみた※編集中
本記事はAWS Cloud9の学習を始めた筆者が、備忘録として残したい内容を記述します。
■AWSアカウント作成
リンクよりAWSアカウント作成を行う。
https://aws.amazon.com/jp/register-flow/■Cloud9環境作成
AWSマネジメントコンソールにサインインし、画面上部より「cloud9」を検索する。「Create environment」をクリック
設定を確認し「Create environment」をクリック
■Pythonを最新にアップデート
既定のバージョン:Python 3.7.10
最新バージョン:Python 3.10.4アップデートはこの記事を参考した。
(https://qiita.com/wa_0a/items/cf8fad294d74938c80ec)■
Route53
追記予定
AWS CDKをDenoで動かす3 デプロイ編
https://qiita.com/rinfield/items/49b89005678da188c214
https://qiita.com/rinfield/items/5496e7d1884a9d4593da
の続きでDenoでCDKを動かしていきます
## 要約
– CDKコードがDenoだったとしてもちゃんとAWSにデプロイできる(CDK CLIがnodeだけど)## synth以外はどうなんだ?
これまで`cdk synth`は試していましたが実際のAWS環境に対する変更はしていませんでした。
`cdk.out`がキチンと出力されている上、CDK CLIは依然nodeで動作しているので動くかと予想していますが念のため確認します。前提として`aws configure`を済ませておきます。
デプロイするコードはこちら
https://github.com/rinfield/cdk-deno/tree/192182bffe063e5cb7a8d78cb97f533291b2319f
### cdk bootstrap
“`console
$ cdk b
【AWS】関数URLを利用して外部からLambda関数を呼び出す
# 1.はじめに
どうも、ARIの名古屋支社に勤務している愛知県民です♪
(/・ω・)/2022年4月6日にLambda関数に「関数URL」という機能が追加されたようです。
https://aws.amazon.com/jp/about-aws/whats-new/2022/04/aws-lambda-function-urls-built-in-https-endpoints/
一言でいうと、API Gatewayの設定なしで外部からLambda関数を呼べるみたいです!
そこで今回は**Lambda関数の関数URLの使い方を説明したいと思います♪**
AWSについて勉強中の方の参考になれば幸いです。
(*^^)v# 2.用語の説明
## 2.1.Lambdaとは
LambdaとはAWSのサービスの1つで、コードを書くだけで即実行ができるサービスのことです。
サーバの設定等が不要なため、便利です。ただし、15分以上続けて実行することはできないため、
複雑なアプリケーションの場合はEC2やECRでの実行が必要となります。# 3.前提条件
* Lambda関数が作成済で
EC2とRDSでバックエンド環境を構築してみた
[こちらの記事](https://qiita.com/t-tysm/items/2fe4d878d8cfeecd9107)の続きです。
今回はバックエンド環境のセキュリティグループの設定および、
EC2、RDSそれぞれの実行環境を構築します。## 構成(フロントエンド含む)
### EC2
Webアプリのバックエンドを実行します。
今回はJavaのjarファイルを常時実行し、フロント側から実行されたAPIを処理します。
RDSに構築されたデータベースとデータをやりとりします。
今回はSpringBootで実装しています。
なお、HTTPS接続したいために、SSLを有効にしています。
その際、今回はテスト環境のため自己署名証明書を使っています。### RDS
Webアプリのデータベースを担います。
今回はPostgreSQLです。### S3
Webアプリのフロントエンドを配置します。
静的ウェブサイトとして設定し、エンドポイントにアクセスすることでフロント側の画面を表示します。
今回はVue.jsを用いて画面を作成します。## セキュリティグループの設定
### EC
Cloudformationで構築したEC2にAnsibleを設定、実行するまで!
## はじめに
前回Cloudformationで構築した環境にServerspecでテストの実施を行うために、Ansibleで環境を構築する。
記事はこちら↓
[AWS CloudFormationのテンプレートをLayer別に作成してクロススタック参照を作ってみた。](https://qiita.com/ezakiglico0215/items/09719bfbcf6c7f164369)## 目指すゴール
– EC2(1a)にテスト実行サーバーとしてAnsibleを実装
– EC2(1c)にテスト対象サーバーとしてApacheを構築### 構成図
## Ansibleのインストール
Ansibleサーバにssh接続したところからスタート!
まずはサーバーにAnsibleをインストー
RDSのKMSキー変更でコンソール表示に惑わされた話(MySQL)
先日RDSのKMSキーをマネージドキー(aws/rds)からカスタムマネージドキーに変更する作業を行ったのですが、RDSのコンソール画面に惑わされて時間がかかってしまったので備忘録として書いておきます。
## 何に戸惑ったのか
RDSのKMSキー変更の手順は[こちらの通り](https://aws.amazon.com/jp/premiumsupport/knowledge-center/update-encryption-key-rds)で、
①対象RDSのスナップショットを取得
②そのスナップショットをコピー ※この段階で変更したいキーで暗号化選択を必ず行う
③コピーしたスナップショットからRDSを復元といった流れで対応します。
何に時間をとられたか、というと
1.②スナップショットのコピーと、③RDS復元の両段階でKMSキーを指定選択するものと認識していた
↓
2.あれ、③RDS復元段階でコンソール画面上KMSキー選択欄がグレーアウトしている…選択できないぞ?!しかも選択されているキーがマネージドキー(aws/rds)のままみ
AWS CDKをDenoで動かす2 experimentalモジュール編
https://qiita.com/rinfield/items/49b89005678da188c214
の続きで、DenoでAWS CDKを動かしていきます。
## 要約
– CDKモジュールを複数esm.shからimportする場合constructsのバージョン合わせが必要## experimentalモジュールを使う
AWS CDK v2はパッケージが1つにまとまりましたが、
依然experimentalモジュールは別モジュールとして配布されています。experimentalモジュールとして一番使いそうな[Amazon Kinesis Data Firehoseモジュール](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-kinesisfirehose-alpha-readme.html)を使ってみます。
### 素朴なインポート
“`ts
// app.ts
import cdk from “https://esm.sh/aws-cdk-lib@2.26.0”;
import logs from “htt
AWS Cloud9でRailsサーバーにアクセスできない場合の対処法
こんにちは!昔恩師に「できるエンジニアには巨漢が多いんや、Appleがそうやったように」
って言われて以来、ずっとその言葉を信じているUD(ゆーだい)です。今回は、Railsチュートリアルでも使用されるAWS Cloud9で一度は引っかかるプレビュー時のあれこれについてメモ程度に記事にしていこうと思います。
# AWS Cloud9とは
そもそもAWS Cloud9とはなんぞやという人はこの記事は読まないと思うのですが、一応説明するとAmazon Web Serviceで提供されているオンライン統合開発環境(IDE)のことです。もっと簡単に言うと、ブラウザで動かせるエディタだと思ってください。
### メリット
1. オンライン環境であれば、PCスペックにほとんど依存せず開発が可能
2. 共同編集機能やチャット機能がついている
3. 他のAWSサービスにアクセスしやすい### デメリット
1. オフライン環境では開発できない(今時オフラインで開発しないですよね…?)
2. ターミナルやエディタが見ずらい
3. 使用方法によっては有料になるメリットとデメリットを見
S3トリガのLambdaを作成する際の注意点について
## 事象
今回、AWS S3にファイルがputされたことをトリガに起動するLambdaを作成したのですが、ファイルサイズが大きいファイルを該当のS3バケットにアップロードした際にイベント通知がされずLambdaが起動しないというトラブルがありました。
その原因と対策を共有させて頂きます。## 原因
そもそもS3には様々なイベント通知のタイプが存在します。S3トリガのLambdaを作成する場合は、トリガーとしてS3バケットに対してどのようなアクションがあった時に通知を送るかを設定する必要があります。
今回の場合は、S3にファイルが配置(PUT)された時にLambdaを起動させたかったので、以下のPUTのイベントタイプを設定しました。
イベントタイプ:s3:ObjectCreated:Put
AWSのドキュメントを見て頂くと全てのイベント通知のタイプを確認できます。
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/notification-how-to-event-types-and-destinati
IAM Role/Policy について
# ポリシーとは
ポリシーとは、「誰が」「どのAWSサービスの」「どのリソースに」「どのような操作を」「許可する/しない」かを制御するものであるhttps://dev.classmethod.jp/articles/aws-iam-policy/
[サービス一覧とサービスに対する記述可能なアクション(操作)一覧](https://docs.aws.amazon.com/ja_jp/service-authorization/latest/reference/list_amazonelasticcontainerservice.html)
# ポリシーの分類
[Identity-based policies and resource-based policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html)
## アイデンティティベースポリシー
アイデンティティベースポリシーのポリシーでは、IAMユーザー、IAMグループ、IAMロールに関連付
CodePiplineのDeploy StageでInstall eventsが一生続いた話
# 結論
CodeDeployなどログを直接確認できないサービスにおいては、その処理に関連するサービス、リソースのところに行き何か手がかりとなるものがないか探すのが良い!# 事案
CodePiplineを実行しDeploy stageの段階に来たときに
`Step 1. Deploying replacement task set`
`Deployment lifecycle events`が`install`にて`in progress`の状態で一生止まっていた
直接ログ確認などができずどうしたものかと悩んでいた
冷静に考えてみると`Deploying replacement task set`ということでタスクの切り替えを行なっている段階ということでタスク関連であるとそこで今回のデプロイで使用されているタスク定義を調べた
`CodeDeploy > Deploy > Deployments > Deploy`
画面にて`Revision details`からRevisionの詳細画面にいくと`appspec.yaml`を確認することができる# Push型(イベント駆動)
https://docs.aws.amazon.com/codepipel
CFnによるECS on FargateのBlue/Green DeploymentをCodePiplineで実装した手順
# 目次
1. [Networkの構築](#network)
2. [ECS on Fargateの構築](#ecs)
3. [Pipelineの構築](#pipeline)# 1. Networkの構築
ここでは、VPC, Subnet, RouteTable, InternetGateway, VPC Endpoint, Security Groupを作成する詳細は以下を参考
# 2. ECS on Fargateの構築
1. [クラスターとロググループ作成](#cluster)
2. [タスク実行ロール作成](#taskExecutionRole)
3. [タスク定義作成](#taskDefinitions)
4. [ロードバランサー作成](#loadbalancer)
5. [VPC Endpoint作成](#vpce)## クラスター作成
“`yaml
ECSClusterBackendApplication:
Type: AWS::E
Redshiftのsuper型配列を反復処理する方法
# はじめに
Redshiftの[superデータ型](https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/r_SUPER_type.html)は、配列などを簡単に扱うことができ、とても便利である。
今回は、superデータ型の配列を反復処理する方法を簡潔にまとめてみた。# 参考ドキュメント
https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/query-super.html# テスト用テーブル準備
今回の検証のために、以下のようなカラムを持つテンポラリテーブルを作成した。“`
create temporary table tmp_test_super(
username varchar(8),
hobby super
);
“`次に以下の値を持つ、jsonファイルを作成し、作成したテーブルにインポートした。
“`
{“username”:”Mac”,”hobby”:[“baseball”,”soccer”,”tennis”]}
{“username”:”
AppSync & Aurora Serverless の GraphQL バックエンドを CDK で構築したぞい!(2022/05/24版)
# はじめに
これまで、API Gateway + Lambda + RDS(or Aurora Serverless)の REST API バックエンドしか実装したことがなかったのですが、いま参加している開発ではじめて AppSync + Aurora Serverless の GraphQL バックエンドを実装することになったので、色々調べならが実装中の、現時点の CDK のコードについて軽く紹介してみたいと思います。
> 本記事は、以下の記事の後続記事となります。
> Aurora Serverless の CDK のコードについてご覧になりたい方は、こちらをどうぞ。
>
> – [Aurora Serverless V2 を CDK v2 で構築できるか試してみたぞい!(2022/05/24版)](https://qiita.com/r-hirakawa/items/c71ead3e51307f3710b8)# 試した内容
## 利用したライブラリ
| ライブラリ名 | バージョン |
| ——————–
AWS SSL化設定後に、アクセスできない【見直したい点】
# AWS SSL化の設定したはずが、、、
おはこんばんにちは!
AWSを触り始めのエンジニアです。今回、EC2上にアプリケーションを構築し、httpにてDNS名前解決までできており、
**https通信**したい!と思い立ち、以下記事を参考に設定を全て完了しました。https://qiita.com/nakanishi03/items/3a514026acc7abe25977
*しかし、、、*
設定したはずの、ドメインにてアクセスするもタイムアウトになり、アクセス不可。Apacheのエラーログを見てみたり、以下記事を参考に見直してみるも解消できず…
https://qiita.com/kn2728/items/c4c1504753a3aefff927
# 原因はセキュリティグループだった
EC2インスタンスのセキュリティグループが、作成したロードバランサーのセキュリティグループに追加されていませんでした。![スクリーンショット 2022-06-01 14.15.37.jpg](https://qiita-image-store.s3.ap-northeast