- 1. AWS Day1対応
- 2. AWS CLIを使ってAMIからEC2をリストアする際に、リストア元のAMIのタグを引き継ぐ方法
- 3. AWS VPCをプライベートサブネットか判定して作成するスクリプト
- 4. 【サービス比較】AWSとOCIの主要機能比較
- 5. Github Actions(IAMロール認証)を使ったLambdaへのデプロイ
- 6. ControlTower①マルチアカウント環境をセットアップする
- 7. Terraformを用いた個人開発環境構築について
- 8. AWS LambdaにPythonサードパーティ製ライブラリを入れる
- 9. AWS Lambda を使って雨の日を通知する Twitter bot を作る
- 10. mp3を文字起こししてslack通知できる環境を3分で用意する
- 11. ハロウィンを楽しめるアプリを作った
- 12. AWSで WordPressを設置する際にRDSに接続できなくてはまった時のメモ
- 13. Review website
- 14. AWS S3で簡単ウェブサイト作成!
- 15. DatabricksにおけるAWS PrivateLinkのバックエンド接続の設定(実践編)
- 16. Lambda(SAM)からAWS SQS(LocalStack) へメッセージ送信/受信を行う方法 メモ
- 17. EC2でRedmine4.2を立てる
- 18. 異なるリージョンでサービスを連携させようとしてAccessDeniedExceptionを発生させた話
- 19. AWSでのセルフインストールのKubernetesクラスター作成を自動化する
- 20. 【AWS IAMとは?】初心者にもわかりやすく解説
AWS Day1対応
#はじめに
最近UdemyでAWSの学習を始め、AWSアカウントを作成したのでDay1対応を実施しました。
備忘録として、以下に概要をまとめます。#Day1対応とは
AWSアカウントを作ったらまずやったほうがいいと推奨されている設定
AWSに足を踏み込んだ者のはじめの一歩基本的には”セキュリティ”と”請求”についての設定を実施していきます。
#やること
やることは以下の5つ– MFA(他要素認証)の設定
– パスワードポリシーの設定
– IAMユーザの作成
– CloudTrailの有効化
– 請求アラームの有効化##MFAの設定
まずは、MFAの設定を実施します。
※MFA = Multi Factor Authentication(他要素認証)MFAとは、ログイン時にユーザ名・パスワード+αで認証を行う方式のことです。
詳細は割愛します。AWSではユーザ名・パスワード+ワンタイムパスワードで認証を行います。
ワンタイムパスワードを発行するトークンとしていくつか選択肢がありますが、
Google Authenticatorというアプリを利用できます。
スマホ
AWS CLIを使ってAMIからEC2をリストアする際に、リストア元のAMIのタグを引き継ぐ方法
#はじめに
今携わっているシステムでは、AWSを使っています。
通常時はEC2インスタンスを東京リージョンで稼働させ、月次でバックアップ(AMI、EBSスナップショット)を取得したうえ大阪リージョンに転送しています。
東京リージョンに大規模災害が発生する際に、大阪リージョンに転送されたAMIから、EC2インスタンスをリストアするためです。#リストア方法
世の中的にCloudformationやTerraformなどのIaCを活用してリストアする方法が主流になっていますが、おとなの事情により、シェルスクリプトにAWS CLIを叩く処理を記載し、リストア時に実行するというやり方を取っています。
なお、パラメータ等は外部JSONファイルに記載し、AWS CLIコマンドのオプションとして渡すようにしています。#AMIのタグが引き継がれない問題
AMIからEC2をリストアするには、以下のようにrun-instancesコマンドにAMI IDを渡すという方法を取りますが、このまま実行してもAMIに含まれるタグが引き継がれないので、リストア後に手動でタグを付与するという手間が発生する(一部
AWS VPCをプライベートサブネットか判定して作成するスクリプト
#普通にVPC作成すると、プライベートサブネットかどうかをバリデーションしてくれない
Amazon VPCはAWS上に構築するプライベートなネットワーク空間のことです。
ですが作成時にプライベートサブネットかどうかをバリデーションしてくれません。:weary:
意図せずパブリックなIPレンジでもVPCを作れてしまいます。
そのためプライベートサブネットか判定して作成するスクリプトを作成してみました。python3の標準モジュールであるipaddressモジュールが凄く便利です!
# 開発環境
Python3.8.7
#実装
(IAMユーザー作成、aws configureは割愛します)
例:VPCのCIDR 172.32.0.0/24 をboto3testのNameタグで作成しようとするとき“`python
import boto3
import ipaddressCIDR = ‘172.32.0.0/24’
def create_vpc(CIDR):
client = boto3.client(‘ec2’)
response = client.c
【サービス比較】AWSとOCIの主要機能比較
普段私はAWSを中心に開発を担当しているのですが、Oracle DBAということでOCIについて、様々な質問をいただく機会があります。
その中で「OCIってSaaSじゃないの?」、「AWSと同じような使い方はできるの?」といった質問をいただくことがありました。
今回は自身の備忘録も兼ねて、OCIの立ち位置とAWSとのサービス比較を記載させていただきます。## OCIはOracle CloudサービスにおけるPaas・IaaS
まず、「OCIってSaaSじゃないの」と言った質問についての回答です。
私の認識ではPaaS、IaaSに該当するものと考えています。
元々Oracle CloudとしてはSaaSサービス(Oracle Cloud Applications)が先行していたため
SaaSの認識をもたれている方もいるかと思います。
一般的に現在のOCIは、Gen2と呼ばれる2018年にアーキテクトを一新して新規構築されたPaaS/IaaSサービスのことを指すケースが多いです。![OCI-XaaS.png](https://qiita-image-store.s3.ap-nort
Github Actions(IAMロール認証)を使ったLambdaへのデプロイ
# はじめに
これまでGit ActionsでAWSサービスと連携する場合は、アクセスキーとシークレットキーといったクレデンシャル情報を使っていたが、IAMロール認証で行えるようになったとのこと。https://dev.classmethod.jp/articles/github-actions-without-permanent-credential/
ということで、IAMロール認証を用いたGithub ActionsのLambda関数デプロイの方法をまとめてみた。
# IAMロールの作成
– 最初に認証に必要なIAMロールの作成を行う。
– 下記のように進めていく。## IAMポリシーの作成
– IAMポリシーを作成。
“`json
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Action”: [
“s3:PutObject”,
“ia
ControlTower①マルチアカウント環境をセットアップする
案件でControlTowerの検証を行う機会があったので、確認できたことやControlTowerの挙動などについて記事を書こうと思います。マルチアカウントの検証は個人だとハードルが高いので勉強になりました。この記事に添付した画像はは2021年9月時点のコンソールの物となります。タイミングによっては画面のレイアウトや設定項目等変更となっている可能性がある点にご留意ください。
##ControlTowerとは
AWSのベストプラクティスに従ってOUやアカウントを一括設定・管理できるサービスです。
ControlTowerを使用する事で、マルチアカウントへのCloudTrail・Configの有効化やログの集約設定・権限回り・SSOなどが短時間で設定できます。セットアップ後はOUへのアカウントの追加や「ガードレール」と呼ばれる権限や検知などのルール設定も一括で管理できるので、マルチアカウント環境を新規で構築したい場合には活用できるかと思います。
[参考][https://docs.aws.amazon.com/ja_jp/controltower/latest/userguide/wh
Terraformを用いた個人開発環境構築について
# Terraformを用いた個人開発環境構築について
## 前提
・私が担当しているサービスでは、バックエンドにAWSを利用しております
・Terraformについてどういったものなのか理解している## 概要
・サービスの個人開発環境を構築する際に使用しているTerraformについて記載をしています
## 利用することのメリット
* Terraformを用いてIaCを実現しており、他メンバーが改修する際にすぐに対応できるようにもしています
* Terraformを利用することでIaCが実現でき、新たに開発メンバーが増えた時も構築したソースコードを再利用することで、素早く個人開発環境を構築することができるようになりました。
* Terraformを利用する前は構築ドキュメントもなく、もともと作成されていた個人開発環境を確認しながら作成をしていましたが、構築時間の短縮が実現できました。### 利用することのデメリット
* Terraformの知識が必要になるため、環境を構築できるメンバーが偏ってしまいます
* AWSの構築するという作業、プラスTerraformの構
AWS LambdaにPythonサードパーティ製ライブラリを入れる
# はじめに
AWS Lambda はサーバレスでイベント駆動型のコンピューティングサービスであり、非常に手軽に使えるサービスとなっている。Amazon S3 のような AWS の他サービスから Lambda をトリガーすることもでき、使い勝手が良いのだがサードパーティ製ライブラリを扱う際にはひと手間かかってしまう。そこで本記事では、Python のサードパーティ製ライブラリを Lambda で扱うための方法を紹介する。[How to use external libraries in Lambda Function](https://wakeupcoders.medium.com/how-to-use-external-libraries-in-lambda-function-df1cee4a7c3a)、[Managing external libraries in AWS lambda functions](https://dev.to/alim1496/managing-external-libraries-in-aws-lambda-functions-1g0m) を参考にし
AWS Lambda を使って雨の日を通知する Twitter bot を作る
# つくったもの
もしよければ使ってやってください:bow_tone1:
傘いるで bot(東京)[@kasairu_tokyo](https://twitter.com/kasairu_tokyo)
傘いるで bot(大阪)[@kasairu_osaka](https://twitter.com/kasairu_osaka)1. 毎朝午前 6 時にお天気情報を取得
1. 雨が降る場合はツイート(降らない日は無言)今日、傘いるで
10/31 06:00:43
6 時 小雨
9 時 厚い雲
12 時 厚い雲
15 時 小雨
18 時 小雨
21 時 小雨— 傘いるでbot(東京) (@kasairu_tokyo) O
mp3を文字起こししてslack通知できる環境を3分で用意する
概要
—
お手元のパソコンにAWS CLIとslackのwebhookがあれば、
3分程度でmp3の文字起こし環境が用意できるのでご紹介。作った物
—好きなmp3を用意して、S3にupload、
するとAmazon Transcribeで文字に起こした物がslackに飛んでくる。というもの。![2_zu.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2240041/be6fbc1d-e44d-dfb0-7321-f6cad86a9999.png)
背景
—私は絶望的に滑舌が悪く、最近社長に「聞き取りずらい」とよく言われます。
SoundOnlyで会話する機会が増えた昨今、致命的です。なのでここ一ヶ月間「あ・え・い・う・え・お・あ・お」と、
鏡の前で発声練習を朝晩2回、歯磨きしながらやってます。いつナレーションのオファーが来てもおかしくない状態に鍛え上げられ、
鏡がベチャベチャになった私は、社長から先日驚きのコメントをもらいました。
「聞き取りずらい」
そんなはずない
ハロウィンを楽しめるアプリを作った
こんにちは、Yuiです。
先日はハロウィンでしたが、この自粛モードではなかなか外で仮装をして楽しむこともできないので、**オンラインでハロウィンを楽しめるアプリ**を[とみー](https://twitter.com/tommy19970714)さんと作りました!
今回はそのアプリについて書きます。
なかなかオフラインでハロウィンを楽しめない中、オンラインでハロウィンを楽しめるサービスを作りました!自由自在に顔を変換させて遊んでみてください!面白いと思ったら拡散して皆に知らせてくれると嬉しいです!https://t.co/LwxQx2EwmX pic.twitter.com/WL8ZFG8ogf
— Yui ? Yuiko Ito (@yui_acti
AWSで WordPressを設置する際にRDSに接続できなくてはまった時のメモ
##RDSって何?
Amazon Relational Database Servicesの略。##RDSって作らないといけないの?
EC2のなかに直接作ることもできるけど、その場合スケーラブルな調整ができなくなるのでRDSあった方がいいらしい。##RDSの設定値がたくさんありすぎて選べないのだが?
少なくとも、ストレージに関しては最小単位で選択しておけば後で上げることができる。
ストレージに関しても料金が変わってくるのでどれを選択すればいいか迷ったときに
参考にしたサイト:
https://qiita.com/jyotti/items/d47b52fa13d12476406fDBのインスタンスサイズは、後で大きくしたり小さくしたり変更できる。
##プライベートサブネット、パブリックサブネット
公開するWebサーバはパブリックサブネットに配置し、公開対象としないプライベートサブネットにDBサーバを置く。##Webサーバ(EC2)からRDSに接続する時にうまくいかなかった
セキュリティグループの設定を見直したらうまくいった。
RDSに接続可能なのは事前に作っておいたセキ
Review website
Please review my website: https://shareprogramming.net/
AWS S3で簡単ウェブサイト作成!
AWSのS3といえばストレージサービスですが、実はウェブサイトをホストすることもできます。
EC2インスタンス等のVMを用意したり、webサーバをインストールしたり、そういった設定は一切不要なので、非常に簡単です。
さっそくやってみましょう!# 1. S3 バスケットを作成する
まずは、S3 バスケットを作成しましょう。バスケットとはフォルダのようなものです。
サービス検索窓からS3と入力し、S3をクリックします。![0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1884434/48301362-836d-3917-ca43-c1b06d56f3b2.png)
「バケットを作成」をクリックします。
![32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1884434/0ea3d259-ed6a-f5fe-0f02-270de0a3c8e0.png)
バスケット名を入力します。この名前は基本的にグローバ
DatabricksにおけるAWS PrivateLinkのバックエンド接続の設定(実践編)
本書は、[DatabricksにおけるAWS PrivateLinkの有効化](https://qiita.com/taka_yayoi/items/c6bdbb6452f6a0895961)に記載されているバックエンド接続の設定手順をまとめたものとなっています。
# 全体構成
本書でDatabricksをセットアップするVPCはインターネットに接続されていないクローズドネットワーク環境であり、外部との通信は全てエンドポイント経由で構成する環境を想定しております。本書で示しているものはあくまで一例です。お客様の要件に応じて構成を変更してください。
AWS PrivateLinkを用いることで、公衆ネットワークを経由することなしに、AWS VPCやオンプレミスのネットワークからAWSサービスへのプライベート接続を実現することができます。E2バージョンプラットフォーム上のDatabricksワークスペースでは、以下の2つのタイプのPrivateLink接続をサポートしています。
– **フロントエンド**(ユーザーからワークスペースへの接続): フロントエンドPrivateLink
Lambda(SAM)からAWS SQS(LocalStack) へメッセージ送信/受信を行う方法 メモ
* LocalStack上で動くAWS SQSのキューに対してAWS SAM CLIで動くLambdaからメッセージ送受信を行う方法をメモする。
## 構成
![sam-sqs.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/586535/862d727c-e543-8b0d-7c15-193655e62a39.png)
## LocalStack準備
* `docker-compose.yml`
“`yaml
version: “3.8”
networks:
container-link:
name: docker.internal
services:
localstack:
container_name: “${LOCALSTACK_DOCKER_NAME-localstack_main}”
image: localstack/localstack
ports:
– “127.0.0.1:53
EC2でRedmine4.2を立てる
## EC2を使った経緯
ちゃんとしたバックアップが取りたくてさくらのVPSからの移行先として選んだ。
AWSBackupで全自動バックアップだ!バージョンは最新の4.2を使う。
2要素認証もあるしな。もともとは記事化する気はなかったが色々収穫があったので記事化。
ちなみに、データを持ち出すのが面倒なので、移行じゃなくて新規で立てた。## インスタンスタイプについて
以前さくらのVPSで立てた時はアイドル時で400MBくらいのメモリ消費量だったので`t2.nano`で良いかなと思ったが、500MBだと途中のビルド作業が無理だったので、`t2.micro`にした。
`t2.micro`ならサインアップしてから1年間無料だし、とりあえずこれで。EC2側の手順は探せばたくさんあると思うので割愛。
固定IPとか色々やってコマンドラインで操作できるところまで持っていく。## 手順
Ubuntu大好きマンなのでUbuntuで立てる。
下記ページを参考にさせていただいた。https://blog.redmine.jp/articles/4_2/install/ubuntu
異なるリージョンでサービスを連携させようとしてAccessDeniedExceptionを発生させた話
今回は、公式サイトのチュートリアルに記載されていた簡単なWebアプリケーションを作成しようとした際にサービス間の連携がうまくできずエラーになってしまったので原因と解決方法をこちらに備忘メモとして記載したいと思います。
[こちら](https://aws.amazon.com/jp/getting-started/hands-on/build-web-app-s3-lambda-api-gateway-dynamodb/)のチュートリアルに則って作成しました。
手順は以下のモジュール1~5の流れとなります。
#### モジュール 1: ウェブアプリケーションを作成する
・Amplify コンソールでウェブアプリを作成
・ウェブアプリをテストする
#### モジュール 2: サーバーレス関数を構築する
・PythonでAWS コンソールを使用して Lambda 関数を一から作成する
・AWS コンソールで (JSON) イベントを作成して関数をテストする
#### モジュール 3: サーバーレス関数をウェブアプリケーションにリンクする
・API Gateway を使用して新しい API
AWSでのセルフインストールのKubernetesクラスター作成を自動化する
先日書いた、AWSにセルフインストールでKubernetesクラスターを建てる件、案外消しては思い出してまた作ってというのを繰り返しているので自動化してみようかと。aws cliの勉強も兼ねて。CloudFormationを使うのか?いやいや、PowerShellで。
結局スクリプト作成に8時間ぐらいかかり、手動でやっても30分ぐらいで出来るものに手間かけすぎであり、後悔の気持ちが大きい。自動化なんて大抵そのようなものだ。# 前提
Windows 10のPowershellを使う。
aws cliがWindows 10に導入済みで、API Keyとか、aws configure設定済みな事。以下のような感じで。“`
> aws configure
AWS Access Key ID [****************6EMR]:
AWS Secret Access Key [****************BTr/]:
Default region name [ap-northeast-1]:
Default output format [json]:
“`また、試した
【AWS IAMとは?】初心者にもわかりやすく解説
# はじめに
この記事ではAWSのIAMについて説明していきます。
初心者にとって非常にややこしいAWS IAMについて図解を交えつつ説明していきます。# IAMとは?
そもそもIAMとは何でしょうか?
IAMとはAWSのサービスの「認証」と「認可」の設定を行うことができるサービスになります。“`
認証: 相手が誰(何)なのか確認すること
認可: リソースへのアクセス権限を与えること
“`IAMを理解することはセキュリティ事故を防ぐ上で非常に大事になります。
# IAMのきほん
IAMでは、以下の機能が用意されています。“`
1. IAMユーザー
2. IAMグループ
3. アクセスキー
4. IAMポリシー
5. IAMロール
“`こちらの機能をそれぞれ説明していきます。
## IAMユーザー
◼︎ 概要図
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286094/cd5fea13-1a02-fec0-8fa5-177bf74ab5f3.png)A